Den Wert von pi berechnen
Jetzt schauen wir uns ein klassisches Beispiel an – die Schätzung des Werts von \(\pi\).
Stell dir ein Quadrat mit Seitenlänge \(2\) vor, dessen Mittelpunkt der Ursprung \((0, 0)\) ist und dessen vier Ecken die Koordinaten \((1, 1), (1, -1), (-1, 1), (-1, -1)\) haben. Die Fläche dieses Quadrats ist \(2\times 2 = 4\). Nun stell dir einen Kreis mit Radius \(1\) vor, dessen Mittelpunkt im Ursprung liegt und der genau in dieses Quadrat passt. Die Fläche des Kreises ist dann \(\pi \times \text{Radius}^2 = \pi\).
Um \(\pi\) zu schätzen, ziehen wir zufällig viele Punkte in diesem Quadrat und bestimmen den Anteil der Punkte im Kreis (\(x^2 + y^2 <= 1\)). Die Fläche des Kreises ist dann \(4\) mal dieser Anteil, was unsere Schätzung für \(\pi\) ergibt.
Nach dieser Übung hast du ein Gefühl dafür, wie du Simulation zur Berechnung einsetzen kannst.
Diese Übung ist Teil des Kurses
Statistische Simulation in Python
Anleitung zur Übung
- Prüfe den wahren Wert von \(\pi\) mit
np.piin der Konsole. Setzesimsauf 10000 undcircle_pointsauf 0. - Erzeuge innerhalb der
for-Schleife einen Punkt (x- und y-Koordinaten) mitnp.random.uniform()zwischen -1 und 1, mitsize=2. - Prüfe mit der Gleichung \(x^2 + y^2 <= 1\), ob der Punkt im Einheitskreis liegt, weise das Ergebnis
within_circlezu und erhöhecircle_pointsentsprechend. - Gib die Schätzung von \(\pi\)
pi_simals das 4-Fache des Anteils der Punkte aus, die im Kreis liegen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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))