Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den...

21
Der Salamin/Brent Algorithmus (AGM) * Markus Steinborn <[email protected]> Wintersemester 2004/05 Zusammenfassung In dieser Seminarausarbeitung geht es prim¨ ar darum, zu zeigen, wie man die Zahl π mit dem Salamin/Brent Algorithmus berechnen kann. Dazu beginne ich mit einer Definition des arithmetischen sowie des geometrischen Mittels und deren Beziehung zueinander. Dann leite ich die Existenz des arithmetisch-geometrischen Mittels (AGM) ab. Im Hauptteil untersuche ich die elliptischen Integrale π 2 R 0 dt a 2 cos 2 t+b 2 sin 2 t und den Viertelellipsenumfang π 2 R 0 p a 2 cos 2 t + b 2 sin 2 t dt und bringe sie in Beziehung. Aus diesen Ergebnissen wird sich die gew¨ unschte Darstellung von π mittels des AGM ergeben. Schliesslich gebe ich noch eine Implementierung des Algorithmus an und gehe auf die Konvergenzgeschwindigkeit ein – hier wird sich erweisen, dass eine quadratische Konvergenz vorliegt. Inhaltsverzeichnis 1 Wiederholung 2 2 Die quadratische Konvergenz des arithmetisch- geometrischen Mittels 3 3 Elliptische Integrale 5 4 Die Berechnung von π 11 5 Eine Implementierung des Algorithmus 12 A Maple Worksheet: Beweis von Satz 19 15 B Maple Worksheet: Beweis von Satz 21 17 C Maple Worksheet: Beweis von Satz 24 19 * Seminar Computeralgebra: π, von zur Gathen & N¨ usken 1

Transcript of Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den...

Page 1: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Der Salamin/Brent Algorithmus (AGM)∗

Markus Steinborn <[email protected]>

Wintersemester 2004/05

Zusammenfassung

In dieser Seminarausarbeitung geht es primar darum, zu zeigen, wie man die Zahlπ mit dem Salamin/Brent Algorithmus berechnen kann. Dazu beginne ich mit einerDefinition des arithmetischen sowie des geometrischen Mittels und deren Beziehungzueinander. Dann leite ich die Existenz des arithmetisch-geometrischen Mittels (AGM)ab.

Im Hauptteil untersuche ich die elliptischen Integrale

π2∫

0

dt√a2 cos2 t+b2 sin2 t

und den

Viertelellipsenumfang

π2∫

0

a2 cos2 t + b2 sin2t dt und bringe sie in Beziehung. Aus diesen

Ergebnissen wird sich die gewunschte Darstellung von π mittels des AGM ergeben.Schliesslich gebe ich noch eine Implementierung des Algorithmus an und gehe auf

die Konvergenzgeschwindigkeit ein – hier wird sich erweisen, dass eine quadratischeKonvergenz vorliegt.

Inhaltsverzeichnis

1 Wiederholung 2

2 Die quadratische Konvergenz des arithmetisch-geometrischen Mittels 3

3 Elliptische Integrale 5

4 Die Berechnung von π 11

5 Eine Implementierung des Algorithmus 12

A Maple Worksheet: Beweis von Satz 19 15

B Maple Worksheet: Beweis von Satz 21 17

C Maple Worksheet: Beweis von Satz 24 19

∗Seminar Computeralgebra: π, von zur Gathen & Nusken

1

Page 2: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

1 Wiederholung

Bevor ich mit den eigentlichen Stoff beginne, mochte ich einige (einfache) Tatsachen uber dasalgebraische Mittel sowie uber das geometrische Mittel wiederholen. Mit diesen kann mandann das arithmetisch-geometrische Mittel definieren.Unter dem arithmetischen Mittel von a und b versteht man den Wert a+b

2, unter dem geom-

tetrischen Mittel von a und b mit 0 < a, b versteht man den Wert√

ab. Dabei hat das geome-trische Mittel folgende Bedeutung: Man stelle sich ein Rechteck mit den Seitenlangen a undb vor. Das geometrische Mittel von a und b gibt dann die Seitenlange eines flachengleichenQuadrates an.

Lemma 1 Fur a, b ∈ R, 0 < b < a gilt: 0 < b <√

ab < a+b2

< a. Insbesondere: Dasgeometrische Mittel ist stets kleiner dem arithmetischen Mittel.

Beweis:

• b =√

b2 <√

ab.

• a+b2

< a+a2

= 2a2

= a.

• 0 < 14(a − b)2 = 1

4(a2 − 2ab + b2) = 1

4(a2 + 2ab + b2) − ab =

(a+b2

)2 − ab

=

(a + b

2+√

ab

)

︸ ︷︷ ︸

>0

(a+b2

−√

ab)

.

Definition 2 Fur a, b ∈ R, 0 < b < a definiere folgende zwei Folgen (an), (bn) durch dieRekursion:

a0 := a, b0 := b, an+1 :=an + bn

2, bn+1 :=

anbn.

Folgerung 3 Fur die oben definierten Folgen gilt bn < bn+1 < an+1 < an. Es gilt furk, l ∈ �

0 : bk < al.

Folgerung 4 Es existieren die Grenzwerte a∞ := lim an und b∞ := lim bn.

Beweis: Nach der vorherigen Folgerung sind an und bn (streng) monoton und beschrankt.Also sind sie konvergent. �

Satz 5 Es gilt: a∞ = b∞, d.h. lim an = lim bn.

Beweis: Annahme: b∞ < a∞. Nach Konvergenz von an bzw. bn existiert ein N ∈ �so, dass

∀m ≥ n ≥ N gilt: an−am < a∞−b∞5

. Anderseits gilt: an−an+1 = an− an+bn

2=(an − an

2

)− bn

2=

an

2− bn

2> a∞

2− b∞

2. E �

Fur diesen Satz gebe ich noch einen weiteren Beweis:

Beweis: Es gilt an+1 = an+bn

2fur alle n. Durch Grenzwertubergang folgt a∞ = a∞+b∞

2, d,h.

a∞ = b∞. �

2

Page 3: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Definition 6 Der gemeinsame Grenzwert a∞ = lim an = lim bn = b∞ heißt algebraisch-geometrisches Mittel von a0 und b0, in Zeichen agm(a0, b0). Weiter sei definiert: agm(a0, a0) :=a0 sowie fur a < b sei agm(a, b) := agm(b, a).

Folgerung 7 b0 < agm(a0, b0) < a0 fur 0 < b0 < a0.

Bemerkung 8 Die Definition agm(a, a) = a ist kompatibel mit der Berechnung des agmuber die oben spezifizierten Folgen und Grenzwertbildung – die beiden Folgen an, bn sind indiesem Spezialfall namlich konstant gleich a.

Bemerkung 9 Die Definition agm(a, b) = agm(b, a) fur a < b ergibt sich ebenfalls auch,wenn man mit den nichtvertauschten Werten die Berechnungsvorschrift durchlauft, da ab a1

und b1 die Vertauschung aufgehoben ist.

2 Die quadratische Konvergenz des arithmetisch-

geometrischen Mittels

Ich zeige in diesem (kurzen) Abschnitt, dass die Folgen an, bn quadratisch gegen das arithmetisch-geometrischen Mittel konvergieren. Desweiteren bereite ich die Konvergenzabschatzung furdie π-Berechnung nach dem agm-Verfahren vor.

Definition 10

cj =√

a2j − b2

j , c2j = a2

j − b2j .

Satz 11 Es gilt: an, bn konvergieren quadratisch gegen agm(a, b).

Beweis: Hier ist nur zu zeigen, dass die Konvergenz quadratisch ist.Es gilt:

c2n = a2

n − b2n

=

(an−1

2+

bn−1

2

)2

−√

bn−1an−1

2

=a2

n−1

4+

b2n−1

4+

an−1bn−1

2− bn−1an−1

=1

4(an−1 − bn−1)

2 (1)

und damit

cn =1

2(an−1 − bn−1). (2)

Anderseits gilt auch:

c2n = a2

n − b2n

= (an − bn)(an + bn)

= 2cn+1 · 2an+1

= 4an+1cn+1. (3)

3

Page 4: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Dies zusammen kann man schließlich fur die Fehlerabschatzung nehmen, denn an − bn ≥an − agm(a, b) und an − bn ≥ agm(a, b) − bn.

an − bn(2)= 2cn+1

(3)=

c2n

2an+1

(1)=

14(an−1 − bn−1)

2

2an+1

≤ (an−1 − bn−1)2

8 agm(a, b)

Also konvergiert an−bn quadratisch gegen Null. Aber auch an → a∞ konvergiert quadratisch:

an − a∞ ≤ an − bn ≤ (an−1 − bn−1)2

8 agm(a, b)≤ (an−1 − a∞)2

2 agm(a, b),

weil

a∞ < an =an−1 + bn−1

2,

2a∞ < an−1 + bn−1,

2(a∞ − an−1 < bn−1 − an−1,

2(an+1 − a∞) > an−1 − bn−1. �

Folgerung 12 Falls 8 agm(a0, b0) ≥ 1, so ist an − bn ≤ (a0 − b0)2n

.

Beweis: an+1 − bn+1 ≤ (an − bn)2 ≤((a0 − b0)

2n)2= (a0 − b0)

2·2n= (a0 − b0)

2n+1

Folgerung 13 cn = 12(an−1 − bn−1) ≤ 1

2(a0 − b0)

2n−1

, falls 8 agm(a0, b0) ≥ 1

Folgerung 14 Falls 8 agm(a0, b0) ≥ 1 und |a0 − b0| ≤ 1 gilt cn ≤ 12(1

2)2n−2

, da a1 − b1 ≤ 12.

Dabei wurde Folgerung 13 auf die agm-Iteration gestartet mit a1, b1 angewandt.

Lemma 15∞∑

n=2

2nc2n ≤ 2c2, falls 8 agm(a0, b0) ≥ 1 und |a0 − b0| ≤ 1.

Beweis: Wir schatzen ab:

∞∑

n=2

2nc2n ≤ c2

∞∑

n=2

2ncn

≤ c2

∞∑

n=2

2n

(1

2

)2n−1

= c2

∞∑

n=2

1

22n−1−n= c2

∞∑

n=0

1

22n+2−1−(n+2)

≤ c2

∞∑

n=0

1

2n= 2c2.

4

Page 5: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Bei der letzten Abschatzung wurde zu einer (konvergenten) Majorante ubergegangen: Wirzeigen per Induktion, dass 2n+1 − n − 2 ≥ n fur jedes n ∈ �

0. Der Fall n = 0 ist klar. Seialso die Behauptung fur n richtig. Dann gilt die Behauptung auch fur n + 1, denn

2(n+1)+1 − (n + 1) − 2 = 2(2n+1 − n − 2︸ ︷︷ ︸

≥n nach IV

) + n + 1

≥ 2n + n + 1 = 3n + 1

≥ n + 1. �

Folgerung 16∞∑

i=n+1

2ic2i ≤ 2n−12cn+2 = 2ncn+2 ≤ 2−2n+1+n,

falls 8 agm(a0, b0) ≥ 1 und |a0 − b0| ≤ 1 gilt.

Beweis:

∞∑

i=n+1

2ic2i = 2n−1

∞∑

i=2

2ic2n+i ≤ 2n−12cn+2 = 2ncn+2 ≤ 2n ·

(1

2

)2n+1

.

Dabei begrundet sich die ≤-Abschatzung wie folgt: Betrachte die agm-Iteration ai, bi, ci, dieentsteht, wenn man an und bn als Startwerte nimmt. Dann gilt: ai = an+i, bi = bn+i, ci =cn+i und Lemma 15 liefert die Behauptung. �

3 Elliptische Integrale

In diesem Abschnitt betrachten wir zwei Integrale, die eng verknupft sind mit dem arithmetisch-geometrischen Mittel. Diese Ergebnisse sind fur die π-Berechnung (genauer: deren Herleitung)unerlaßlich.

Definition 17 Die folgenden Integrale heißen elliptische Integrale: (a, b > 0)

I(a, b) =

π2∫

0

dt√a2 cos2 t + b2 sin2 t

, J(a, b) =

π2∫

0

a2 cos2 t + b2 sin2 t dt.

Bemerkung 18 Das elliptische Integral J(a, b) hat folgende geometrische Bedeutung: Ei-ne Ellipse mit Halbachsen der Langen a und b hat den Umfang 4J(a, b). Ohne Beweis seiangegeben, dass das elliptische Integral I(a, b) bei der Berechnung der Schwingung einesFederpendels und bei der Rektifikation der Bernoullischen Lemniskate benutzt wird

Beweis: Aus Symetriegrunden konnen wir uns auf den ersten Quadranten beschranken, d.h.wir wollen zeigen, dass das Kurvenstuck im ersten Quadranten die Lange J(a, b) hat.

Die Koordinaten einer Ellipse sind gegeben durch γ(t) =

(a cos tb sin t

)

. Es folgt γ′(t) =

(−a sin tb cos t

)

,

wobei t ∈ [0, 12π]. Die Bogenlange einer parametrisierten Kurve ist – wie man aus der Analysis

weiß – gegeben durch∫‖γ′(t)‖ dt. �

5

Page 6: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Satz 19 I(an, bn) = I(an+1, bn+1).

Beweis: Wir fuhren den Beweis nach Weisstein (1999-2004) unter Zuhilfenahme von Maple1:

Zum Beweis betrachte

I(a, b) =

π/2∫

0

dt√a2 cos2 t + b2 sin2 t

=

π/2∫

0

dt

cos t√

a2 + b2 tan2 t.

Die Substitutionu = b tan t

liefertdu = b sec2 t dt

und da 1cos t

=: sec t =√

1 + tan2 t folgt:

du =b

cos tsec t dt

=b

cos t

1 + tan2 t dt

=b

cos t

1 +(u

b

)2

dt

=1

cos t

√b2 + u2 dt

und somitdt

cos t=

du√b2 + u2

.

Also ergibt die Substitution

I(a, b) =

∞∫

0

du√

(u2 + a2)(u2 + b2)=

1

2

R

du√

(u2 + a2)(u2 + b2). (4)

Jetzt fuhre die Substitution

v =1

2

(

u − ab

u

)

, (5)

d.h. u = v +√

v2 + ab und dudv

= 1 + 2v√r2+ab

durch:

I(a, b) =

R

dv√

(a2 + (v +√

v2 + ab)2)(b2 + (v +√

v2 + ab)2)(

1 + 2v√v2+ab

)2

︸ ︷︷ ︸

=:r

Wenn man nun den Term r unter der Wurzel rational macht, ausmultipliziert und faktorisiert,so erhalt man

r = 4(v2 + ab)

(

v2 +

(a + b

2

)2)

.

1Das Maple-Worksheet ist im Anhang A abgedruckt.

6

Page 7: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Alle Wurzeln sind verschwunden! Damit folgt (unter Benutzung von (4)):

I(a, b) =

R

dv

2√

(v2 + b′2) (v2 + a′2)2)=

∞∫

0

dv√

(v2 + b′2)(v2 + a′2)= I(a′, b′)

mit

a′ :=a + b

2, b′ :=

√ab

Folgerung 20 I(a, b) = π2· 1

agm(a,b)

Beweis: I(a0, b0) = lim I(an, bn) = I(lim an, lim bn) = I(agm(a0, b0), agm(a0, b0))

=

π2∫

0

dt√agm2(a0,b0)(cos2 t+sin2 t)

=

π2∫

0

dtagm(a0 ,b0)

= π2· 1

agm(a0 ,b0)

Es verbleibt einzusehen, dass in der obigen Gleichung die Integration und die Grenzwertbil-dung vertauscht werden durften:

Die elementare Moglichkeit ist, nachzurechnen, dass fur n → ∞ die Folge 1√a2

n cos2 t+b2n sin2 t

gleichmaßig gegen 1√agm(a,b)2 cos2 t+agm(a,b)2 sin2 t

konvergiert.

Betrachte dazu fn(t) := a2n cos2 t + b2

n sin2 t. Offenbar gilt fn ⇒ f∞ gleichmaßig. Da dieGrenzfunktion f(t) = agm2(a, b) die Norm ‖f∞‖∞ = agm2(a, b) ungleich Null hat, folgt, dassauch 1√

fn⇒ 1√

f∞gleichmaßig konvergiert. �

Mit dieser Folgerung haben wir das erste Mal einige wichtige Ziele erreicht: Wir habeneine Verknupfung geschaffen zwischen den Elliptischen Integralen und dem arithmetisch-geometrischen Mittel – und dabei tritt in der Gleichung schon π auf!

Satz 21 Es gilt fur a > b > 0

2J(a + b

2,√

ab) − J(a, b) = abI(a, b).

Beweis: 2 Wir fuhren den Beweis nach Storch & Wiebe (1996):

Die Substitition t = arctan u liefert die folgenden Darstellungen der Integrale:

I(a, b) =

∫ ∞

0

du√

(1 + u2)(a2 + b2u2)

und

J(a, b) =

∫ ∞

0

√a2 + b2u2

(1 + u2)3

2

du

2Ein Maple Worksheet zu diesen Beweis ist in Anhang B abgedruckt

7

Page 8: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Fur s ∈ R, s 6= c :=√

ab

setzen wir

u := L(s) :=(a + b)s

a − bs2

Dann ist L(0) = 0, L(c−) = ∞ = −L(c+) und L(∞) = 0. Außerdem ist L auf [0, c) strengmonoton wachsend und −L auf (c,∞) streng monoton fallend wegen

du

ds= L′(s) =

(a + b)(a + bs2)

(a − bs2)2> 0.

Wir definieren jetzt A := a − bs2, B := a + bs2 und C := a2 − b2s4, D := a2 + b2s2.Dann sieht man leicht 1 + u2 = (1 + s2)D/A2, ((a + b)/2)2 + abu2 = (a + b)2B2/(4A2), du =((a + b)B/A2) ds und somit

J

(a + b

2,√

ab

)

=

∞∫

0

((a + b)/2)2 + abu2

(1 + u2)3/2du

=

c∫

0

((a + b)B/(2A))((a + b)B/A2)

(1 + s2)3/2D3/2/A3ds =

(a + b)2

2

c∫

0

B2 ds

((1 + s2)D)3/2

Entsprechend folgt auch J(

a+b2

,√

ab)

= (a+b)2

2

∞∫

c

B2 ds((1+s2)D)3/2 , also

2J

(a + b

2,√

ab

)

=(a + b)2

2

∞∫

0

B2 ds

((1 + s2)D)3/2.

Durch explizites Nachrechnen bestatigt man

((a + b)2/2)B2 − ab(1 + s2)D = D2 − (a2 − b2)C/2.

Es folgt

2J

(a + b

2,√

ab

)

− abI(a, b) =(a + b)2

2

∞∫

0

B2 ds

((1 + s2)D)3/2− ab

∞∫

0

(1 + s2)D

((1 + s2)D)3/2ds

=

∞∫

0

D2 ds

((1 + s2)D)3/2− a2 − b2

2

∞∫

0

C ds

((1 + s2)D)3/2

︸ ︷︷ ︸

=0

= J(a, b).

Das letzte Integral ist Null, weil sein Integrand die Stammfunktion s/√

(1 + s2)D besitzt,welche bei s = 0 und s → ∞ verschwindet. �

Lemma 22 Es gilt anbn = 12c2n + 2a2

n+1 − a2n .

8

Page 9: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Beweis:

1

2c2n + 2a2

n+1 − a2n =

1

2(a2

n − b2n) + 2

(an + bn

2

)2

− a2n

= −1

2a2

n − 1

2b2n +

1

2a2

n +1

2b2n + anbn

= anbn. �

Satz 23

J(a0, b0) =

(

a20 −

1

2

∞∑

j=0

2jc2j

)

I(a0, b0)

Beweis: Nach dem vorherigen Satz gilt

2J(an+1, bn+1) − J(an, bn) = anbnI(an, bn)

Durch Multiplizieren mit 2n sieht man, dass dies aquivalent ist zu

2n+1J(an+1, bn+1) − 2nJ(an, bn) = 2nanbnI(an, bn)

Nach Lemma 22 liefert dies

2n+1J(an+1, bn+1) − 2nJ(an, bn) = 2n

(1

2c2n + 2a2

n+1 − a2n

)

I(an, bn),

2n+1(J(an+1, bn+1) − a2

n+1I(a0, b0))− 2n

(J(an, bn) − a2

nI(a0, b0))

= 2n−1c2nI(a0, b0),

∞∑

n=0

[2n+1

(J(an+1, bn+1) − a2

n+1I(a0, b0))− 2n

(J(an, bn) − a2

nI(a0, b0))]

=∞∑

n=0

2n−1c2nI(a0, b0),

−J(a0, b0) + a20I(a0, b0) =

∞∑

n=0

2n−1c2nI(a0, b0),

J(a0, b0) =

(

a20 −

∞∑

n=0

2n−1c2n

)

I(a0, b0).

Dabei ist die Beobachtung eingeflossen, dass

∆n := 2n(a2

nI(an, bn) − J(an, bn))

= 2n

π/2∫

0

(a2n − b2

n) sin2 t√

a2n cos2 t + b2

n sin2 tdt

= 2nc2n

π/2∫

0

sin2 t√

a2n cos2 t + b2

n sin2 tdt

≤ 2nc2nI(an, bn)

= 2nc2nI(a0, b0)

→ 0

fur n → ∞, da c2n → 0 quadratisch konvergiert. �

9

Page 10: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Satz 24 (Legendre, 1811) Fur die elliptischen Integrale und k ∈ (0, 1) gilt die folgendeBeziehung:

I(1, k)J(1, k′) + I(1, k′)J(1, k) − I(1, k)I(1, k′) =π

2mit

1 = k2 + k′2.

Beweis: 3 Wir fuhren den Beweis nach Storch & Wiebe (1996):

Es gilt:d

dk

√1 − k2 = − −2k

2√

1 − k2= − k

k′

Man rechnet leicht nach durch Differenzieren von J(1, k) in der Darstellung aus Definition17:

d

dkJ(1, k) =

k

k′2 (I(1, k) − J(1, k)).

Es folgt mit h(k) :=√

1 − k2:

d

dkJ ′(1, k) =

d

dkJ(1, h(k)) =

1

k(J ′(1, k) − I ′(1, k))

wobei

I ′(1, k) := I(1, h(k)), J ′(1, k) := J(1, h(k)).

Man kann zeigen:d

dkI(1, k) =

k

k′2 (I(1, k) − 1

k2J(1, k))

und damit folgtd

dkI ′(1, k) =

1

k(

1

k′2J ′(1, k) − I ′(1, k)).

Damit folgt:

d

dk(J ′(1, k)I(1, k)) = J ′(1, k) · k

k′2 (I(1, k) − 1

k2J(1, k)) + I(1, k)

1

k(J ′(1, k) − I ′(1, k)),

d

dk(J(1, k)I ′(1, k)) = J(1, k) · 1

k

(1

k′2 J ′(1, k) − I ′(1, k)

)

+ I ′(1, k) · k

k′2 (I(1, k) − J(1, k)),

d

dk(−I(1, k)I(1, k)) = −I(1, k) · 1

k

(1

k′2 J ′(1, k) − I ′(1, k)

)

− I ′(1, k) · k

k′2

(

I(1, k) − 1

k2J(1, k)

)

,

d

dk(IJ ′ + I ′J − II ′) =

(k

k′2 IJ ′ − 1

kk′2JJ ′ +1

kIJ ′ − 1

kII ′)

+

(1

kk′2 JJ ′ − 1

kI ′J +

k

k′2 II ′ − k

k′2 I ′J

)

+

(

− 1

kk′2 IJ ′ +1

kII ′ − k

k′2 II ′ +1

kk′2 I ′J

)

= 0.3Zu diesem Beweis ist in Anhang C ein Maple Worksheet abgedruckt.

10

Page 11: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Es gilt:

limk→0

I ′(1, k)︸ ︷︷ ︸

→π2

J(1, k)︸ ︷︷ ︸

→1

− (I ′(1, k) − J ′(1, k)) I(1, k)︸ ︷︷ ︸

→0

2,

wobei ich auf den Beweis von (I ′(1, k) − J ′(1, k)) I(1, k) → 0 fur k → 0 verzichte (dieser gehtuber die Potenzreihenentwicklung der Integrale), weil es wegen I ′(1, k) → π/2, J ′(1, k) →π/2, I(1, k) → ∞ nicht einfach moglich ist, diesen Grenzwert nachzurechnen. �

4 Die Berechnung von π

Wir beginnen mit dem Satz 24 (Legendre)

I(1, k)J(1, k′) + I(1, k′)J(1, k) − I(1, k)I(1, k′) =π

2und ersetzen mit Satz 23 alle Vorkommen von J(1, ·):

π

2= I(1, k)

(

1 − 1

2

∞∑

j=0

2jc′2j

)

I(1, k′) + I(1, k′)

(

1 − 1

2

∞∑

j=0

2jc2j

)

I(1, k) − I(1, k)I(1, k′)

sowie mit Satz 20 alle Vorkommen von I(1, ·):

π

2=

π

2 agm(1, k)

(

1 − 1

2

∞∑

j=0

2jc′2j

)

π

2 agm(1, k′)

2 agm(1, k′)

(

1 − 1

2

∞∑

j=0

2jc2j

)

π

2 agm(1, k)

− − π

2 agm(1, k)

π

2 agm I(1, k′)

Diese Formel ist nun nach π aufzulosen:

2

πagm(1, k) agm(1, k′) = 1 − 1

2

∞∑

j=0

2j(

c2j + c′

2j

)

=1

2− 1

2

∞∑

j=1

2j(

c2j + c′

2j

)

,

also

π =4 agm(1, k) agm(1, k′)

1 −∞∑

j=1

2j(c2j + c′2j

).

Halten wir dieses Ergebnis fest:

Theorem 25

π =4 agm(1, k) agm(1, k′)

1 −∞∑

j=1

2j(c2j + c′2j

).

11

Page 12: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Der Spezialfall k = k′ = 1√2

ergibt

Theorem 26

π =4 agm2(1, 1√

2)

1 −∞∑

j=1

2j+1c2j

.

Man kann aus dieser Formel einen Algorithmus bauen, indem man den agm(1, 1√2) durch an

annahert und die unendliche Summe im Nenner approximiert durch

n∑

j=1

2j+1c2j .

Begonnen wird mit n = 1 und dann wird n fortlaufend erhoht, wobei jeweils die Naherun-gen fur den Zahler und den Nenner berechnet werden (und damit die Naherung fur denQuotienten).Da wir bereits gesehen, dass das arithmetisch-geometrische Mittel quadratisch konvergiert,folgt, dass der Zahler ebenfalls quadratisch konvergiert.

Mit der Abschatzung aus Folgerung 16

∞∑

j=1

2jcj −N∑

j=1

2jcj ≤ 2ncn+1

fur den Fehler des Nenners folgt:

Theorem 27 Der Algorithmus zur π-Berechnung konvergiert quadratisch gegen π. �

5 Eine Implementierung des Algorithmus

Um den Algorithmus zu implementieren, ist es notwendig, mit Fließkommazahlen sehr großerGenauigkeit zu rechnen. Eine Moglichkeit, dies in C bzw. C++ zu erreichen, ist es, dieGMP-Bibliothek (GNU Multi-Precision Library, http://www.swox.com/gmp) einzusetzen.In der angegebenen Implementierung habe ich genau diese Bibliothek verwendet (in derC++-Version).

Term gespeichert inan aan−1 aOldbn bbn−1 bOldc2n c

2n+1 r

1 −n∑

j=1

2j+1c2j s

Die abgedruckte C++-Implementierung liefert bei einer gewahlten Genauigkeit von 40 Binarstel-len die folgenden Zwischenergebnisse:

12

Page 13: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

// compile with:

// g++ -lgmpxx -lgmp pi.cpp -o pi

// include input/output routines from C++

#include <iostream>

#include <iomanip>

// they are in namespace "std", make them available in

// current namespace:

using namespace std;

// include the GMP (Gnu Multi Precision) Library for C++

#include <gmpxx.h>

// this constant holds the precision (in bits) of the

// floating point arithmetic being used.

const long prec = 4000;

int main(void){// set the default precision of Variables of type mpf_t

// and mpf_class

mpf set default prec(prec);

// define some Variables

mpf class a=1, aOld, b, bOld;mpf class s=1, r=2, c, p, maxErr;

// maxErr = a/2^prec (=1/2^prec)

// As this function has not been ported to C++ yet,

// you’ve to write

mpf div 2exp ( maxErr.get mpf t(), a.get mpf t(), prec );

b = a/r;b = sqrt(b); // b = 1/sqrt(2);

c = a∗a − b∗b;while ( a − b > maxErr ){

aOld = a;bOld = b;r = r ∗ 2;a = (aOld + bOld) / 2;b = sqrt(aOld ∗ bOld);c = c∗c / (16∗a∗a);s = s − r∗c;p = 4∗a∗a / s;

}

// Output the result with the given precision:

cout << setprecision(prec) << ”pi=” << p << endl;return 0;

}

Abbildung 1: π-Berechnung mittels Salamin/Brent Algorithmus (AGM) in C++13

Page 14: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

n a b p1 0.853553390593273762191 0.840896415253714543031 3.187672642712108627092 0.847224902923494152611 0.847201266746891460399 3.141680293297653293843 0.847213084835192806505 0.8472130847527653667 3.141592653895446495944 0.847213084793979086602 0.847213084793979086601 3.1415926535897932384

n c s1 0.0214466094067262378001 0.91421356237309504882 4.00497561865525528501e-05 0.9138931643236026283773 1.39667211098413690841e-10 0.9138931620889272508024 1.69857070821839924371e-21 0.913893162088927250748

Bei 4000 Stellen Genauigkeit wird die folgende Naherung von π ausgegeben (die Ausgabewurde durch Leerzeichen und Zeilenwechsel etwas aufbereitet):

pi=3. 14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

34825 34211 70679 82148 08651 32823 06647 09384 46095 50582 23172 53594 08128 48111 74502 84102 70193 85211

05559 64462 29489 54930 38196 44288 10975 66593 34461 28475 64823 37867 83165 27120 19091 45648 56692 34603

48610 45432 66482 13393 60726 02491 41273 72458 70066 06315 58817 48815 20920 96282 92540 91715 36436 78925

90360 01133 05305 48820 46652 13841 46951 94151 16094 33057 27036 57595 91953 09218 61173 81932 61179 31051

18548 07446 23799 62749 56735 18857 52724 89122 79381 83011 94912 98336 73362 44065 66430 86021 39494 63952

24737 19070 21798 60943 70277 05392 17176 29317 67523 84674 81846 76694 05132 00056 81271 45263 56082 77857

71342 75778 96091 73637 17872 14684 40901 22495 34301 46549 58537 10507 92279 68925 89235 42019 95611 21290

21960 86403 44181 59813 62977 47713 09960 51870 72113 49999 99837 29780 49951 05973 17328 16096 31859 50244

59455 34690 83026 42522 30825 33446 85035 26193 11881 71010 00313 78387 52886 58753 32083 81420 61717 76691

47303 59825 34904 28755 46873 11595 62863 88235 37875 93751 95778 18577 80532 17122 68066 13001 92787 66111

95909 21642 01989 38095 25720 10654 85863 27886 59361 53381 82796 82303 01952 03530 18529 68995 77362 25994

13891 24972 17752 83479 13151 55748 57242 45415 06959 50829 53311 68617 27855 88907 50983 81754 63746 49393

19255 06040 09277 01671 13900 98488 24012 85826

14

Page 15: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

A Maple Worksheet: Beweis von Satz 19

> restart:> interface(showassumed=0):> assume(a>0):> assume(b>0):

Wir wollen das folgende elliptische Integral umformen.

> Start:=Int( 1/sqrt((a^2+u^2)*(b^2+u^2)), u=0..infinity );

Start :=

∫ ∞

0

1√

(a2 + u2) (b2 + u2)du

Dazu soll diese Substitution verwendet werden.

> EQ:=v=(u-a*b/u)/2;

EQ := v =u

2− a b

2 uDas Ergebnis ist fur Maple leicht zu bestimmen.

> Intermediate:=student[changevar](> EQ,> Start,> v );

Intermediate :=

∫ ∞

−∞

2 %12

a2 + %12√

b2 + %12 (%12 + a b)dv

%1 := v +√

v2 + a bAllerdings sieht es recht kompliziert aus, wir versuchen es daher zu vereinfachen. Dazu bear-beiten wir den Kehrwert des Quadrats des Integranden.

> op(1,Intermediate):> %^(-2);> rationalize(%);> expand(%);> #simplify(%);> factor(%);> map(z->factor(subs(v=0,z))+z-subs(v=0,z),%);> subs({a*b=nextb^2,a+b=2*nexta},%):> simplify(%^(-1/2)):> Finish1:=subsop(1=%,Intermediate);

(a2 + %12) (b2 + %12) (%12 + a b)2

4 %14

%1 := v +√

v2 + a b

(a2 + 2 v2 + 2 v√

v2 + a b + a b) (b2 + 2 v2 + 2 v√

v2 + a b + a b) (v2 + v√

v2 + a b + a b)2

(8 v4 − 8√

v2 + a b v3 + 8 v2 a b − 4√

v2 + a b v a b + a2 b2)/(a4 b4)

2 a2 b2 + a3 b + a b3 + a2 v2 + 4 v4 + v2 b2 + 6 v2 a b

(v2 + a b) (a2 + 2 a b + b2 + 4 v2)

(v2 + a b) ((a + b)2 + 4 v2)

Finish1 :=

∫ ∞

−∞

1

2√

(v2 + nextb2) (nexta2 + v2)dv

Hier ist naturlich nexta=(a+b)/2 und nextb=sqrt(a*b), wie es eingesetzt wurde.

15

Page 16: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Eigentlich war’s das, aber wir konnen es noch ein wenig schoner hinbekommen: Wenn wirdas Integral bei Null aufschneiden, konnen wir die Symmetrie des Integranden ausnutzen:

> subsop(2=(v=-infinity..0),Finish1):> student[changevar]( v=-w, %, w ):> student[changevar]( w=v, %, v ):> % + subsop(2=(v=0..infinity),Finish1);> subsop([2,1]=op(1,%)*op([2,1],%), % ) / op(1,%): # Konstante> unters Integral nehmen> Finish:= %;

2

∫ ∞

0

1

2√

(v2 + nextb2) (nexta2 + v2)dv

Finish :=

∫ ∞

0

1√

(v2 + nextb2) (nexta2 + v2)dv

16

Page 17: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

B Maple Worksheet: Beweis von Satz 21

> restart:> interface(showassumed=0):> assume(a>0):> assume(b>0):> ellI:=(a,b)->Int( 1/sqrt(a^2*cos(t)^2+b^2*sin(t)^2), t=0..Pi/2 ):> ellJ:=(a,b)->Int( sqrt(a^2*cos(t)^2+b^2*sin(t)^2), t=0..Pi/2 ):> ellI2:=unapply( simplify(student[changevar]( t=arctan(u), ellI(a,b),> u )), [a,b]):> ellJ2:=unapply( simplify(student[changevar]( t=arctan(u), ellJ(a,b), u> )), [a,b]):> Start1:=combine(2*ellJ2((a+b)/2,sqrt(a*b)));> Start2:=combine(-ellJ2(a,b));> Start3:=combine(-a*b*ellI2(a,b));> Start:=Start1+Start2+Start3;

Start1 :=

∫ ∞

0

2

(a

2+

b

2)2 + a b u2

(1 + u2)(3/2)du

Start2 :=

∫ ∞

0

−√

a2 + b2 u2

(1 + u2)(3/2)du

Start3 :=

∫ ∞

0

− a b√a2 + b2 u2

√1 + u2

du

Start :=

∫ ∞

0

2

(a

2+

b

2)2 + a b u2

(1 + u2)(3/2)du +

∫ ∞

0

−√

a2 + b2 u2

(1 + u2)(3/2)du +

∫ ∞

0

− a b√a2 + b2 u2

√1 + u2

du

> EQ:=u-(a+b)*s/(a-b*s^2):> diff(solve(EQ,u),s):> simplify(%);

(a + b) (a + b s2)

(a − b s2)2

> Intermediate1:=combine(simplify(student[changevar](> EQ=0,> Start1,> s )));

Intermediate1 :=

s

a

b

0

(a2 + a b s2 + a b + b2 s2)

(a + b s2)2

(a − b s2)2(a + b)

(1 + s2) (b2 s2 + a2)

(a − b s2)2(1 + s2) (b2 s2 + a2)

ds

> op(1,Intermediate1);> %^2:> R0:=simplify(factor(%)):> %^(1/2):> R:=simplify(%) assuming s>0;

17

Page 18: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

(a2 + a b s2 + a b + b2 s2)

(a + b s2)2

(a − b s2)2(a + b)

(1 + s2) (b2 s2 + a2)

(a − b s2)2(1 + s2) (b2 s2 + a2)

R :=(a + b)2 (a + b s2)2

(1 + s2)(3/2) (b2 s2 + a2)(3/2)

> Intermediate1a:=subsop( 1=R, Intermediate1 );

Intermediate1a :=

s

a

b

0

(a + b)2 (a + b s2)2

(1 + s2)(3/2) (b2 s2 + a2)(3/2)ds

> Intermediate1b:=simplify(student[changevar]( s=t,> (student[changevar](> s*t=a/b,> Intermediate1a,> t )), s ));

Intermediate1b :=

∫ ∞√a√b

(a + b)2 (a + b s2)2

s2 (b2 s2 + a2)

b2 s2 + a2

s2(1 + s2)

1 + s2

s2

ds

> op(1,Intermediate1b):> %^2;> simplify(%^(1/2)) assuming s>0;> Intermediate1c:=simplify(subsop(1=%,Intermediate1b));

(a + b)4 (a + b s2)4

(1 + s2)3 (b2 s2 + a2)3

(a + b)2 (a + b s2)2

(1 + s2)(3/2) (b2 s2 + a2)(3/2)

Intermediate1c :=

∫ ∞√a√b

(a + b)2 (a + b s2)2

(1 + s2)(3/2) (b2 s2 + a2)(3/2)ds

> Intermediate1d:=(1/2*combine( Intermediate1a+Intermediate1c ));

Intermediate1d :=1

2

∫ ∞

0

(a + b)2 (a + b s2)2

(1 + s2)(3/2) (b2 s2 + a2)(3/2)ds

> combine(simplify(Intermediate1d+Start2+Start3)):> simplify(%);> Finish:=value(%);

∫ ∞

0

− a4 − a2 b2 s4 − b2 a2 + b4 s4

2 (s2 + 1)(3/2) (b2 s2 + a2)(3/2)ds

Finish := 0

18

Page 19: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

C Maple Worksheet: Beweis von Satz 24

> restart:> interface(showassumed=0):> assume(a>0):> assume(b>0):> ellI:=(a,b)->Int( 1/sqrt(a^2*cos(t)^2+b^2*sin(t)^2), t=0..Pi/2 ):> ellJ:=(a,b)->Int( sqrt(a^2*cos(t)^2+b^2*sin(t)^2), t=0..Pi/2 ):

> k2:=sqrt(1-k^2):> EQ1:=diff(EllJ(1,k),k)=k/k2^2*(EllI(1,k)-EllJ(1,k)):> diff(ellJ(1,k),k)=k/k2^2*(ellI(1,k)-ellJ(1,k)):> subs({EllJ=ellJ,EllI=ellI},EQ1):> simplify(%):> combine(%):> simplify(%);

−k

∫π

2

0

−1 + cos(2 t)√

2 cos(2 t) + 2 + 2 k2 − 2 k2 cos(2 t)dt =

−k

∫π

2

0

−1 + cos(2 t)√

2 cos(2 t) + 2 + 2 k2 − 2 k2 cos(2 t)dt

> EQ2:=isolate(> diff(EllJ(1,k2),k)=subs(k=k2,rhs(EQ1))*diff(k2,k),> D[2](EllJ)):> EQ3:=diff(EllI(1,k),k)=k/k2^2*(EllI(1,k)-1/k^2*EllJ(1,k)):> subs({EllJ=ellJ,EllI=ellI},EQ3):> (rhs-lhs)(%):> simplify(%):> combine(%):> value(%);

0> EQ4:=isolate(> diff(EllI(1,k2),k)=subs(k=k2,rhs(EQ3))*diff(k2,k),> D[2](EllI)):> subs({EllJ=ellJ,EllI=ellI},EQ4):> (rhs-lhs)(%):> simplify(%):> combine(%):> value(%);

0

> EQs:={EQ1,EQ2,EQ3,EQ4}:> Legendre:=EllI(1,k)*EllJ(1,k2)+EllI(1,k2)*EllJ(1,k)-EllI(1,k)*EllI(1,> k2)-Pi/2;

Legendre := EllI(1, k) EllJ(1,√

1 − k2) + EllI(1,√

1 − k2) EllJ(1, k)

− EllI(1, k) EllI(1,√

1 − k2) − π

2> diff(Legendre,k):> subs( {EQ1,EQ2,EQ3,EQ4}, % ):> simplify(%);

19

Page 20: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

0> eval(subs({EllJ=ellJ,EllI=ellI},Legendre));> limit( %, k=0 );

∫π

2

0

1√

cos(t)2 + k2 sin(t)2dt

∫π

2

0

cos(t)2 + (1 − k2) sin(t)2 dt

+

∫π

2

0

1√

cos(t)2 + (1 − k2) sin(t)2dt

∫π

2

0

cos(t)2 + k2 sin(t)2 dt

−∫

π

2

0

1√

cos(t)2 + k2 sin(t)2dt

∫π

2

0

1√

cos(t)2 + (1 − k2) sin(t)2dt − π

2

0

Tatsachlich wurden beim diesem letzten Schritt vermutlich ohne Rucksicht auf VerlusteIntegration und Grenzwertbildung vertauscht, so dass dies nicht besondersvertrauenerweckend ist.

> int(1/cos(t),t=0..Pi/2);

∞> (ellI(1,k2)-ellJ(1,k2))*ellI(1,k);> limit( %, k=0 );

∫π

2

0

1√

cos(t)2 + (1 − k2) sin(t)2dt −

∫π

2

0

cos(t)2 + (1 − k2) sin(t)2 dt

∫π

2

0

1√

cos(t)2 + k2 sin(t)2dt

0

20

Page 21: Der Salamin/Brent Algorithmus (AGM) - tu-ilmenau.de · 1 Wiederholung Bevor ich mit den eigentlichen Sto beginne, m oc hte ich einige (einfache) Tatsachen ub er das algebraische Mittel

Literatur

D. H. Bailey, D. H. Borwein, P. B. Borwein & S. Plouffe (1997). The Quest for Pi. The

Mathematical Intelligencer 19(1), 50–57. ISSN 0343-6993.

Lennart Berggren, Jonathan Borwein & Peter Borwein (editors) (1997). Pi: A Source

Book. Springer-Verlag, New York.

J. M. Borwein, P. B. Borwein & D. H. Bailey (1989). Ramanujan, Modular Equations, andApprox-imations to Pi or How to Compute One Billion Digits of Pi. The American Mathematical

Monthly 96(3), 201–219. URL http://www.cecm.sfu.ca/~pborwein/PISTUFF/Apistuff.html.

Jonathan M. Borwein & Peter B. Borwein (1987). Pi and the AGM. A study in analytic

number theory and computational complexity. Canadian Mathematical Society Series of Monographsand Advanced Texts. John Wiley and Sons. ISBN 0-471-83138-7, new edition: 0-471-31515-X.

Richard P. Brent (1976). Fast Multiple-Precision Evaluation of Elementary Functions. Journal

of the ACM 23(2), 242–251.

Winfried Bruns (2001?). Uber π und seine Berechnung URL http://www.mathematik.

uni-osnabrueck.de/staff/phpages/brunsw/PiBerechnung.pdf.

C. F. Gauss (1876). Carl Friedrich Gauss Werke, volume 3. Gottingen, 362-403.

A. M. Legendre (1811). Excercises de Calcul Integral, volume 1. Paris, 61.

Eugene Salamin (1976). Computation of π Using Arithmetic-Geometric Mean. Mathematics of

Computation 30(135), 565–570.

U. Storch & H. Wiebe (1996). Lehrbuch der Mathematik, Band 1: Analysis einer Veranderlichen,

2. Auflage. Spektrum.

Eric W. Weisstein (1999-2004). Elliptic Integral URL http://mathworld.wolfram.com/

EllipticIntegral.html.

21