Monte Carlo-simulaties in Python
Izzy Weber
Curriculum Manager, DataCamp
Definieer de inputvariabelen en kies hun kansverdelingen
Genereer inputs door uit deze verdelingen te sampelen
Voer een deterministische berekening uit op de gesimuleerde inputs
Vat de resultaten samen
Genereer willekeurige punten $(x, y)$ waarbij $x$ en $y$ in het interval van -1 tot 1 liggen.

$$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}}$$
Definieer de inputvariabelen en kies hun kansverdelingen
circle_points = 0
square_points = 0
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)
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
Vat de resultaten samen om je vraag te beantwoorden
Na veel simulaties, bereken de waarde van pi!
pi = 4 * circle_points/ square_points
n = 4000000 circle_points = 0 square_points = 0for 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 += 1pi = 4 * circle_points / square_points print(pi)
3.142518
Monte Carlo-simulaties in Python