Notas sobre el conjunto de Mandelbrot

Minientrada

Ayer cerré un stream en Twitch en el que intenté programar la típica representación gráfica del conjunto de Mandelbrot. No lo terminé porque se me alargó, pero lo continuaré. Dejo aquí algunas notas para cuando haga la segunda parte.

El conjunto de Mandelbrot es el conjunto de números complejos donde se cumple que la evolución de la serie definida por la función f(c, n) = f(c, n-1)^2 + c, siendo f(c, 0) = 0, no tiende al infinito. Por ejemplo, para c=1 se obtiene la serie 0,1,2,5,26…, no acotada, pero para c=-1 se obtiene la serie 0,-1,0,-1,…, que sí está acotada. (Por supuesto, c=1 y c=-1 son ejemplos muy simples, pero esta fórmula se usará con números con parte imaginaria como 0.2265+0.331i.)

Para facilitar las cosas, lo normal es asumir que si la magnitud del número complejo supera en algún punto de la serie el valor 4, entonces con seguridad no se acota. Como no podemos pedirle al ordenador precisión infinita, si después de un número máximo de iteraciones sigue sin tender al infinito, podemos asumir que sí se acota.

O sea, que al final en un programa de ordenador repetiremos la función hasta que se superen 50, 100, 1000 iteraciones (lo cual nos diría que está acotada), o hasta obtener algún valor con un absoluto mayor a 4, lo que nos deja interrumpir la ejecución asumiendo que no se acota. Cuantas más iteraciones apliquemos, más precisa será la evaluación, ya que puede ocurrir que una serie para un complejo tarde más tiempo en divergir, aunque también tomará más tiempo.

En cuanto a la clásica imagen del fractal generado a partir del conjunto de Mandelbrot, que seguramente muchos habremos visto alguna vez, lo que vemos es la representación en un sistema de coordenadas 2D del valor de esta función para todos los números complejos. El eje X representa la parte real del complejo y el eje Y, la parte imaginaria.

En el programa de ordenador generaríamos la imagen transformando del sistema de coordenadas de la imagen (por ejemplo píxeles del (0,0) al (640,480)) a una interpolación más aceptable en el rango de los complejos que vayamos a comprobar (como (-1,-1) a (1,1), aunque podríamos reducir el área para hacer zoom), y luego consultando si ese número complejo está en el conjunto o no. Si está en el conjunto, lo podemos representar de negro. Si no está en el conjunto, lo típico es crear algún tipo de paleta de colores para representar con un color diferente aquellos complejos que escapen antes al infinito de aquellos que escapan más tarde.

 Representación del conjunto de Mandelbrot
La clásica foto del conjunto de Mandelbrot tomada de Wikipedia.

Invirtiendo esferas

Enlace

Las recomendaciones de YouTube me han lanzado este vídeo que me deja tan fascinado como confuso sobre cómo se pueden invertir círculos y esferas, y toda la matemática y condiciones que hay detrás de este proceso.

(No, no puedes darle la vuelta como un calcetín a un balón de baloncesto; se conoce que esto sólo se puede hacer con esferas hipotéticas hechas de un material hipotético que puede atravesarse a sí mismo.)

El vídeo es de 1994 y está subido a YouTube en 2011, y debe estar en esa lista que se hace el algoritmo de YouTube cada mes de «vídeos viejos que deben resurgir en el feed de recomendados sin razón alguna»…

MathML en Chromium

Enlace

Leyendo comentarios en Hacker News el otro día, me enteré que por fin Blink está trabajando en soporte para MathML. Aunque no proceda de Google, sino de un proyecto externo que por supuesto requiere financiación de patrocinadores para poder sobrellevar el esfuerzo.

MathML tiene soporte tanto en Firefox como en Safari, pero como Blink todavía no lo soporta, para el 78,35% de los navegadores web es como si no existiese. (Chrome, Edge, Opera, Brave…). Es otro ejemplo de una valiosa tecnología retenida y secuestrada por culpa de la monocultura tóxica de los navegadores que Google está alentando.