Existen objetos -como las nubes, las montañas o las líneas costeras- que resultan extraordinariamente complicados de ser modelados matemáticamente. El caos que contienen hacen que las matemáticas tradicionales sean incapaces de abordarlos correctamente. Afortunadamente, existe una rama especial de las matemáticas que se ocupa de estos temas, cuyo exponente más representativo son los fractales del conjunto de Mandelbrot, que nos abren una puerta hacia un maravilloso y desconocido mundo.
Cuando vemos un árbol, una nube o una montaña, no tenemos dudas que ese objeto que tenemos enfrente es -efectivamente- un árbol, una nube o una montaña. Es extraño que esto suceda, por que se trata de objetos que nunca se repiten. Por más que busquemos, jamás veremos dos que sean exactamente iguales. Sin embargo, tienen determinadas propiedades que nos permiten reconocerlos como tales. El conjunto de esas propiedades comunes coincide con los de unos objetos matemáticos descubiertos hace más de 100 años, que se llaman, en general, fractales. El exponente más conocido de los fractales es el conjunto de Mandelbrot.
La historia de los fractales
La historia de los fractales comienza en 1872, con la aparición de la función de Weierstrass. En esa época no existía el concepto de fractal, pero su grafo contiene, sin dudas, características que lo convierten en miembro de ese club. Posteriormente se descubrieron objetos con propiedades similares, casi siempre como curiosidades matemáticas pero con una definición más estricta desde el punto de vista geométrico.
Estos objetos casi siempre pueden construirse a partir de una figura inicial o “semilla”, a la que se aplican una serie de transformaciones geométricas sencillas. Cuando el numero de pasos es lo suficientemente alto, la figura obtenida es lo que hoy llamamos un fractal. En 1904, Helge von Koch definió una curva con propiedades similares a la de Weierstrass, a la que llamo “el copo de nieve de Koch”. Años más tarde, en 1915, Waclaw Sierpinski construyó su famoso triángulo y, un año después, su alfombra. Pero todos esos objetos empalidecen a la par de los descubiertos en 1975 por el matemático Benoît Mandelbrot.
El conjunto de Mandelbrot
Mandelbrot se inspiró en los trabajos de Pierre Fatou y Gaston Julia, que en los años 1920 ya habían logrado construir fractales sumamente complejos a partir de la aplicación reiterada de funciones holomorfas. No vamos a mostrarte aquí las ecuaciones, pero no son tan complejas como los gráficos pueden hacer presuponer.
En la actualidad, se dice que un objeto matemático es un fractal si cumple con las siguientes condiciones:
- Ser lo suficientemente irregular para ser descrito en términos geométricos tradicionales.
- Poseer detalles apreciables a cualquier escala de observación, ser autosimilar (sus partes se parecen al todo).
- Poseer una dimensión de Hausdorff-Besicovitch mayor que su dimensión topológica.
- Poder ser definido mediante un simple algoritmo recursivo.
No nos basta con cumplir solo una o algunas de estas estas características para que un objeto sea considerado un fractal. La recta, por ejemplo, no se considera un fractal, ya que a pesar de ser un objeto autosimilar carece del resto de las características enumeradas. Actualmente, los ordenadores y su potencia de cálculo han hecho posible la generación de imágenes fractales con prácticamente cualquier nivel de detalle y en tiempos relativamente cortos.
Lejos han quedado los tiempos en que Fatou o Julia se quemaban las pestañas frente a un papel intentando dibujar sus fractales. Un algoritmo (en pseudocódigo) como el siguiente permite crear fractales del conjunto de Mandelbrot en dos dimensiones:
For each pixel on the screen do:
{ x0 = x co-ordinate of pixel y0 = y co-ordinate of pixel x = 0 y = 0
iteration = 0 max_iteration = 1000 while ( x*x + y*y <= (2*2) and iteration=”=” < max_iteration ) { xtemp=”x*x” – y*y + x0 y=”2*x*y” y0 x=”xtemp ” 1 } if ( then color=”iteration” else plot(x0,y0,color)
}</=>
Cualquiera que haya escrito alguna vez un simple programa en BASIC o C puede adaptar este algoritmo en minutos para dibujar sus propios fractales. Pero en tiempos más recientes, algunos programadores han comenzado a generar estas figuras utilizando tres dimensiones. El algoritmo es mucho más complicado y escapa al nivel de este pequeño artículo, pero las imágenes obtenidas son de una belleza innegable.
Como puedes ver, las matemáticas no tienen porque ser frías o aburridas. Tíos como Benoît Mandelbrot o Gaston Julia han convertido los no siempre queridos números en objetos tan ricos y complejos que algunos hasta los consideran obras de arte. ¿Qué te parece?
Como fanatico de los fractales comparto con ustedes esta galeria que he encontrado en la web.
http://exoteric.roach.org/frax/index.html
ahora solo imaginen un fractal proyectado sobre un espacio de 11 dimensiones como los de la teoría de cuerdas…
y que además de eso se mueve…
como para volverse loco…
Muy interesante y lindo para ver. "ser lo suficientemente irregular para ser descrito en términos geométricos tradicionales" no hay un error aqui? no deberia ser lo suficientemente irregular como para no poder ser descrito en terminos geometricos tradicionales?
no creo… si te fijas las figuras tienen una forma geometrica. hay una marron ovoide por ejemplo. otras estan a escala muy grande y no se aprecia la forma pero supongo que la tendran.
mmm podría aplicarse esto a la creacion de escenarios de videojuegos?
De hecho, sí, suele hacerse a menudo.
buen artículo Ariel.
Impresionantes imágenes, en especial la última.
SLDS
el algoritmo de la naturaleza :O
Muy interesante! Pero me quedé con ganas de ver alguna ecuación matemática! Pongan una aunque sea!
que rayosss.. k no habia comentado ya akiii
Espectacular!
Me encantan los fractales, aunque haya tenido pesadillas con ellos cuando era pequeño.
La naturaleza también tiene sus fractales en algunas plantas.
http://WWW.ARQUITECTURAFRACTAL.COM
El algoritmo que has puesto esta mal y no tiene ni pies ni cabeza, dejo aqui el bueno:
For each pixel on the screen do:
{
x = x0 = x co-ordinate of pixel
y = y0 = y co-ordinate of pixel
iteration = 0
max_iteration = 1000
while ( x*x + y*y <= (2*2) AND iteration < max_iteration )
{
xtemp = x*x – y*y + x0
y = 2*x*y + y0
x = xtemp
iteration = iteration + 1
}
if ( iteration == max_iteration )
then
color = black
else
color = iteration
plot(x0,y0,color)
}