Física con Excel: calculemos el número pi

Pi en una pizarra
Te vas a quedar sin tiza, chaval

¡Bueno! Pues sí que llevo tiempo sin trabajar esta sección “Física con Excel”. Ya iba tocando ¿no creéis? En esta ocasión voy a meter los pies en el campo de las matemáticas para calcular el número pi.

¿Por qué el número pi? Pues yo diría igual que esos que escalan un montañón enorme: porque está ahí. Pi, la famosa relación entre la circunferencia y el diámetro, ha fascinado a los matemáticos desde siempre. Personalmente una de las cosas que más me alucina es que podemos calcularlo mediante series, es decir, haciendo una suma infinita del tipo Pi= A1+A2+A3…. Cuantos más términos usemos más nos aproximaremos al valor auténtico. Es así como se calcula pi con millones de cifras decimales, porque eso de medir circunferencias y diámetros no nos da tanta precisión. ¡Ni de lejos!

Un motivo adicional para presentaros series relacionadas con pi es que, en mi trabajo profesional, suelo calcular series infinitas para obtener funciones más o menos raras. Por supuesto, nadie puede sumar una serie infinita, de modo que el truco es sumar hasta un valor, digamos n, de modo que A1+A2+A3…+An se acerque lo más rápidamente posible al valor que obtendríamos de hacer la suma infinita. Eso implica que los términos An tiendan a cero con rapidez, y que no cometamos errores al calcularlos (que también puede ocurrir cuando n es grande).

Existen diversas series que nos permiten calcular pi. Vamos aquí a ver unas cuantas. La primera es la más sencillota, y nos servirá para empezar:

Leibniz:        En este caso he desarrollado la sumatoria para que se vea algo mejor. Si hacemos π=4*(A1+A2+A3+A4+…), tendríamos que A1=1, A2=-1/3, A3=1/5, A4=-1/7 y así sucesivamente. Como veis, es algo muy fácil para configurar en una hoja de cálculo. En la columna A (como de costumbre, os dejaré la hoja de cálculo al final del post), introducimos los valores de n (0,1,2…). En la siguiente columna, B, los respectivos valores de An. Le he añadido un truco del almendruco para que podamos escoger el valor máximo de n que vamos a calcular. Ese valor está en la celda B3 y le he puesto un valor máximo de 100.

El problema con esta serie es que converge lentamente; eso quiere decir que necesitamos sumar muchos valores de la serie. Si hacemos la serie anterior desde n=0 hasta n=100 obtenemos un valor de pi igual a 3,151249…, que no es mucho, ya que pi es igual a 3,141592… Cien sumandos para que no obtengamos más que una cifra decimal correcta no es para tirar cohetes precisamente.

¿Podemos hacerlo mejor? Vamos a ver. Tengo aquí otras series que nos dan el número pi:

Euler-1:     

Euler-2:     

Lo siento, pero no puedo seguir sin decir de dónde salen estas series. La de Leibniz es una aproximación de la función arcotangente(x) para x=1 (enlace), y como esa función es trigonométrica tiene cierto sentido que esté relacionada con el número pi. Las dos series de Euler están relacionadas con la llamada función zeta de Riemann (enlace, si os atrevéis); y aquí está más difícil ver una relación con funciones trigonométricas, de modo que este es el punto en que comienzo a flipar.

Euler-3:         Esto es un poquito más raro, en primer lugar porque es un producto en lugar de una suma; y en segundo porque los términos no están basando en todos los números naturales sino sólo en los impares (salvo el 1, y añadiendo el 2 para liar más la cosa).

Euler-4:        Esta expresión puede darnos problemas, porque, aunque el valor del sumando An tiende a cero (para n muy grandes), tanto su numerador como su denominador explotan: 100! (cien factorial) tiene más de 150 dígitos. Afortunadamente hay una forma más sencilla y fiable de calcularlo: mediante recurrencia. Basta con hacer A0=1 y luego calcular cualquier término n-ésimo en función del (n-1)-ésimo de este modo: A[n]=A[n-1]*n/(2n+1). Siempre que vayamos a tener problemas de esa clase, lo mejor es la relación de recurrencia.

Nilakantha:           

Bueno, ¿comprobamos si estas series funcionan para darnos siquiera un valor aproximado de pi? Los ponemos en la hoja de cálculo, sumamos y a ver. Estos son los datos para n=10, n=20 y n=100. Resaltaré en negrilla las cifras decimales correctas. Aquí lo tenéis:

n=10 n=20 n=100
Leibniz 3,23231580940559 3,18918478227760 3,15149340107099
Euler-1 3,04936163598207 3,09466952411370 3,13207653180911
Euler-2 3,14138462246697 3,14156460959141 3,14159241530737
Euler-3 3,15847510570793 3,17345747336497 3,18762945561742
Euler-4 3,14110602160138 3,14159229874034 3,14159265358979
Nilakantha 3,14140671849650 3,14156573465855 3,14159241097198

Como podéis ver, la elección del sistema de cálculo es crucial. Incluso con un centenar de términos, Leibniz, Euler-1 y Euler-3 se quedan en un ridículo decimal. En los otros casos, resulta interesante ver cómo aumenta la precisión conforme aumenta n. Tanto Euler-2 como Euler-4 y Nilakantha parecen dar aproximaciones similares para n=10, pero a n=20 vemos que Euler-4 le saca la delantera a los demás, y para n=100 cruza la meta como un campeón. Me recuerda a esas carreras que hacían en Top Gear, en las que un vehículo gana una drag race de un cuarto de milla pero al final pierde a distancias superiores.

En nuestro caso, Euler-4 es el claro ganador en tanto a precisión, y como dije antes podemos apañárnoslas para calcular los sumandos mediante una sencilla relación de recurrencia.

Pero no os entusiasméis aún porque tengo un as en la manga. Si Euler-4 es el Ferrari del grupo, hay un corredor que es un Bugatti Veyron a factor 9, con cristales de dilitio y velocidad absurda. Sí, amigos, me he dejado lo mejor para el final. El nombre de Srinivasa Ramanujan es legendario en el mundo de las matemáticas, y realmente os recomiendo que aprendáis algo de este hombre (por ejemplo aquí). Una de las muchas hazañas épicas que logró fue un conjunto de series para calcular el número pi. Una de las más famosas es esta:

Ramanujan:          

Lo único que puedo decir al respecto es: ¡que el diablo me lleve si tengo la menor idea de dónde sacó eso! Afortunadamente puedo compartir mi ignorancia con los grandes matemáticos, porque ya os digo que ese tío es de otra liga.

Como podéis ver, el sumando es bastante peligroso de calcular para n grandes, así que habría que plantearse hacer una relación de recurrencia, tal y como os dije en el caso de Euler-4. Afortunadamente esto no es necesario porque esta sucesión converge muy, pero que muy rápidamente. Fijaos cuánto vale pi cuando usamos distintos valores máximos de n:

n Pi (Ramanujan)
0 3,14159273001331
1 3,14159265358979

¡Sólo dos términos y ya tenemos quince cifras decimales! Eso ya nos lleva al límite de la precisión de una hoja Excel estándar. Para cada valor adicional de n la precisión aumenta en ocho cifras decimales más.

Es este tipo de series la que permite calcular millones de cifras decimales de pi; de usar series como las que hemos visto de Euler, Leibniz o Nilakantha, cada cifra decimal adicional requeriría sangre, sudor y lágrimas (o CPU, tiempo y memoria, para ser algo más correcto). Hay otras series similares de convergencia aún más rápida, pero os las dejo como ejercicio.

Y ahora, a nuestra hoja de cálculo, cuyo enlace encontraréis al final de este artículo. Las filas 9 y siguientes nos dan los valores de cada sumando para las series que he comentado antes: Leibniz, Euler (1 a 4), Nilakantha y Ramanujan, y en la fila 7 tenéis el valor de la suma. También tenéis esas sumas en las celdas J4 a J10, donde se comparan con el valor real y se ven las diferencias.

En la celda B4 está el número de sumandos que consideramos, ya que como habéis visto todas las series son infinitas. Podéis cambia el valor de B4 para comprobar lo rápido que convergen esas sumatorias, hasta un máximo de 100. ¿Cómo, que queréis más? Pues nada, bajaos hasta la última fila, haced un copiapega, y luego modificar las celdas B7 a G7 para calcular bien la suma. Excepción: la serie de Ramanujan solamente tiene diez términos. Son ganas, ya que, como podéis comprobar, con dos términos ya estamos casi al límite de precisión; aun así, he incluido diez para que veáis lo brutalmente rápido que converge.

También tenemos el número pi en la hoja de cálculo: PI(). Así es muy fácil ¿pero a que no es tan divertido?

[Hoja de cálculo disponible: PI]

Deja una respuesta

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

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.