Gauß bestimmt PI

Prof. Dr. Dörte Haftendorn: Mathematik mit MuPAD 4,   Juni  06        Update 10.06.06

Web:  www.mathematik-verstehen.de             https://mathe.web.leuphana.de

----------------------------------------------------------------------------------------------------------------------

Diese Darstellung folgt dem Voschlag : Hans J. Schmidt: "Historische Verfahren..." Aulis-Verlag

------------------------

Grundidee: Gauß zeichnet in ein Einheitsgitter einen Keis mit dem Radius r und ein umbeschriebenes

Quadrat. Ein Viertel dieses Quadrates -also r 2  -   soll n Punkte haben.

Schmidt geht von n aus und bestimmt dann r als Gaußklammer von Wurzel(n) .

image

Im Bild ist n=100 und daher r=10. Nun werden 4 Mengen  A,B,C,D definiert, die hier

farbig unterschieden sind. A ist der Ursprung allein. B sind die Punkte auf den Achsen.

Es sin 4 r Punkte. Für die roten Punkte wird das rechte obere Quadrat betrachtet.

In seiner Diagonale haben die Punkte den Abstand Wurzel(2). Die Anzahl der Diagonalpunkte

im 1. Quadranten erhält man also, wenn man r durch Wurzel(2) teilt. Diese Zahl, unten c genannt, ist

dann aber auch die Kantenlänge des roten Quadrates rechts oben.

Bei Schmidt ist das der Term Wurzel(n:2) , hier aber r/Wurzel(2) , bz..w. r/sqrt(2).

Davon wird wieder der Gaußklammer-Wert genommen ( hier floor(..))

Von den roten Punkten gibt es insgesamt 4* [r/Wurzel(2)] also etwa  2 r^2.

Bleiben noch die grünen Punkte. Es sind 8 mal die Reihen, die im 1. Quadranten oben

waagerecht liegen. Die 1. Reihe hat die Ordinate  r/Wurzel(2)+1. Die Abszissen sind 1, 2,....

bis zum Kreis, der ist aber an der Stelle Wurzel(r^2-y^2). Dann zählt man die nachst höhere Reihe u.s.w

Hier sind es 6 + 4 Punkte, grün also 10*8 Punkte.

Für n=100 ergeben sich 317 Punkte. Die repräsentieren die Kreisfläche  Pi r^2 .  Also muss man die Anzahl durch

r^2 teilen. Schmidt teilt durch n. Das ist aber nur für Quadratzahlen n richtig, unten sind die Werte verglichen.

Z.B. bei n=200 ist der Schmidt-Wert schlecht. Er wird systematisch zu klein, wenn n nicht r^2 ist.

Das Verfahren konvergiert ziemlich langsam.

 

//############# n=100####

 

n:=100;r:=floor(sqrt(n));

kreis:=x^2+y^2=r^2;

kreisg:=plot::Implicit2d(kreis,x=-r..r, y=-r..r,

Scaling=Constrained,GridVisible=TRUE):

A:=[[0,0]];

B:=[[k,0]$ k=1..r,[-k,0]$ k=1..r,[0,k]$ k=1..r,[0,-k]$ k=1..r];

nops(B);

Ap:=plot::Listplot(A, LinesVisible=FALSE, PointColor=RGB::Black, PointSize=2):

Bp:=plot::Listplot(B, LinesVisible=FALSE, PointColor=RGB::Blue, PointSize=2):

//Gesucht ist das größte i, dessen Wurzel(2)-faches höchsten r erreicht.

c:=floor(r/sqrt(2));

C1:=[([i,j] $ i=1..c)$j=1..c]: nops(C1);

C2:=[([-i,j] $ i=1..c)$j=1..c]:

C3:=[([-i,-j] $ i=1..c)$j=1..c]:

C4:=[([i,-j] $ i=1..c)$j=1..c]:

C:=C1.C2.C3.C4:nops(C);

Cp:=plot::Listplot(C, LinesVisible=FALSE, PointColor=RGB::Red, PointSize=2):

floor(sqrt(r^2-i^2));

D1:=[([i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r];

D2:=[([-i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D3:=[([-i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D4:=[([i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D5:=[([k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D6:=[([-k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D7:=[([-k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D8:=[([k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

DD:=D1.D2.D3.D4.D5.D6.D7.D8: nops(DD);

Dp:=plot::Listplot(DD, LinesVisible=FALSE, PointColor=RGB::Green, PointSize=2):

plot(kreisg,Dp,Cp, Ap,Bp);anzahl:=nops(A)+nops(B)+nops(C)+nops(DD);

;anteilKeisImQuadtrat=float(anzahl/n);

anteilKeisImQuadtrat2=float(anzahl/r^2);

math

math

math

math

math

math

math

math

math

math

math

math

MuPAD graphics

math

math

math

 

//############# n=200####

 

n:=200;r:=floor(sqrt(n));

kreis:=x^2+y^2=r^2;

kreisg:=plot::Implicit2d(kreis,x=-r..r, y=-r..r,

Scaling=Constrained,GridVisible=TRUE):

A:=[[0,0]];

B:=[[k,0]$ k=1..r,[-k,0]$ k=1..r,[0,k]$ k=1..r,[0,-k]$ k=1..r]:

nops(B);

Ap:=plot::Listplot(A, LinesVisible=FALSE, PointColor=RGB::Black, PointSize=1):

Bp:=plot::Listplot(B, LinesVisible=FALSE, PointColor=RGB::Blue, PointSize=1):

//Gesucht ist das größte i, dessen Wurzel(2)-faches höchsten r erreicht.

c:=floor(r/sqrt(2));

C1:=[([i,j] $ i=1..c)$j=1..c]: nops(C1);

C2:=[([-i,j] $ i=1..c)$j=1..c]:

C3:=[([-i,-j] $ i=1..c)$j=1..c]:

C4:=[([i,-j] $ i=1..c)$j=1..c]:

C:=C1.C2.C3.C4:nops(C);

Cp:=plot::Listplot(C, LinesVisible=FALSE, PointColor=RGB::Red, PointSize=1):

floor(sqrt(r^2-i^2));

D1:=[([i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D2:=[([-i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D3:=[([-i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D4:=[([i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D5:=[([k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D6:=[([-k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D7:=[([-k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D8:=[([k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

DD:=D1.D2.D3.D4.D5.D6.D7.D8: nops(DD);

Dp:=plot::Listplot(DD, LinesVisible=FALSE, PointColor=RGB::Green, PointSize=1):

plot(kreisg,Dp,Cp, Ap,Bp);anzahl:=nops(A)+nops(B)+nops(C)+nops(DD);

;anteilKeisImQuadtrat=float(anzahl/n);

anteilKeisImQuadtrat2=float(anzahl/r^2);

math

math

math

math

math

math

math

math

math

math

MuPAD graphics

math

math

math

 

//############# n=400####

 

n:=400;r:=floor(sqrt(n));

kreis:=x^2+y^2=r^2;

kreisg:=plot::Implicit2d(kreis,x=-r..r, y=-r..r,

Scaling=Constrained,GridVisible=TRUE):

A:=[[0,0]];

B:=[[k,0]$ k=1..r,[-k,0]$ k=1..r,[0,k]$ k=1..r,[0,-k]$ k=1..r]:

nops(B);

Ap:=plot::Listplot(A, LinesVisible=FALSE, PointColor=RGB::Black, PointSize=1):

Bp:=plot::Listplot(B, LinesVisible=FALSE, PointColor=RGB::Blue, PointSize=1):

//Gesucht ist das größte i, dessen Wurzel(2)-faches höchsten r erreicht.

c:=floor(r/sqrt(2));

C1:=[([i,j] $ i=1..c)$j=1..c]: nops(C1);

C2:=[([-i,j] $ i=1..c)$j=1..c]:

C3:=[([-i,-j] $ i=1..c)$j=1..c]:

C4:=[([i,-j] $ i=1..c)$j=1..c]:

C:=C1.C2.C3.C4:nops(C);

Cp:=plot::Listplot(C, LinesVisible=FALSE, PointColor=RGB::Red, PointSize=1):

floor(sqrt(r^2-i^2));

D1:=[([i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D2:=[([-i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D3:=[([-i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D4:=[([i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D5:=[([k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D6:=[([-k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D7:=[([-k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D8:=[([k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

DD:=D1.D2.D3.D4.D5.D6.D7.D8: nops(DD);

Dp:=plot::Listplot(DD, LinesVisible=FALSE, PointColor=RGB::Green, PointSize=1):

plot(kreisg,Dp,Cp, Ap,Bp);anzahl:=nops(A)+nops(B)+nops(C)+nops(DD);

;anteilKeisImQuadtrat=float(anzahl/n);

anteilKeisImQuadtrat2=float(anzahl/r^2);

math

math

math

math

math

math

math

math

math

math

MuPAD graphics

math

math

math

 

//############# n=10000####

 

n:=10000;r:=floor(sqrt(n));

kreis:=x^2+y^2=r^2;

kreisg:=plot::Implicit2d(kreis,x=-r..r, y=-r..r,

Scaling=Constrained,GridVisible=TRUE):

A:=[[0,0]];

B:=[[k,0]$ k=1..r,[-k,0]$ k=1..r,[0,k]$ k=1..r,[0,-k]$ k=1..r]:

nops(B);

Ap:=plot::Listplot(A, LinesVisible=FALSE, PointColor=RGB::Black, PointSize=1):

Bp:=plot::Listplot(B, LinesVisible=FALSE, PointColor=RGB::Blue, PointSize=1):

//Gesucht ist das größte i, dessen Wurzel(2)-faches höchsten r erreicht.

c:=floor(r/sqrt(2));

C1:=[([i,j] $ i=1..c)$j=1..c]: nops(C1);

C2:=[([-i,j] $ i=1..c)$j=1..c]:

C3:=[([-i,-j] $ i=1..c)$j=1..c]:

C4:=[([i,-j] $ i=1..c)$j=1..c]:

C:=C1.C2.C3.C4:nops(C);

Cp:=plot::Listplot(C, LinesVisible=FALSE, PointColor=RGB::Red, PointSize=1):

floor(sqrt(r^2-i^2));

D1:=[([i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D2:=[([-i,k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D3:=[([-i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D4:=[([i,-k] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D5:=[([k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D6:=[([-k,i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D7:=[([-k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

D8:=[([k,-i] $ i=1..floor(sqrt(r^2-k^2)))$ k=c+1..r]:

DD:=D1.D2.D3.D4.D5.D6.D7.D8: nops(DD);

Dp:=plot::Listplot(DD, LinesVisible=FALSE, PointColor=RGB::Green, PointSize=1):

plot(kreisg,Dp,Cp, Ap,Bp);anzahl:=nops(A)+nops(B)+nops(C)+nops(DD);

;anteilKeisImQuadtrat=float(anzahl/n);

anteilKeisImQuadtrat2=float(anzahl/r^2);

math

math

math

math

math

math

math

math

math

math

MuPAD graphics

math

math

math