De waarde van pi berekenen
We gaan nu aan de slag met een klassiek voorbeeld: de waarde van \(\pi\) schatten.
Stel je een vierkant voor met zijde \(2\), met de oorsprong \((0, 0)\) in het midden en de vier hoeken op \((1, 1), (1, -1), (-1, 1), (-1, -1)\). De oppervlakte van dit vierkant is \(2\times 2 = 4\). Stel je nu een cirkel met straal \(1\) voor, met het middelpunt in de oorsprong, die precies in dit vierkant past. De oppervlakte van de cirkel is dan \(\pi \times \text{straal}^2 = \pi\).
Om \(\pi\) te schatten, trekken we willekeurig meerdere punten in dit vierkant en bepalen we het aandeel punten binnen de cirkel (\(x^2 + y^2 <= 1\)). De oppervlakte van de cirkel is dan \(4\) keer dit aandeel, wat onze schatting van \(\pi\) oplevert.
Na deze oefening heb je door hoe je simulatie kunt gebruiken voor berekeningen.
Deze oefening maakt deel uit van de cursus
Statisticale simulatie in Python
Oefeninstructies
- Bekijk de werkelijke waarde van \(\pi\) met
np.piin de console. Stelsimsin op 10000 encircle_pointsop 0. - Genereer binnen de
for-lus een punt (x- en y-coördinaat) metnp.random.uniform()tussen -1 en 1, metsize=2. - Controleer of het punt binnen de eenheidscirkel ligt met de vergelijking \(x^2 + y^2 <= 1\), ken dit toe aan
within_circle, en verhoogcircle_pointsovereenkomstig. - Print de schatting van $\pi
pi_sim` als 4 keer het aandeel punten dat binnen de cirkel ligt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Initialize sims and circle_points
sims, circle_points = ____, ____
for i in range(sims):
# Generate the two coordinates of a point
point = ____
# if the point lies within the unit circle, increment counter
within_circle = point[0]**2 + point[1]**2 <= 1
if ____ == True:
circle_points +=1
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))