El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI

Hoy, día 14 de marzo, es el día de Pi (por la forma de expresar las fechas en Estados Unidos: 3-14), y vamos a celebrarlo presentando uno de los algoritmos más útiles de la actualidad para calcular decimales de Pi: el algoritmo de Chudnovsky.

A lo largo de la historia han sido muchas las formas utilizadas por el ser humano para calcular aproximaciones cada vez más exactas de este número Pi, cociente entre la longitud de una circunferencia cualquiera y el diámetro de la misma: se han usado las áreas de polígonos inscritos y circunscritos a una circunferencia, se han encontrado interesantes aproximaciones numéricas con algunas fracciones sencillas, se han desarrollado series infinitas y productos infinitos de todas las formas que uno pueda imaginar…Vamos, de todo. Pero de entre todos estos métodos hay varios que destacan sobre el resto, y uno de los que más lo hacen es el denominado algoritmo de Chudnovsky.

El algoritmo de Chudnovsky es un algoritmo creado por David Volfovich Chudnovsky y Gregory Volfovich Chudnovsky, hermanos y matemáticos ucranianos nacionalizados estadounidenses, mediante el cual podemos obtener muy buenas aproximaciones del número Pi. Se basa en la siguiente expresión relacionada con el número Pi que encontró Ramanujan:

\cfrac{1}{\pi} = \cfrac{2\sqrt{2}}{9801} \; \displaystyle{\sum^\infty_{k=0} \cfrac{(4k)!(1103+26390k)}{(k!)^4 396^{4k}}}

La expresión del algoritmo de Chudnovsky es la siguiente:

 \cfrac{1}{\pi} = 12 \; \displaystyle{\sum^\infty_{k=0} \cfrac{(-1)^k (6k)! (13591409 + 545140134k)}{(3k)!(k!)^3 640320^{3k + 3/2}}}

y con ella obtenemos 14 decimales exactos más de Pi con cada término de la misma. ¿Qué significa esto? Muy sencillo. Vamos a partir del valor de Pi hasta su decimal número 50:

3.14159265358979323846264338327950288419716939937511

Si calculamos el primer término de esa suma, el correspondiente a k=0, la aproximación de Pi obtenida será 1 dividido entre ese resultado, que nos da lo siguiente:

\mathbf{3.1415926535897} 3420766845359157829834076223326091571

En negrita resalto la parte de ese resultado que coincide con el valor de Pi. Calculemos ahora los dos primeros términos. La aproximación de Pi ahora será 1 dividido entre la suma de los mismos. Obtenemos esto:

3.1415926535897 \mathbf{93238462643383} 58735068847586634599637

Como veis, los decimales que ya eran exactos con el primer término se mantienen con este segundo término, y añadimos 14 más (son los resaltados en negrita). Por hacer otro más, veamos que la tendencia continúa con el término siguiente. Al calcular 1 dividido entre la suma de los tres primeros términos obtenemos la siguiente aproximación de Pi:

3.141592653589793238462643383 \mathbf{27950288419716} 767885485

Los anteriores se mantienen y se añaden 14 nuevos decimales exactos. Y así sucesivamente.

Es una barbaridad obtener 14 decimales exactos más con cada término, ya que con muy poquitos términos obtenemos una aproximación escandalosamente cercana al valor real. Por eso este algoritmo es tan bueno, y por eso ha servido para obtener varios récords mundiales de cálculo de decimales del número Pi (por ejemplo, para éste de 5 billones de agosto de 2010 y para éste de 10 billones de octubre de 2011). Por eso es uno de los más utilizados en la actualidad para el cálculo de buenas (más bien buenísimas) aproximaciones de esta constante que tanto nos gusta.


Por cierto, para obtener los resultados que aparecen en esta entrada he utilizado Mathematica de la siguiente forma:

  • Definimos mediante una función el término general de la serie:

    a[k_]:=(12 (-1)^k (6 k)! (13591409+545140134 k))/((3 k)! (k!)^3 640320^(3 k+3/2))

  • Ahora, para calcular cada término utilizo el comando Sum. Por ejemplo, para calcular el primero uso

    Sum[a[k],{k,0,0}]

    pero como lo que quiero es calcular la aproximación de Pi que corresponde con este término hago lo siguiente (como quería 50 decimales le pongo un 51, 51 cifras significativas):

    N[1/Sum[a[k],{k,0,0}],51]

  • Para ampliar el número de términos simplemente cambiamos el segundo cero de {k,0,0}. Por ejemplo, para calcular la aproximación con los dos primeros términos

    N[1/Sum[a[k],{k,0,1}],51]

    y para los tres primeros

    N[1/Sum[a[k],{k,0,2}],51]

Si se os ocurre alguna otra manera de realizar estos cálculos con Mathematica os agradecería que nos lo comentarais.

Por cierto, una última curiosidad. Con

N[Pi,51]

Mathematica nos muestra una aproximación del número Pi con 50 decimales. Evidentemente, podemos aumentar el número de decimales para conseguir aproximaciones cada vez más exactas. ¿A que no sabéis que algoritmo utiliza el propio Mathematica para obtener dichas aproximaciones? Efectivamente, el algoritmo de Chudnovsky.


Imagen tomada de aquí, donde podéis encontrar mucha información sobre el cálculo del número Pi.

Autor: ^DiAmOnD^

Miguel Ángel Morales Medina. Licenciado en Matemáticas y autor de Gaussianos y de El Aleph. Puedes seguirme en Twitter o indicar que te gusta mi página de Facebook.

7 Comentarios

  1. “¿A que no sabéis que algoritmo utiliza el propio Mathematica para obtener dichas aproximaciones? Efectivamente, el algoritmo de Chudnovsky”
    Entonces… ¿en la entrada estás comparando el algoritmo de Chudnovsky contra el algoritmo de Chudnovsky? ¿Y coinciden??
    Bromas aparte, es curioso que en la suma de la serie los decimales anteriores se mantengan invariados

    Publica una respuesta
    • No es curioso. Si la serie es convergente los primeros decimales de cada término son ceros por eso dejan idéntica la sumatoria en cada término.

      Publica una respuesta
  2. y NO se puede mejorar ?? es decir mejorar los estimados de CHUDNOSKY o RAMANUJAN usando otras tecnicas de manera que puedas encontrar series y series y series sobre  \frac{1}{\pi} que ocnvergan cada vez mas rapido ?? 😀

    Publica una respuesta
  3. Jose javier:

    La fórmula de este post es un caso particular de las llamadas series de tipo Ramanujan. Estoy desde un móvil y es un engorro escribir LaTeX aquí, pero solo comento que estas series dependen de un parámetro, y los propios hermanos Chudnovsky probaron que cuando el valor del parámetro es “t = -e^(-pi*sqrt(163))” se obtiene la velocidad de convergencia más rápida, y produce la serie de más arriba.

    Por lo que si se quieren buscar mejores series habrá que ir por otro camino 😉

    Publica una respuesta
  4. Y si usamos el número Tau (=6,28…) en vez de Pi, ¿el algoritmo de Chudnovsky no se hace más elegante? Pues, si no me equivoco, en vez del 12 veríamos un 6. ¿Qué significan los términos “elegancia” y “belleza” para los matemáticos?

    Publica una respuesta
  5. al infinito llegareis , pero un radio si apotema no conseguireis .

    Publica una respuesta
  6. en la casio fx-570 con solo el termino k=0 te pone en la pantalla directamente el simbolo de PI, sorprendente!!! muy bueno gracias por compartir.

    Publica una respuesta

Trackbacks/Pingbacks

  1. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Hoy, día 14 de marzo, es el día de Pi (por la forma de…
  2. El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI.- | Matemáticas.- | Scoop.it - [...] Hoy, día 14 de marzo, es el día de Pi (por la forma de expresar las fechas en Estados…
  3. El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI - [...] El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI [...]
  4. No es seguro que todo el universo esté contenido en Pi, pero sí en otros números | Cifras y Teclas - […] puede interesarte leer El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI, en…
  5. Cómo usar el baile de la yenka para estudiar el número Pi | Cifras y Teclas - […] respecto, puede interesarte leer El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI, en…
  6. El primer producto infinito con Pi como protagonista | Gaussianos - […] El algoritmo de Chudnovsky, o cómo se calculan los decimales de Pi en el siglo XXI […]

Puedes utilizar código LaTeX para insertar fórmulas en los comentarios. Sólo tienes que escribir
[latex]código-latex-que-quieras-insertar[/latex]
o
$latex código-latex-que-quieras-insertar$.

Si tienes alguna duda sobre cómo escribir algún símbolo puede ayudarte la Wikipedia.

Y si los símbolos < y > te dan problemas al escribir en LaTeX te recomiendo que uses los códigos html & lt; y & gt; (sin los espacios) respectivamente.

Envía un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *