Proses Monte Carlo

Simulasi Monte Carlo di Python

Izzy Weber

Curriculum Manager, DataCamp

Langkah simulasi

  1. Definisikan variabel input dan pilih distribusi peluangnya

  2. Hasilkan input dengan sampling dari distribusi tersebut

  3. Lakukan perhitungan deterministik atas input simulasi

  4. Ringkas hasil

Simulasi Monte Carlo di Python

Menghitung nilai pi

Hasilkan titik acak $(x, y)$ dengan $x$ dan $y$ pada interval -1 hingga 1.

Grafik lingkaran di dalam persegi dengan titik acak yang disampel

$$Area_{circle} = \pi $$

$$Area_{square} = 2 \times 2 = 4 $$

$$\frac{Area_{circle}}{Area_{square}} = \frac{\pi}{4} $$

$$\frac{n_{red}}{n_{all}} = \frac{\pi}{4} $$

$$ \pi = 4 \times \frac{n_{red}}{n_{all}}$$

Simulasi Monte Carlo di Python

Langkah 1

Definisikan variabel input dan pilih distribusi peluangnya

  • Input: titik-titik individual berdimensi $(x, y)$
  • Distribusi peluang: $x$ dan $y$ berdistribusi uniform dari -1 sampai 1.

 

circle_points = 0 
square_points = 0
Simulasi Monte Carlo di Python

Langkah 2

Hasilkan input dengan sampling dari distribusi tersebut

 

Sampel nilai koordinat $x$ dan $y$ secara uniform antara -1 dan 1:

for i in range(n):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)
Simulasi Monte Carlo di Python

Langkah 3

Lakukan perhitungan deterministik atas input simulasi

Periksa apakah tiap titik berada dalam lingkaran: deterministik untuk $x$ dan $y$

dist_from_origin = x**2 + y**2

Jika ya, tambahkan titik ke circle_points; selalu tambahkan ke square_points

if dist_from_origin <= 1:
     circle_points += 1
square_points += 1
Simulasi Monte Carlo di Python

Langkah 4

Ringkas hasil untuk menjawab pertanyaan utama

 

Setelah banyak putaran simulasi, hitung nilai pi!

pi = 4 * circle_points/ square_points
Simulasi Monte Carlo di Python

Gabungkan semuanya

n = 4000000
circle_points = 0 
square_points = 0

for i in range(n): x = random.uniform(-1, 1) y = random.uniform(-1, 1) dist_from_origin = x**2 + y**2 if dist_from_origin <= 1: circle_points += 1 square_point += 1
pi = 4 * circle_points / square_points print(pi)
3.142518
Simulasi Monte Carlo di Python

Ayo berlatih!

Simulasi Monte Carlo di Python

Preparing Video For Download...