Articulo de referencia

Fórmula Bailey-Borwein-Plouffe

La fórmula de Bailey-Borwein-Plouffe ( fórmula BBP ) es una fórmula para π . Fue descubierta en 1995 por Simon Plouffe y lleva el nombre de los autores del artículo en el que se...

La fórmula de Bailey-Borwein-Plouffe ( fórmula BBP ) es una fórmula para π . Fue descubierta en 1995 por Simon Plouffe y lleva el nombre de los autores del artículo en el que se publicó, David H. Bailey , Peter Borwein y Plouffe. [1] Antes de eso, Plouffe la había publicado en su propio sitio. [2] La fórmula es:

π = a = 0 [ 1 16 a ( 4 8 a + 1 2 8 a + 4 1 8 a + 5 1 8 a + 6 ) ] {\displaystyle \pi =\sum _{k=0}^{\infty }\left[{\frac {1}{16^{k}}}\left({\frac {4}{8k+1}}-{\frac {2}{8k+4}}-{\frac {1}{8k+5}}-{\frac {1}{8k+6}}\right)\right]}

La fórmula BBP da lugar a un algoritmo de spigot para calcular el n -ésimo dígito de base 16 (hexadecimal) de π (y, por tanto, también el 4n -ésimo dígito binario de π ) sin calcular los dígitos anteriores. Esto no calcula el n- ésimo dígito decimal de π (es decir, en base 10). [3] Pero otra fórmula descubierta por Plouffe en 2022 permite extraer el n- ésimo dígito de π en decimal. [4] BBP y algoritmos inspirados en BBP se han utilizado en proyectos como PiHex [5] para calcular muchos dígitos de π mediante computación distribuida. La existencia de esta fórmula fue una sorpresa. Se creía ampliamente que calcular el n- ésimo dígito de π es tan difícil como calcular los primeros n dígitos. [1]

Desde su descubrimiento, se han utilizado fórmulas de la forma general:

alfa = a = 0 [ 1 b a pag ( a ) q ( a ) ] {\displaystyle \alpha =\sum _{k=0}^{\infty }\left[{\frac {1}{b^{k}}}{\frac {p(k)}{q(k)}}\right]}

Se han descubierto para muchos otros números irracionales , donde y son polinomios con coeficientes enteros y es una base entera . Las fórmulas de esta forma se conocen como fórmulas de tipo BBP . [6] Dado un número , no se conoce ningún algoritmo sistemático para encontrar , , y ; dichas fórmulas se descubren experimentalmente . alfa {\estilo de visualización \alpha} pag ( a ) {\estilo de visualización p(k)} q ( a ) {\displaystyle q(k)} b 2 {\displaystyle b\geq 2} alfa {\estilo de visualización \alpha} pag ( a ) {\estilo de visualización p(k)} q ( a ) {\displaystyle q(k)} b {\estilo de visualización b}

Especializaciones

Una especialización de la fórmula general que ha producido muchos resultados es:

PAG ( s , b , metro , A ) = a = 0 [ 1 b a yo = 1 metro a yo ( metro a + yo ) s ] , {\displaystyle P(s,b,m,A)=\sum _{k=0}^{\infty }\left[{\frac {1}{b^{k}}}\sum _{j=1}^{m}{\frac {a_{j}}{(mk+j)^{s}}}\right],}

donde s , b y m son números enteros y es una secuencia de números enteros. La función P conduce a una notación compacta para algunas soluciones. Por ejemplo, la fórmula original de BBP: A = ( a 1 , a 2 , , a metro ) {\displaystyle A=(a_{1},a_{2},\puntos ,a_{m})}

π = a = 0 [ 1 16 a ( 4 8 a + 1 2 8 a + 4 1 8 a + 5 1 8 a + 6 ) ] {\displaystyle \pi =\sum _{k=0}^{\infty }\left[{\frac {1}{16^{k}}}\left({\frac {4}{8k+1}}-{\frac {2}{8k+4}}-{\frac {1}{8k+5}}-{\frac {1}{8k+6}}\right)\right]}

se puede escribir como:

π = PAG ( 1 , 16 , 8 , ( 4 , 0 , 0 , 2 , 1 , 1 , 0 , 0 ) ) . {\displaystyle \pi =P{\bigl (}1,16,8,(4,0,0,-2,-1,-1,0,0){\bigr )}.}

Fórmulas de tipo BBP conocidas anteriormente

Algunas de las fórmulas más simples de este tipo que eran bien conocidas antes de BBP y para las cuales la función P conduce a una notación compacta, son:

En 10 9 = 1 10 + 1 200 + 1 3   000 + 1 40 000 + 1 500 000 + = a = 1 1 10 a a = 1 10 a = 0 [ 1 10 a ( 1 a + 1 ) ] = 1 10 PAG ( 1 , 10 , 1 , ( 1 ) ) , {\displaystyle {\begin{aligned}\ln {\frac {10}{9}}&={\frac {1}{10}}+{\frac {1}{200}}+{\frac {1}{3\ 000}}+{\frac {1}{40\,000}}+{\frac {1}{500\,000}}+\cdots \\&=\sum _{k=1}^{\infty }{\frac {1}{10^{k}\cdot k}}={\frac {1}{10}}\sum _{k=0}^{\infty }\left[{\frac {1}{10^{k}}}\left({\frac {1}{k+1}}\right)\right]\\&={\frac {1}{10}}P{\bigl (}1,10,1,(1){\bigr )},\end{alineado}}}
En 2 = 1 2 + 1 2 2 2 + 1 3 2 3 + 1 4 2 4 + 1 5 2 5 + = a = 1 1 2 a a = 1 2 a = 0 [ 1 2 a ( 1 a + 1 ) ] = 1 2 PAG ( 1 , 2 , 1 , ( 1 ) ) . {\displaystyle {\begin{aligned}\ln 2&={\frac {1}{2}}+{\frac {1}{2\cdot 2^{2}}}+{\frac {1}{3\cdot 2^{3}}}+{\frac {1}{4\cdot 2^{4}}}+{\frac {1}{5\cdot 2^{5}}}+\cdots \\&=\sum _{k=1}^{\infty }{\frac {1}{2^{k}\cdot k}}={\frac {1}{2}}\sum _{k=0}^{\infty }\left[{\frac {1}{2^{k}}}\left({\frac {1}{k+1}}\right)\right]\\&={\frac {1}{2}}P{\bigl (}1,2,1,(1){\bigr )}.\end{aligned}}}

(De hecho, esta identidad es válida para a > 1:

ln a a 1 = k = 1 1 a k k {\displaystyle \ln {\frac {a}{a-1}}=\sum _{k=1}^{\infty }{\frac {1}{a^{k}\cdot k}}} .)

Plouffe también se inspiró en la serie de potencias arctan de la forma (la notación P también puede generalizarse al caso en que b no es un entero):

arctan 1 b = 1 b 1 b 3 3 + 1 b 5 5 1 b 7 7 + 1 b 9 9 + = k = 1 [ 1 b k sin k π 2 k ] = 1 b k = 0 [ 1 b 4 k ( 1 4 k + 1 + b 2 4 k + 3 ) ] = 1 b P ( 1 , b 4 , 4 , ( 1 , 0 , b 2 , 0 ) ) . {\displaystyle {\begin{aligned}\arctan {\frac {1}{b}}&={\frac {1}{b}}-{\frac {1}{b^{3}3}}+{\frac {1}{b^{5}5}}-{\frac {1}{b^{7}7}}+{\frac {1}{b^{9}9}}+\cdots \\&=\sum _{k=1}^{\infty }\left[{\frac {1}{b^{k}}}{\frac {\sin {\frac {k\pi }{2}}}{k}}\right]={\frac {1}{b}}\sum _{k=0}^{\infty }\left[{\frac {1}{b^{4k}}}\left({\frac {1}{4k+1}}+{\frac {-b^{-2}}{4k+3}}\right)\right]\\&={\frac {1}{b}}P\left(1,b^{4},4,\left(1,0,-b^{-2},0\right)\right).\end{aligned}}}

La búsqueda de nuevas igualdades

Utilizando la función P mencionada anteriormente, la fórmula más simple conocida para π es para s  = 1, pero m  > 1. Muchas fórmulas ahora descubiertas son conocidas para b como un exponente de 2 o 3 y m como un exponente de 2 o algún otro valor rico en factores, pero donde varios de los términos de la secuencia A son cero. El descubrimiento de estas fórmulas implica una búsqueda por computadora para tales combinaciones lineales después de calcular las sumas individuales. El procedimiento de búsqueda consiste en elegir un rango de valores de parámetros para s , b y m , evaluar las sumas hasta muchos dígitos y luego usar un algoritmo de búsqueda de relaciones enteras (típicamente el algoritmo PSLQ de Helaman Ferguson ) para encontrar una secuencia A que sume esas sumas intermedias a una constante bien conocida o quizás a cero.

La fórmula BBP paraπ

La fórmula original de suma de π de BBP fue encontrada en 1995 por Plouffe utilizando PSLQ . También se puede representar utilizando la función P :

π = k = 0 [ 1 16 k ( 4 8 k + 1 2 8 k + 4 1 8 k + 5 1 8 k + 6 ) ] = P ( 1 , 16 , 8 , ( 4 , 0 , 0 , 2 , 1 , 1 , 0 , 0 ) ) , {\displaystyle {\begin{aligned}\pi &=\sum _{k=0}^{\infty }\left[{\frac {1}{16^{k}}}\left({\frac {4}{8k+1}}-{\frac {2}{8k+4}}-{\frac {1}{8k+5}}-{\frac {1}{8k+6}}\right)\right]\\&=P{\bigl (}1,16,8,(4,0,0,-2,-1,-1,0,0){\bigr )},\end{aligned}}}

lo que también se reduce a esta relación equivalente de dos polinomios:

π = k = 0 [ 1 16 k ( 120 k 2 + 151 k + 47 512 k 4 + 1024 k 3 + 712 k 2 + 194 k + 15 ) ] . {\displaystyle \pi =\sum _{k=0}^{\infty }\left[{\frac {1}{16^{k}}}\left({\frac {120k^{2}+151k+47}{512k^{4}+1024k^{3}+712k^{2}+194k+15}}\right)\right].}

Se ha demostrado mediante una prueba bastante simple que esta fórmula es igual a π . [7]

Algoritmo de extracción de dígitos BBP paraπ

Nos gustaría definir una fórmula que devuelva el dígito hexadecimal ( )-ésimo (con ) de π . Se requieren algunas manipulaciones para implementar un algoritmo de spigot utilizando esta fórmula. n + 1 {\displaystyle n+1} n 0 {\displaystyle n\geq 0}

Primero debemos reescribir la fórmula como:

π = 4 k = 0 1 ( 16 k ) ( 8 k + 1 ) 2 k = 0 1 ( 16 k ) ( 8 k + 4 ) k = 0 1 ( 16 k ) ( 8 k + 5 ) k = 0 1 ( 16 k ) ( 8 k + 6 ) . {\displaystyle \pi =4\sum _{k=0}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+1)}}-2\sum _{k=0}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+4)}}-\sum _{k=0}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+5)}}-\sum _{k=0}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+6)}}.}

Ahora, para un valor particular de n y tomando la primera suma, dividimos la suma hasta el infinito entre el término n :

k = 0 1 ( 16 k ) ( 8 k + 1 ) = k = 0 n 1 ( 16 k ) ( 8 k + 1 ) + k = n + 1 1 ( 16 k ) ( 8 k + 1 ) . {\displaystyle \sum _{k=0}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+1)}}=\sum _{k=0}^{n}{\frac {1}{\left(16^{k}\right)(8k+1)}}+\sum _{k=n+1}^{\infty }{\frac {1}{\left(16^{k}\right)(8k+1)}}.}

Ahora multiplicamos por 16 n , de modo que el punto hexadecimal (la división entre las partes fraccionarias y enteras del número) se desplaza (o permanece, si n = 0 ) a la izquierda del (n+1) -ésimo dígito fraccionario:

k = 0 16 n k 8 k + 1 = k = 0 n 16 n k 8 k + 1 + k = n + 1 16 n k 8 k + 1 . {\displaystyle \sum _{k=0}^{\infty }{\frac {16^{n-k}}{8k+1}}=\sum _{k=0}^{n}{\frac {16^{n-k}}{8k+1}}+\sum _{k=n+1}^{\infty }{\frac {16^{n-k}}{8k+1}}.}

Como solo nos interesa la parte fraccionaria de la suma, observamos nuestros dos términos y nos damos cuenta de que solo la primera suma contiene términos con una parte entera; por el contrario, la segunda suma no contiene términos con una parte entera, ya que el numerador nunca puede ser mayor que el denominador para k  >  n . Por lo tanto, necesitamos un truco para eliminar las partes enteras, que no necesitamos, de los términos de la primera suma, para acelerar y aumentar la precisión de los cálculos. Ese truco es reducir módulo 8 k  + 1. Nuestra primera suma (de cuatro) para calcular la parte fraccionaria se convierte entonces en:

k = 0 n 16 n k mod ( 8 k + 1 ) 8 k + 1 + k = n + 1 16 n k 8 k + 1 . {\displaystyle \sum _{k=0}^{n}{\frac {16^{n-k}{\bmod {(}}8k+1)}{8k+1}}+\sum _{k=n+1}^{\infty }{\frac {16^{n-k}}{8k+1}}.}

Observe cómo el operador módulo siempre garantiza que solo se conservarán las partes fraccionarias de los términos de la primera suma. Para calcular 16 nk  mod (8 k  + 1) de forma rápida y eficiente, el algoritmo de exponenciación modular se realiza en el mismo nivel de bucle, no anidado . Cuando su producto acumulado 16 x se vuelve mayor que uno, se toma el módulo, al igual que para el total acumulado en cada suma.

Ahora, para completar el cálculo, se debe aplicar esto a cada una de las cuatro sumas por turno. Una vez hecho esto, las cuatro sumas se vuelven a colocar en la suma de π :

4 Σ 1 2 Σ 2 Σ 3 Σ 4 . {\displaystyle 4\Sigma _{1}-2\Sigma _{2}-\Sigma _{3}-\Sigma _{4}.}

Dado que solo la parte fraccionaria es precisa, para extraer el dígito deseado es necesario eliminar la parte entera de la suma final, multiplicarla por 16 y conservar la parte entera para "quitar" el dígito hexadecimal en la posición deseada (en teoría, los siguientes dígitos hasta la precisión de los cálculos utilizados también serían precisos).

Este proceso es similar a realizar una multiplicación larga , pero solo hay que realizar la suma de algunas columnas del medio. Si bien hay algunos acarreos que no se cuentan, las computadoras generalmente realizan cálculos aritméticos para muchos bits (32 o 64) y redondean, y solo nos interesan los dígitos más significativos. Existe la posibilidad de que un cálculo en particular sea similar a no sumar un número pequeño (por ejemplo, 1) al número 999999999999999, y que el error se propague al dígito más significativo.

BBP comparado con otros métodos de cálculoπ

Este algoritmo calcula π sin necesidad de tipos de datos personalizados que tengan miles o incluso millones de dígitos. El método calcula el dígito n- ésimo sin calcular los primeros n  − 1 dígitos y puede utilizar tipos de datos pequeños y eficientes. Fabrice Bellard encontró una variante de BBP, la fórmula de Bellard , que es más rápida.

Aunque la fórmula BBP puede calcular directamente el valor de cualquier dígito dado de π con menos esfuerzo computacional que las fórmulas que deben calcular todos los dígitos intermedios, BBP sigue siendo linealítmica ( ), por lo que valores sucesivamente mayores de n requieren cada vez más tiempo para calcularse; es decir, cuanto "más alejado" está un dígito, más tiempo le toma a BBP calcularlo, al igual que los algoritmos estándar de cálculo de π . [8] O ( n log n ) {\displaystyle O(n\log n)}

Generalizaciones

DJ Broadhurst proporciona una generalización del algoritmo BBP que puede utilizarse para calcular una serie de otras constantes en tiempo casi lineal y espacio logarítmico. [9] Se dan resultados explícitos para la constante de Catalan , , , la constante de Apéry , , (donde es la función zeta de Riemann ), , , , y varios productos de potencias de y . Estos resultados se obtienen principalmente mediante el uso de escaleras de polilogaritmos . π 3 {\displaystyle \pi ^{3}} π 4 {\displaystyle \pi ^{4}} ζ ( 3 ) {\displaystyle \zeta (3)} ζ ( 5 ) {\displaystyle \zeta (5)} ζ ( x ) {\displaystyle \zeta (x)} log 3 2 {\displaystyle \log ^{3}2} log 4 2 {\displaystyle \log ^{4}2} log 5 2 {\displaystyle \log ^{5}2} π {\displaystyle \pi } log 2 {\displaystyle \log 2}

Véase también

Referencias

  1. ^ ab Bailey, David H.; Borwein, Peter B.; Plouffe, Simon (1997). "Sobre el cálculo rápido de varias constantes polilogarítmicas". Matemáticas de la computación . 66 (218): 903– 913. doi : 10.1090/S0025-5718-97-00856-9 . hdl : 2060/19970009337 . MR  1415794.
  2. ^ Sitio web de Plouffe.
  3. ^ Gourdon, Xavier (12 de febrero de 2003). «Cálculo del dígito N» (PDF) . Consultado el 4 de noviembre de 2020 .
  4. ^ Plouffe, Simon (2022). "Una fórmula para el $n^{\rm th}$ dígito decimal o binario de $π$ y potencias de $π$". arXiv : 2201.12601 [math.NT].
  5. ^ "Créditos PiHex". Centro de Matemáticas Experimentales y Constructivas . Universidad Simon Fraser. 21 de marzo de 1999. Archivado desde el original el 10 de junio de 2017. Consultado el 30 de marzo de 2018 .
  6. ^ Weisstein, Eric W. "Fórmula BBP". MundoMatemático .
  7. ^ Bailey, David H.; Borwein, Jonathan M.; Borwein, Peter B.; Plouffe, Simon (1997). "La búsqueda de pi". Mathematical Intelligencer . 19 (1): 50– 57. doi :10.1007/BF03024340. MR  1439159. S2CID  14318695.
  8. ^ Bailey, David H. (8 de septiembre de 2006). "El algoritmo BBP para Pi" (PDF) . Consultado el 17 de enero de 2013 . Los tiempos de ejecución del algoritmo BBP ... aumentan aproximadamente de forma lineal con la posición d .
  9. ^ DJ Broadhurst, "Escaleras polilogarítmicas, series hipergeométricas y los diezmillonésimos dígitos de ζ(3) y ζ(5)", (1998) arXiv math.CA/9803067

Lectura adicional

  • DJ Broadhurst, "Escaleras polilogarítmicas, series hipergeométricas y los diezmillonésimos dígitos de ζ(3) y ζ(5)", (1998) arXiv math.CA/9803067
  • Richard J. Lipton , "Hacer de un algoritmo un algoritmo — BBP", publicación de blog, 14 de julio de 2010.
  • Richard J. Lipton , "La clase de Cook contiene Pi", publicación del blog, 15 de marzo de 2009.
  • Bailey, David H. "Un compendio de fórmulas de tipo BBP para constantes matemáticas, actualizado el 15 de agosto de 2017" (PDF) . Consultado el 31 de marzo de 2019 .
  • David H. Bailey , "BBP Code Directory", página web con enlaces al código de Bailey que implementa el algoritmo BBP, 8 de septiembre de 2006.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Bailey–Borwein–Plouffe_formula&oldid=1252343049"