Indisches Wurzelziehen

Vortrag Christoph Kirfel (Norwegen), GDM Regensburg 2019
sulbasutra.nb  Ha 2019

(Sqrt[N])-Bestimmung, Sulbasutra 600vChr.

Grundidee

Es wird eine Folge von Quadraten erzeugt, aus denen an einer Ecke ein kleineres Quadrat ausgeschnitten ist, genannt L-Figuren  Eine passende Rekursionsformel führt dann zu eine (Haupt)-Kantenlänge, die sich (schnell)   (Sqrt[N]) nähert.
Unten wird gezeigt, dass die Werte dem Heronverfahren entsprechen.

Start für (Sqrt[N])

w sei so gewählt, dass (w^2)<N ist. Günstig ist aber (((w+1))^2)>N  . Die Fläche N-(w^2) wird auf zwei Rechtecke der Länge w und der Breite  b=((N-(w^2))/(2w)) aufgeteilt. Daraus wird die L-Figur gebildet, so dass ein Quadrat der Kantenlänge w+b entsteht, dem das Quadrat (b^2) fehlt.

Gemäß Konstruktion ist 
(w + b)^2 - b^2 = w^2 + 2 w b = w^2 + 2 w *((N-(w^2))/(2 w))=N   
Der Radikand der gesuchten Wurzel ist also gleich der Differenz zweier Quadrate.

Rekursionsschritt für L-Figuren

Setzt man nun a=w+b, so gilt N=(a^2)-(b^2).
Das leere Quadrat der Breite b  wird nun durch 2n Streifen ausgefüllt, die man durch Abschneiden unten und links gewinnt.  Dabei ist n=(a/b)Sie haben die Breite b und die Höhe (OverHat[b])=(b/(2n)) = ((b^2)/(2a)), allerdings ist ein Streifen nur b- (OverHat[b]) breit.
Damit hat die neue L-Figur die Maße (OverHat[a])=a-(OverHat[b]) =a-((b^2)/(2a))

Rekursionsformeln

fb[a_,b_]:=((b^2)/(2 a))
fa[a_,b_]:=a-((b^2)/(2 a))

(Sqrt[2])  denn  2 = (((3/2))^2)-((((1/2)))^2)

N[(Sqrt[2]),20]

{a=(3/2), b=(1/2)}

liste={fb[a,b],fa[a,b],fa[a,b]//N, ((fa[a,b])^2), ((fa[a,b])^2)//N}

Anmerkung

Die Inder fassten die Brüche nicht zusammen. Für die Längen a ergab sich
(3/2), (3/2)-(1/(3*4)),  (3/2)-(1/(3*4))  -(1/(2*3*4*17)),  (3/2)-(1/(3*4))  -(1/(2*3*4*17)) -(1/(2*3*4*17*1154))-.... 
Zusammengefasst  (3/2), (17/12), (577/408), (665857/470832)

Es sind “Schachtelnenner”, bei jedem Schritt kommt ein Faktor im Nenner hinzu. Damit gelang es, das Vorgehen zu rekonstruieren.

weitere Werte

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

(Sqrt[15])  denn w=3, b=((15-9)/(2*3))=(6/6)=1, also a=4

Passend zum Bild

N[(Sqrt[15]),20]

{a=4, b=1}

liste={fb[a,b],fa[a,b], N[fa[a,b],20],((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

Hier stimmen schon 14 Stellen von ((Sqrt[15]))

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

N[(Sqrt[15]),20]

Zusammenhang mit dem Heronverfahren

Beweis, dass Heron und Sulbasutra das Gleiche tun

N=(a^2)-(b^2), heron(a)=(1/2)(a+(((a^2)-(b^2))/a))=((2(a^2)-(b^2))/(2a))=a-((b^2)/(2a))= Sulbasutra(a)

(Sqrt[15])

w=15;heron[x_]:=(1/2)(x+(w/x))

N[NestList[heron,4,4],20]

(Sqrt[2])

w=2;heron[x_]:=(1/2)(x+(w/x))

NestList[heron,(3/2),4]

N[NestList[heron,(3/2),6],20]

Weitere Beispiele

Sqrt[32], denn 32=(6^2)-(2^2)

N[(Sqrt[32]),12]

{a=6, b=2}

liste={fb[a,b],fa[a,b], N[fa[a,b],12],((fa[a,b])^2), N[((fa[a,b])^2),12]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],12], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],12], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],12], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

(Sqrt[72])  denn 72 =9^2 - (3^2) =(6^2)+2*6*3

Passend zum Bild

N[(Sqrt[72]),20]

{a=9, b=3}

liste={fb[a,b],fa[a,b], N[fa[a,b],20],((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}

{a=liste[[2]], b=liste[[1]]};
liste={fb[a,b],fa[a,b],N[fa[a,b],20], ((fa[a,b])^2), N[((fa[a,b])^2),20]}