Volver

Ploteando los decimales de Pi

Sin aparente razón o propósito mayor, se me ocurrió "plotear" (hacer un gráfico de) algunos decimales de pi.

¿Cómo obtener los decimales de pi en perl?

En general, no hice mucha matemática aplicada ni magia para obtenerlos: usé la función pi de la librería bignum, hice trampa...

Es más o menos así:

perl -Mbignum -E 'say bignum::bpi(500)'

Lo que está arriba es un poco la génesis de todo, obtener X decimales de pi con un comando.

Abajo están los que usé. Incluye el 3 inicial y redondeado a 500 cifras. No debería romperse el formato, son diez líneas de cincuenta dígitos cada una:

31415926535897932384626433832795028841971693993751
05820974944592307816406286208998628034825342117067
98214808651328230664709384460955058223172535940812
84811174502841027019385211055596446229489549303819
64428810975665933446128475648233786783165271201909
14564856692346034861045432664821339360726024914127
37245870066063155881748815209209628292540917153643
67892590360011330530548820466521384146951941511609
43305727036575959195309218611738193261179310511854
80744623799627495673518857527248912279381830119491

Hay fórmulas matemáticas brillantes para obtener los dígitos de pi, una de las más célebres se la debemos a Ramanujan (arriba en la imagen que sigue) y una aproximación mucho más precisa (que rompió el récord de cifras encontradas) es creación de los hermanos Chudnovsky (abajo)

"Fórmulas para obtener decimales de pi de matemáticos brillantes"

Me queda como materia pendiente, plotear pi mediante esas fórmulas para ver los diferentes resultados... Es una promesa.

¿Cómo se ve el resultado?

El programa es bastante tosco y simple, es un script (obviamente en perl) que básicamente ilustra los primeros 500 decimales de pi usando Imager y bignum.

Algo así fue en su primer intento:

"primer intento de ploteo"

Como no se de colores y no soy diseñador, elegí un único tono...

Después me pintó cambiar justamente el tono en pasos hexadecimales y el resultado ilustra un poco más la idea, aunque era bastante feo; decidí copiar una paleta de colores que encontré por ahí y el resultado fue mas feo...

"segundo intento de ploteo"

Después se me ocurrió que iba a ser mucho más feliz si ponía el número que cada color representaba en la imagen.

"tercer intento de ploteo"

Un último intento: únicamente escribe el número si es la primera vez que éste aparece en la serie...

"cuarto intento de ploteo"

Hmmm... No es el gráfico mas útil que hay, pero muestra como el cero tarda un rato en llegar. No termina siendo una gran revelación...

Como se veía mal todavía, decidí armar una paleta personal para encariñarme un poco con los resultados que estoy produciendo (ja), acá está.

El resultado es un poco mas lindo a mis ojos, pero sobre gustos no hay nada escrito...

"intento con paleta personal"

Un poco más...

Agarrando 500 decimales, ya alcanzaba, pero ¿qué pasa si uso 10,000? Lo mismo...

"intento con paleta personal"

Estaría bueno cambiar los colores por algunos de mejor gusto... :P

¿Y con 10000 y un único valor?

Claro, esto es lo que se viene... todos lo sabíamos.

¿Qué gráfico se obtiene si tomamos solo los unos, dos ... y el resto en blanco? Algo mas o menos así (ordenados de 0 a 9, de arriba hacia abajo):

"solo 0s"

"solo 1s"

"solo 2s"

"solo 3s"

"solo 4s"

"solo 5s"

"solo 6s"

"solo 7s"

"solo 8s"

"solo 9s"

Se pueden ver claramente varias cosas, que no necesariamente significan nada (estamos jugando a la matemática un poco):

¿Conclusiones?

Todo lo anterior es una idea, una inquietud y un poco de trabajo, ínfimo en comparación con el que hacen los matemáticos en el día a día: la idea de todo esto es, como dije antes, jugar a la matemática -un poco-.

Las conclusiones se las dejo a los matemáticos y la data visualization es mucho mejor con la ayuda de algún diseñador, aunque (en palabras del maestro):

"The nature of form in the digital age is trapped in the realm of code."

John Maeda.

Código

Subí esta cosa a github por si hay algún remoto interés...

Si alguien tiene ganas de paletear la idea mas estéticamente es mas que bienvenido.

Hay muchas herramientas para generar paletas, yo (que no soy diseñador ni nada) usé esta y la recomiendo.

Volver
Última modificación: 16-Mayo-2017 18:48 by MarxBro.MarxBro. WTFPL-2016