Bailey–Borwein–Plouffe-formula

Innen: testwiki
A lap korábbi változatát látod, amilyen imported>InternetArchiveBot 2023. szeptember 21., 18:46-kor történt szerkesztése után volt. (Linkek hozzáadása 2 könyvforráshoz az ellenőrizhetőségért (20230921sim)) #IABot (v2.0.9.5) (GreenC bot)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)
Ugrás a navigációhoz Ugrás a kereséshez

A Bailey–Borwein–Plouffe-formula (BBP-formula) π értékét számító algoritmus. 1995-ben fedezte fel Simon Plouffe, és a cikk szerzőiről, David H. Baileyről, Peter Borweinról és Plouffe-ról kapta nevét.[1] Korábban Plouffe saját oldalán is közölte.[2] A képlet:

π=k=0[116k(48k+128k+418k+518k+6)]

A képlet a π n. számjegyét adja meg hexadecimális számrendszerben.[3] Egy másik képlet, melyet Plouffe 2022-ben fedezett fel, lehetővé teszi a π n. számjegyének számítását decimális számrendszerben.[4] A BBP-t és az általa ihletett algoritmusokat használja például a PiHex[5] a π számjegyei számítására elosztott számítással. E képlet léte meglepő volt – korábban úgy tűnt, hogy a π n. számjegyének számítása az első n számjegy számításával azonos nehézségű.[1]

Felfedezése óta általános

α=k=0[1bkp(k)q(k)]

alakú képleteket fedeztek fel sok más irracionális α-ra, ahol p(k) és q(k) egész együtthatós polinomok, b2 a számrendszer alapja. Ezek BBP-típusú formulák.[6] Nincs ismert rendszeres algoritmus a megfelelő p(k), q(k) és b megtalálására, ezek kísérletileg fedezhetők fel.

Specializációk

A sok eredményt adó általános képlet egy specializációja:

P(s,b,m,A)=k=0[1bkj=1maj(mk+j)s],

ahol s, b és m egészek, A=(a1,a2,,am) egészszám-sorozat. A P függvény egyes megoldásokra kompakt jelölést ad. Például az eredeti BBP képlet:

π=k=0[116k(48k+128k+418k+518k+6)]

felírható az alábbi alakban:

π=P(1,16,8,(4,0,0,2,1,1)).

Korábban ismert BBP-szerű formulák

Néhány egyszerű ilyen képlet, mely a BBP előtt ismert volt, és ahol a P függvény jelölése egyszerű:

ln109=110+1200+13 000+140000+1500000+=k=1110kk=110k=0[110k(1k+1)]=110P(1,10,1,(1)),
ln2=12+1222+1323+1424+1525+=k=112kk=12k=0[12k(1k+1)]=12P(1,2,1,(1)).

Általában az alábbi azonosság igaz a>1-re:

lnaa1=k=11kak

Plouffe-ot ihlette az árkusz tangens végtelen sora, melynek képlete (a P jelölés általánosítható nem egész b-re is):

arctan1b=1b1b33+1b551b77+1b99+=k=1[1bksinkπ2k]=1bk=0[1b4k(14k+1+b24k+3)]=1bP(1,b4,4,(1,0,b2,0)).

Új egyenlőségek keresése

A fenti P függvény használatával a legegyszerűbb képlet π-re s=1;m>1 esetén adódik. Számos képlet ismert egyes sok osztóval rendelkező b-re és m-re, ahol az A sorozat számos tagja 0. E formulák felfedezése ilyen lineáris kombinációk számítógépes keresését igényli az egyes összegek számítása után. A keresési folyamat s, b és m tartományainak kiválasztásából, az összeg hosszú kiértékeléséből, egészreláció-kereső algoritmust (általában Helaman Ferguson PSLQ-algoritmusát) használva A megtalálásából áll, melyeknél az összeg ismert állandó vagy 0.

A pi BBP-képlete

Az eredeti BBP π-összegző képletet 1995-ben fedezte fel Plouffe a PSLQ algoritmussal. A P függvénnyel is felírható:

π=k=0[116k(48k+128k+418k+518k+6)]=P(1,16,8,(4,0,0,2,1,1,0,0)),

Ez két polinom hasonló arányára egyszerűsödik:

π=k=0[116k(120k2+151k+47512k4+1024k3+712k2+194k+15)].

E képlet π-vel való egyenlőségének bizonyítása egyszerű volt.[7]

A π BBP számjegyszámító algoritmusa

Az n. hexadecimális számjegy képletéhez néhány változtatás szükséges. Először a képlet átírása az alábbi alakra:

π=4k=01(16k)(8k+1)2k=01(16k)(8k+4)k=01(16k)(8k+5)k=01(16k)(8k+6).

Adott n-re az első összeget számítva a végtelen összeget az n. tagnál elválasztva:

k=01(16k)(8k+1)=k=0n1(16k)(8k+1)+k=n+11(16k)(8k+1).

16n-nel szorozva, mely a szám egész és törtrészét az n. helyre helyezi:

k=016nk8k+1=k=0n16nk8k+1+k=n+116nk8k+1.

Mivel csak a törtrész a fontos, összehasonlítva a két tagot, látható, hogy csak az első összeg ad ki egészeket, vagyis a második összeg nem ad ki egészt, mivel a számláló k>n esetén nem lehet a nevezőnél nagyobb. Így az első összegből ki kell vonni az egészeket a 8k+1-es maradék számításával. Az első törtrész összege:

k=0n16nkmod(8k+1)8k+1+k=n+116nk8k+1.

Látható, hogy a maradékoperátor biztosítja, hogy csak a törtrész marad. 16nkmod(8k+1) számításához a moduláris hatványozás használható. Ha a szorzat 1-nél nagyobb, a modulus kivonása történik, hasonlóan az összegekhez. A számítás végén ez mind a 4 összegre elvégzendő, ezután a 4 összeg visszakerül a π-hez tartozó összegbe:

4Σ12Σ2Σ3Σ4.

Mivel csak a törtrész pontos, a szükséges számjegy számítása az egész rész eltávolítását és a 16-tal való szorzást igényli (elvben a számítási pontosságig terjedő számjegyek is pontosak).

E folyamat hasonló a szorzáshoz, de csak néhány középső oszlop adandó össze. Bár vannak nem számított átvitelek, általában a számítógépek sok (32 vagy 64) biten végeznek számításokat, majd kerekítenek, és csak a legértékesebb számjegyek a fontosak. Lehetséges azonban, hogy egy adott számítás hasonló lehet egy kis szám (például az 1) Sablon:Adat-hez való hozzáadásakori hibával, amely hiba a legértékesebb számjegyekig végigmegy.

A BBP és más π-számító módszerek összehasonlítása

Ez az algoritmus a π-t speciális, több ezer vagy millió számjegyes adattípusok nélkül számítja, az n. számjegyet az azt megelőző n1 nélkül számítja, és kis, hatékony adattípusokat használ.

Bár a BBP-formula tetszőleges számjegyet kisebb erőforrásigénnyel számít az összes köztes számjegyet számító képleteknél, a BBP linearitmikus (O(nlogn)) marad: minél nagyobb n, vagyis minél későbbi a számítandó számjegy, annál több idő kell a számításhoz, hasonlóan a hagyományos π-számító algoritmusokhoz.[8]

Általánosítás

D. J. Broadhurst a BBP algoritmust más konstansok számítására általánosítja nagyjából lineáris idő- és logaritmikus helyigénnyel.[9] Eredményeket ad meg a Catalan-állandóra, a π3-ra, a π4, az Apéry-állandóra (ζ(3)), ζ(5)-re (ahol ζ(x) a Riemann-féle zéta-függvény), ln32-re, ln42-re, ln52-re és π és ln2 különböző hatványainak szorzataira. Ezeket elsősorban polilogaritmus-létrák használatával éri el.

Jegyzetek

Sablon:Jegyzetek

Fordítás

Sablon:Fordítás

Források