Zum Inhalt springen

π (Kreiszahl)/Nichtnumerische Berechnungsverfahren

aus AufEinWort, der freien Forschung
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 2. April 2026 um 15:10 Uhr durch Nikolaos (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Berechnung mittels Flächenformel

In ein Quadrat einbeschriebener Kreis für die Berechnung mittels Flächenformel

Diese Berechnung nutzt den Zusammenhang aus, dass π in der Flächenformel des Kreises enthalten ist, dagegen nicht in der Flächenformel des umschreibenden Quadrats.

Die Formel für den Flächeninhalt des Kreises mit Radius r lautet

AK=πr2,

der Flächeninhalt des Quadrates mit Seitenlänge 2r errechnet sich als

AQ=(2r)2.

Für das Verhältnis der Flächeninhalte eines Kreises und seines umschreibenden Quadrats ergibt sich also

AKAQ=πr2(2r)2=π4.

Damit lässt sich π als das Vierfache dieses Verhältnisses schreiben:

π=4AKAQ.

Programm

Viertelkreis, mit Flächenraster 10×10 angenähert, innerhalb 79 Punkte (rot), außerhalb 21 Punkte (blau)

Als Beispiel ist ein Algorithmus angegeben, in dem die Flächenformel demonstriert wird, mit der π näherungsweise berechnet werden kann.

Man legt dazu über das Quadrat ein Gitter und berechnet für jeden einzelnen Gitterpunkt, ob er auch im Kreis liegt. Das Verhältnis der Gitterpunkte innerhalb des Kreises zu den Gitterpunkten innerhalb des Quadrats wird mit 4 multipliziert. Die Genauigkeit der damit gewonnenen Näherung von π hängt von der Gitterweite ab und wird mittels r kontrolliert. Mit r=10 erhält man z. B. 3,16 und mit r=100 bereits 3,1428. Für das Ergebnis 3,14159 ist allerdings schon r=10000 zu setzen, was sich durch den zweidimensionalen Lösungsansatz auf die Zahl der notwendigen Rechenvorgänge in quadratischer Form niederschlägt.

// Ergibt für r = 10: 3.1_6 (genauer Wert 3.1_415926535...)
// Ergibt für x = 1000: 3.141_676 (genauer Wert 3.141_5926535...)
// Ergibt für x = 100000: 3.1415926_932 (genauer Wert 3.1415926_535...)

function approximiere_pi(r)
    quadrat   := r^2
    innerhalb := 0
    for x := 0 to r-1 do
        for y := 0 to r-1 do
            if (x+0.5)^2 + (y+0.5)^2 <= quadrat then
                innerhalb++
    return 4.0 * innerhalb / quadrat

Alternatives Programm

Kreisflächen-Integration

Dieses Programm summiert die Fläche des Kreises aus im Verhältnis zum Radius sehr schmalen Streifen. Es verwendet die Gleichungen
y=±r2−x2 und π=AKr2 sowie π=∫−1121−x2dx.

// Ergibt für n = 100: 3.14_0417031779046 (genauer Wert 3.14_15926535...)
// Ergibt für n = 1000000: 3.14159265_2413558 (genauer Wert 3.14159265_35...)

n := 1000000 // halbe Anzahl der Streifen
s := 0       // Summe der Flächeninhalte

for x := -1 to +1 step 1/n:
    // Flächeninhalt des Streifens an der Stelle x hinzuaddieren.
    // Die Höhe des Streifens wird exakt in der Mitte des Streifens gemessen.
    s += sqrt(1 - x*x)

// Die 2 steht für die obere plus die untere Hälfte, die 1/n ist die Breite des Streifens.
pi := s * 2 / n

Die x-Koordinaten der untersuchten Fläche gehen von −1 bis +1. Da Kreise rund sind und dieser Kreis sein Zentrum auf den Koordinaten 0,0 hat, liegen die y-Koordinaten ebenfalls im Bereich von −1 bis +1. Das Programm teilt die zu untersuchende Fläche in 2 Millionen schmale Streifen auf. Jeder dieser Streifen hat dieselbe Breite, nämlich 1/n. Die Oberkante eines jeden Streifens ist jedoch unterschiedlich und ergibt sich aus der obigen Formel zu 1−x2, im Code wird das als sqrt(1 - x*x) geschrieben. Die Höhe eines jeden Streifens geht von der Oberkante bis zur Unterkante. Da die beiden Kanten bei Kreisen gleich weit von der Mittellinie entfernt sind, ist die Höhe genau das Doppelte der Kantenlänge, daher die 2 im Code.

Nach dem Durchlaufen der for-Schleife befindet sich in der Variablen s der Flächeninhalt des Kreises mit Radius 1. Um aus dieser Zahl den Wert von Pi zu ermitteln, muss diese Zahl gemäß der Formel A=π⋅r2 noch durch r2 geteilt werden. In diesem Beispiel ist r=1, daher ist das im Programmcode weggelassen.

Viermal genauer (da die Steifen besser zentriert sind) und doppelt so schnell (nun sind linke und rechte Hälfte auch noch identisch und brauchen nur einmal berechnet zu werden), aber nicht mehr der Grafik „Kreisflächen-Integration“ entsprechend, rechnet:

// Ergibt für n = 100: 3.141_9368579   (genauer Wert 3.141_5926535...)
// Ergibt für n = 1000000: 3.141592653_934 (genauer Wert 3.141592653_589...)

n := 1000000 // halbe Anzahl der Streifen
s := 0       // Summe der Flächeninhalte

for x := 0.5/n to +1 step 1/n:
    // Flächeninhalt des Streifens an der Stelle x hinzuaddieren.
    // Die Höhe des Streifens wird exakt in der Mitte des Streifens gemessen.
    s += sqrt(1 - x*x)

// Die 4 steht für die anderen drei Quadranten, die 1/n ist die Breite des Streifens.
pi := s * 4 / n

Statistische Bestimmung

Berechnung mit einem Monte-Carlo-Algorithmus

Viertelkreis, dessen Fläche durch die Monte-Carlo-Methode angenähert wird

Eine Methode zur Bestimmung von π ist die statistische Methode. Für die Berechnung lässt man zufällige Punkte auf ein Quadrat „regnen“ und berechnet, ob sie innerhalb oder außerhalb eines einbeschriebenen Kreises liegen. Der Anteil der innen liegenden Punkte ist approximiert π4.

Diese Methode ist ein Monte-Carlo-Algorithmus; die Genauigkeit der nach einer festen Schrittzahl erreichten Näherung von π lässt sich daher nur mit einer Irrtumswahrscheinlichkeit angeben. Durch das Gesetz der großen Zahlen steigt jedoch im Mittel die Genauigkeit mit der Schrittzahl.

Der Algorithmus für diese Bestimmung ist:

// Ergibt für tropfenzahl =         100: 3._32         (genauer Wert 3._1415926535...)
// Ergibt für tropfenzahl =     1000000: 3.141_104     (genauer Wert 3.141_5926535...)
// Ergibt für tropfenzahl = 10000000000: 3.1415_884288 (genauer Wert 3.1415_926535...)

function approximiere_pi(tropfenzahl)
    innerhalb := 0                    // zählt die Tropfen innerhalb des Kreises
    for i := 1 to tropfenzahl do      // so oft wiederholen, wie es Tropfen gibt
        x := random(0.0 ..< 1.0)      // zufälligen Tropfen im Quadrat [0,0] bis (1,1) erzeugen
        y := random(0.0 ..< 1.0)
        if x^2 + y^2 <= 1.0 then      // wenn der Tropfen innerhalb des Kreises liegt …
            innerhalb++               // Zähler erhöhen
    return 4.0 * innerhalb / tropfenzahl

Die 4.0 im Code ergibt sich daraus, dass in der Tröpfchensimulation nur die Anzahl für einen Viertelkreis berechnet wurde. Um daraus die (hochgerechnete) Anzahl für einen ganzen Kreis zu bekommen, muss die berechnete Anzahl noch mit 4 multipliziert werden. Da die Zahl Pi das Verhältnis zwischen der Kreisfläche und dem Quadrat des Radius ist, muss die so erhaltene Zahl noch durch das Quadrat des Radius geteilt werden. Der Radius ist in diesem Fall 1, daher kann das Teilen weggelassen werden.

Buffonsches Nadelproblem

Grüne Punkte beschreiben einen Schnittpunkt der Stäbchen mit der Linie. Mit l=d ist das Ergebnis 17:11=1,54‾ ca. π2

Eine weitere auf Wahrscheinlichkeiten beruhende und ungewöhnliche Methode ist das Buffonsche Nadelproblem, von Georges-Louis Leclerc de Buffon (1733 vorgetragen, 1777 veröffentlicht). Buffon warf Stöcke über die Schulter auf einen gekachelten Fußboden. Anschließend zählte er, wie oft sie die Fugen trafen. Eine praktikablere Variante beschrieb Jakow Perelman im Buch Unterhaltsame Geometrie. Man nehme eine ca. 2 cm lange Nadel – oder einen anderen Metallstift mit ähnlicher Länge und Durchmesser, am besten ohne Spitze – und zeichne auf ein Blatt Papier eine Reihe dünner paralleler Striche, die um die doppelte Länge der Nadel voneinander entfernt sind. Dann lässt man die Nadel sehr häufig (mehrere hundert- oder tausendmal) aus einer beliebigen, aber konstanten Höhe auf das Blatt fallen und notiert, ob die Nadel eine Linie schneidet oder nicht. Es kommt nicht darauf an, wie man das Berühren eines Striches durch ein Nadelende zählt. Die Division der Gesamtzahl N der Nadelwürfe durch die Zahl P der Fälle, in denen die Nadel eine Linie geschnitten hat, nähert sich (stochastisch) mit zunehmender Zahl der Würfe an die Formel

NP=π2dℓ

an, wobei ℓ die Länge der Nadeln und d den Abstand der Linien auf dem Papier bezeichnet. Daraus ergibt sich leicht eine Näherung für π.[1] Die Nadel kann dabei auch gebogen oder mehrfach geknickt sein, wobei in diesem Fall auch mehr als ein Schnittpunkt pro Wurf möglich ist und entsprechend mehrfach gezählt werden muss. In der Mitte des 19. Jahrhunderts kam der Schweizer Astronom Rudolf Wolf durch 5000 Nadelwürfe auf einen Wert von π=3,1596±0,0518.[2] Das Verfahren hat als analoges Verfahren (schneidet die Nadel die Linie?) ein Genauigkeitsproblem durch Ablesefehler.

  1. ↑ Ehrhard Behrends, Peter Gritzmann, Günter M. Ziegler: π und Co., Kaleidoskop der Mathematik. Springer-Verlag, Berlin/Heidelberg 2008, ISBN 978-3-540-77888-2, S. 157.
  2. ↑ Rudolf Wolf: Handbuch der Astronomie, ihrer Geschichte und Litteratur. F. Schulthess, Zürich 1890, Band 1, S. 128. (Digitalisat)