Het Monte Carlo-proces

Monte Carlo-simulaties in Python

Izzy Weber

Curriculum Manager, DataCamp

Simulatiestappen

  1. Definieer de inputvariabelen en kies hun kansverdelingen

  2. Genereer inputs door uit deze verdelingen te sampelen

  3. Voer een deterministische berekening uit op de gesimuleerde inputs

  4. Vat de resultaten samen

Monte Carlo-simulaties in Python

De waarde van pi berekenen

Genereer willekeurige punten $(x, y)$ waarbij $x$ en $y$ in het interval van -1 tot 1 liggen.

Een grafiek van een cirkel in een vierkant met willekeurig gesamplede punten

$$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}}$$

Monte Carlo-simulaties in Python

Stap 1

Definieer de inputvariabelen en kies hun kansverdelingen

  • Inputs: de losse punten met $(x, y)$-coördinaten
  • Kansverdelingen: $x$ en $y$ zijn uniform verdeeld van min één tot één.

 

circle_points = 0 
square_points = 0
Monte Carlo-simulaties in Python

Stap 2

Genereer inputs door uit deze verdelingen te sampelen

 

Sample willekeurige $x$- en $y$-coördinaten, uniform verdeeld tussen -1 en 1:

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

Stap 3

Voer een deterministische berekening uit op de gesimuleerde inputs

Controleer of elk punt binnen de cirkel valt: deterministisch voor gegeven $x$ en $y$

dist_from_origin = x**2 + y**2

Zo ja, voeg het punt toe aan circle_points; voeg het punt altijd toe aan square_points

if dist_from_origin <= 1:
     circle_points += 1
square_points += 1
Monte Carlo-simulaties in Python

Stap 4

Vat de resultaten samen om je vraag te beantwoorden

 

Na veel simulaties, bereken de waarde van pi!

pi = 4 * circle_points/ square_points
Monte Carlo-simulaties in Python

Alles bij elkaar

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
Monte Carlo-simulaties in Python

Laten we oefenen!

Monte Carlo-simulaties in Python

Preparing Video For Download...