LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Prüfe den wahren Wert von \(\pi\) mit np.pi in der Konsole. Setze sims auf 10000 und circle_points auf 0.
  • Erzeuge innerhalb der for-Schleife einen Punkt (x- und y-Koordinaten) mit np.random.uniform() zwischen -1 und 1, mit size=2.
  • Prüfe mit der Gleichung \(x^2 + y^2 <= 1\), ob der Punkt im Einheitskreis liegt, weise das Ergebnis within_circle zu und erhöhe circle_points entsprechend.
  • Gib die Schätzung von \(\pi\) pi_sim als 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))
Code bearbeiten und ausführen