Algoritmus Borweins - Borweins algorithm - Wikipedia
v matematika , Borweinův algoritmus je algoritmus vymyslel Jonathan a Peter Borwein vypočítat hodnotu 1 /π . Vymysleli několik dalších algoritmů. Vydali knihu Pi a AGM - studie analytické teorie čísel a výpočetní složitosti .[1]
Série Ramanujan – Sato Tyto dva příklady jsou příklady a Série Ramanujan – Sato . Související Chudnovského algoritmus používá diskriminační s třídou číslo 1.
Třída číslo 2 (1989) Začněte nastavením[Citace je zapotřebí ]
A = 212175710912 61 + 1657145277365 B = 13773980892672 61 + 107578229802750 C = ( 5280 ( 236674 + 30303 61 ) ) 3 { displaystyle { begin {aligned} A & = 212175710912 { sqrt {61}} + 1657145277365 B & = 13773980892672 { sqrt {61}} + 107578229802750 C & = { big (} 5280 (236674 + 30303 { sqrt {61}}) { big)} ^ {3} end {zarovnáno}}} Pak
1 / π = 12 ∑ n = 0 ∞ ( − 1 ) n ( 6 n ) ! ( A + n B ) ( n ! ) 3 ( 3 n ) ! C n + 1 / 2 { displaystyle 1 / pi = 12 součet _ {n = 0} ^ { infty} { frac {(-1) ^ {n} (6n)! , (A + nB)} {{n! ) ^ {3} (3n)! , C ^ {n + 1/2}}} , !} Každý další člen částečného součtu poskytuje přibližně 25 číslic.
Třída číslo 4 (1993) Začněte nastavením[Citace je zapotřebí ]
A = 63365028312971999585426220 + 28337702140800842046825600 5 + 384 5 ( 10891728551171178200467436212395209160385656017 + 4870929086578810225077338534541688721351255040 5 ) 1 / 2 B = 7849910453496627210289749000 + 3510586678260932028965606400 5 + 2515968 3110 ( 6260208323789001636993322654444020882161 + 2799650273060444296577206890718825190235 5 ) 1 / 2 C = − 214772995063512240 − 96049403338648032 5 − 1296 5 ( 10985234579463550323713318473 + 4912746253692362754607395912 5 ) 1 / 2 { displaystyle { begin {Zarovnáno} A = {} & 63365028312971999585426220 & {} + 28337702140800842046825600 { sqrt {5}} & {} + 384 { sqrt {5}} (10891728551171178200467436212395209160385655459160385 4870929086578810225077338534541688721351255040 { sqrt {5}}) ^ {1/2} B = {} & 7849910453496627210289749000 & {} + 3510586678260932028965606400 { sqrt {5}} & {} + 2515 {31} (6260208323789001636993322654444020882161 & {} + 2799650273060444296577206890718825190235 { sqrt {5}}) ^ {1/2} C = {} & - 214772995063512240 & {} - 96049403338648032 } -1296 { sqrt {5}} (10985234579463550323713318473 & {} + 4912746253692362754607395912 { sqrt {5}}) ^ {1/2} end {zarovnáno}}} Pak
− C 3 π = ∑ n = 0 ∞ ( 6 n ) ! ( 3 n ) ! ( n ! ) 3 A + n B C 3 n { displaystyle { frac { sqrt {-C ^ {3}}} { pi}} = součet _ {n = 0} ^ { infty} {{ frac {(6n)!} {(3n )! (n!) ^ {3}}} { frac {A + nB} {C ^ {3n}}}}} Každý další člen série dává přibližně 50 číslic.
Iterativní algoritmy Kvadratická konvergence (1984) Začněte nastavením[2]
A 0 = 2 b 0 = 0 p 0 = 2 + 2 { displaystyle { begin {aligned} a_ {0} & = { sqrt {2}} b_ {0} & = 0 p_ {0} & = 2 + { sqrt {2}} end {zarovnaný}}} Pak opakujte
A n + 1 = A n + 1 / A n 2 b n + 1 = ( 1 + b n ) A n A n + b n p n + 1 = ( 1 + A n + 1 ) p n b n + 1 1 + b n + 1 { displaystyle { begin {aligned} a_ {n + 1} & = { frac {{ sqrt {a_ {n}}} + 1 / { sqrt {a_ {n}}}} {2}} b_ {n + 1} & = { frac {(1 + b_ {n}) { sqrt {a_ {n}}}} {a_ {n} + b_ {n}}} p_ {n + 1} & = { frac {(1 + a_ {n + 1}) , p_ {n} b_ {n + 1}} {1 + b_ {n + 1}}} end {zarovnáno}}} Pak p k kvadraticky konverguje k π ; to znamená, že každá iterace přibližně zdvojnásobí počet správných číslic. Algoritmus je ne samoopravující; každá iterace musí být provedena s požadovaným počtem správných číslic pro π konečný výsledek.
Kubická konvergence (1991) Začněte nastavením
A 0 = 1 3 s 0 = 3 − 1 2 { displaystyle { begin {aligned} a_ {0} & = { frac {1} {3}} s_ {0} & = { frac {{ sqrt {3}} - 1} {2} } end {zarovnáno}}} Pak opakujte
r k + 1 = 3 1 + 2 ( 1 − s k 3 ) 1 / 3 s k + 1 = r k + 1 − 1 2 A k + 1 = r k + 1 2 A k − 3 k ( r k + 1 2 − 1 ) { displaystyle { begin {aligned} r_ {k + 1} & = { frac {3} {1 + 2 (1-s_ {k} ^ {3}) ^ {1/3}}} s_ {k + 1} & = { frac {r_ {k + 1} -1} {2}} a_ {k + 1} & = r_ {k + 1} ^ {2} a_ {k} -3 ^ {k} (r_ {k + 1} ^ {2} -1) end {zarovnáno}}} Pak Ak konverguje kubicky na 1 /π ; to znamená, že každá iterace přibližně ztrojnásobuje počet správných číslic.
Kvartová konvergence (1985) Začněte nastavením[3]
A 0 = 2 ( 2 − 1 ) 2 y 0 = 2 − 1 { displaystyle { begin {aligned} a_ {0} & = 2 { big (} { sqrt {2}} - 1 { big)} ^ {2} y_ {0} & = { sqrt {2}} - 1 end {zarovnáno}}} Pak opakujte
y k + 1 = 1 − ( 1 − y k 4 ) 1 / 4 1 + ( 1 − y k 4 ) 1 / 4 A k + 1 = A k ( 1 + y k + 1 ) 4 − 2 2 k + 3 y k + 1 ( 1 + y k + 1 + y k + 1 2 ) { displaystyle { begin {aligned} y_ {k + 1} & = { frac {1- (1-y_ {k} ^ {4}) ^ {1/4}} {1+ (1-y_ { k} ^ {4}) ^ {1/4}}} a_ {k + 1} & = a_ {k} (1 + y_ {k + 1}) ^ {4} -2 ^ {2k + 3 } y_ {k + 1} (1 + y_ {k + 1} + y_ {k + 1} ^ {2}) end {zarovnáno}}} Pak A k konverguje kvartálně proti 1 /π ; to znamená, že každá iterace přibližně čtyřnásobí počet správných číslic. Algoritmus je ne samoopravující; každá iterace musí být provedena s požadovaným počtem správných číslic pro π konečný výsledek.
Jedna iterace tohoto algoritmu je ekvivalentní dvěma iteracím Gauss – Legendre_algoritmus Důkaz těchto algoritmů naleznete zde:[4]
Kvintická konvergence Začněte nastavením
A 0 = 1 2 s 0 = 5 ( 5 − 2 ) { displaystyle { begin {aligned} a_ {0} & = { frac {1} {2}} s_ {0} & = 5 ({ sqrt {5}} - 2) end {align} }} Pak opakujte
X n + 1 = 5 s n − 1 y n + 1 = ( X n + 1 − 1 ) 2 + 7 z n + 1 = ( 1 2 X n + 1 ( y n + 1 + y n + 1 2 − 4 X n + 1 3 ) ) 1 / 5 A n + 1 = s n 2 A n − 5 n ( s n 2 − 5 2 + s n ( s n 2 − 2 s n + 5 ) ) s n + 1 = 25 ( z n + 1 + X n + 1 / z n + 1 + 1 ) 2 s n { displaystyle { begin {aligned} x_ {n + 1} & = { frac {5} {s_ {n}}} - 1 y_ {n + 1} & = (x_ {n + 1} - 1) ^ {2} +7 z_ {n + 1} & = left ({ frac {1} {2}} x_ {n + 1} left (y_ {n + 1} + { sqrt {y_ {n + 1} ^ {2} -4x_ {n + 1} ^ {3}}} right) right) ^ {1/5} a_ {n + 1} & = s_ {n} ^ {2} a_ {n} -5 ^ {n} left ({ frac {s_ {n} ^ {2} -5} {2}} + { sqrt {s_ {n} (s_ {n} ^ {2} -2s_ {n} +5)}} vpravo) s_ {n + 1} & = { frac {25} {(z_ {n + 1} + x_ {n + 1} / z_ {n + 1} +1) ^ {2} s_ {n}}} end {zarovnáno}}} Pakk quintically konverguje na 1 /π (to znamená, že každá iterace přibližně pětinásobí počet správných číslic) a platí následující podmínka:
0 < A n − 1 π < 16 ⋅ 5 n ⋅ E − 5 n π { displaystyle 0 Nonická konvergence Začněte nastavením
A 0 = 1 3 r 0 = 3 − 1 2 s 0 = ( 1 − r 0 3 ) 1 / 3 { displaystyle { begin {aligned} a_ {0} & = { frac {1} {3}} r_ {0} & = { frac {{ sqrt {3}} - 1} {2} } s_ {0} & = (1-r_ {0} ^ {3}) ^ {1/3} end {zarovnáno}}} Pak opakujte
t n + 1 = 1 + 2 r n u n + 1 = ( 9 r n ( 1 + r n + r n 2 ) ) 1 / 3 proti n + 1 = t n + 1 2 + t n + 1 u n + 1 + u n + 1 2 w n + 1 = 27 ( 1 + s n + s n 2 ) proti n + 1 A n + 1 = w n + 1 A n + 3 2 n − 3 ( 1 − w n + 1 ) s n + 1 = ( 1 − r n ) 3 ( t n + 1 + 2 u n + 1 ) proti n + 1 r n + 1 = ( 1 − s n + 1 3 ) 1 / 3 { displaystyle { begin {aligned} t_ {n + 1} & = 1 + 2r_ {n} u_ {n + 1} & = (9r_ {n} (1 + r_ {n} + r_ {n} ^ {2})) ^ {1/3} v_ {n + 1} & = t_ {n + 1} ^ {2} + t_ {n + 1} u_ {n + 1} + u_ {n + 1} ^ {2} w_ {n + 1} & = { frac {27 (1 + s_ {n} + s_ {n} ^ {2})} {v_ {n + 1}}} a_ {n + 1} & = w_ {n + 1} a_ {n} + 3 ^ {2n-3} (1-w_ {n + 1}) s_ {n + 1} & = { frac { (1-r_ {n}) ^ {3}} {(t_ {n + 1} + 2u_ {n + 1}) v_ {n + 1}}} r_ {n + 1} & = (1 s_ {n + 1} ^ {3}) ^ {1/3} end {zarovnáno}}} Pak A k konverguje nonically na 1 /π ; to znamená, že každá iterace přibližně vynásobí počet správných číslic devíti.[5]
Viz také Reference ^ Jonathan M. Borwein, Peter B. Borwein, Pi a AGM - studie analytické teorie čísel a výpočetní složitosti , Wiley, New York, 1987. Mnoho z jejich výsledků je k dispozici v: Jorg Arndt, Christoph Haenel, Pi Unleashed, Springer, Berlin, 2001, ISBN 3-540-66572-2 ^ Arndt, Jörg; Haenel, Christoph (1998). π Uvolněno . Springer-Verlag. str. 236. ISBN 3-540-66572-2 . ^ Mak, Ronald (2003). Průvodce programátory Java k numerickým výpočtům . Pearson vzdělávací. str. 353. ISBN 0-13-046041-9 . ^ Milla, Lorenz (2019), Snadný důkaz tří rekurzivních π-algoritmů , arXiv :1907.04110 ^ Henrik Vestermark (4. listopadu 2016). „Praktická implementace π algoritmů“ (PDF) . Citováno 29. listopadu 2020 . externí odkazy