|
Texto principal
Textos complementarios
- "A paso de tortuga"(Algoritmo recursivo para dibujar un árbol binario fractal (aproximado))
- Números con complejos
- Fractales paquetes. La compresión de imágenes
- Algunos generadores de fractales disponibles para PC
- ¿Sabía Ud. que los fractales ... ?
- Las partes en papel (Bibliografía)
El misterio de los fractales, desentrañado
¿Qué son los fractales? En la década del 70 el matemático Benoit Mandelbrot descubrió que en la naturaleza pueden encontrarse ciertos patrones o formas que se repiten en un mismo ser, o parte de éste. Si uno observa un árbol, verá que el tronco se divide en ramas, cada rama se divide en otras menores, y así siguiendo. Lo mismo si se observa la hoja de un árbol, se verá que el tallo se divide en varias "líneas" a lo largo de la hoja, que a su vez se subdividen reiteradamente. De modo que hay formas o figuras que se encuentran de manera repetida en un mismo objeto o ser vivo. Esto también pasa al nivel atómico y molecular, así como en el universo en general, en el que satélites giran alrededor de planetas, estos se agrupan en sistemas planetarios, estos en galaxias, estas en grupos de galaxias, etc.
De esta manera nacieron los fractales. Los fractales son, en términos teóricos, ciertos conjuntos de puntos muy particulares, y en la práctica, gráficos, esquemas o modelos de fenómenos naturales. Lo sorprendente es que se han descubierto técnicas matemáticas que parecen extremadamente simples pero que se comportan de manera muy caótica o compleja, en cierto sentido. Más precisamente, si se experimenta con esas técnicas se puede dar lugar a la aparición de las figuras y patrones más complejas y extrañas, y a la vez de una belleza poco común.
Vamos a mostrar aquí algunos ejemplos típicos de estas construcciones, y parte del código que los permite generar.
El todo igual a las partes
Un fractal es básicamente un tipo de objeto en el que se cumple la siguiente "propiedad". Si se amplifica el tamaño del objeto, entonces aparecerá una réplica de éste, aunque no sea exactamente igual. Puede ser que se observe el objeto original pero girado o desplazado. Y seguramente de "tamaño" diferente. Y esto debe ocurrir tantas veces como se desee. Cada vez que amplificamos una parte de éste, vemos algo así como una réplica del objeto original, quizá con algún cambio respecto de aquél.
Pero sigamos explorando, pues hay ejemplos bastante "naturales".
El árbol de la vida
Un ejemplo muy sencillo es cierta clase de árbol. Cuando dibujamos un árbol, tenemos que dibujar el "tronco" y las "ramas". Cada rama puede ser, por qué no, una réplica del mismo árbol, sólo que de tamaño menor, y quizás con una rotación o giro diferente que el árbol original. También las mismas hojas de los árboles presentan líneas que se subdividen ... hasta perderse de vista.
Fracción de fractal
Hay hoy en día una gran cantidad de objetos fractales. Los hay muy variados, que pueden obtenerse de maneras muy diversas. Pero todos responden al mismo concepto de que se repite el mismo patrón de alguna manera no importa qué tanto uno amplifique la figura y qué punto tome como referencia.
Estos objetos tienen un aspecto que puede pensarse está ligado con objetos y procesos de la naturaleza misma. En efecto, plantas y árboles cumplen (en la práctica, de manera aproximada) con este requisito de que el todo sea igual o parecido a las partes. Así también nubes, las olas del agua, átomos y moléculas, sistemas planetarios y galaxias, y todos estos en el mismo universo. Nuestra red de nervios, vasos sanguíneos, etc. También ciertos esquemas de reproducción de seres vivos. Siempre hay cosas mayores en cosas menores, y todas parecidas de alguna forma.
Desde el punto de vista teórico, estos objetos que describimos no son exactamente fractales debido a que tienen fin. Llega un punto en que el motivo deja de repetirse o es lo suficientemente pequeño para que no sepamos ya qué cosa sigue. Pero matemáticamente, puede imaginarse esta subdivisión hasta el infinito.
Uno podría ante todo preguntarse si efectivamente son posibles estos objetos, estas construcciones. Lo interesante es que sí lo son. Y más aún, hay ejemplos conocidos desde un siglo o más. Más abajo describiremos uno de ellos, conocido como el conjunto "ternario" de Cantor, uno de los primeros ejemplos concretos de objeto fractal.
De tal palo fractal astilla
Existen pues maneras de construir sistemáticamente estos objetos. Veamos una de las más sencillas. Partiendo de una figura inicial fija, puede irse transformando alguna de sus partes, sucesivamente, en otro dibujo fijo, para luego repetir el proceso una y otra vez. Así, podemos "doblar" o "estirar" los lados de un triángulo. Así se obtiene en el límite una figura fractal. ¿Por qué decimos en el límite? Porque si nos detuviéramos en un determinado momento, no tendríamos el objeto fractal totalmente construido. Pero si consideramos que este es de hecho un proceso "infinito", entonces sí podemos afirmar que las sucesivas aproximaciones obtenidas por los pasos antedichos van "tendiendo" al fractal.
La función debe seguir
Muchos fractales se construyen usando el principio de iteración infinita. Es decir, se repite un mismo proceso un número infinito de veces, signifique esto lo que signifique...
Es claro que no es posible repetir un proceso que se precie como tal, infinitas veces. Por eso, la matemática da un método para conseguir esto de alguna manera. ¿Cómo? Produciendo un resultado que sea equivalente en algún sentido a haber iterado infinitas veces. Haciendo lo que se conoce como pasar al limite. En tanto no se pase al limite, se habrá iterado sólo finitas veces, consiguiendo así sólo un resultado aproximado. Por ejemplo, para el conjunto de Mandelbrot, se puede obtener una aproximación, tan buena como se quiera o bien lo permita la resolución de los gráficos empleados. Como, es claro, ningún sistema de computación permite una resolución infinita, entonces no puede verse un fractal en su totalidad, como los infinitos puntos que lo representan. Sólo podremos ver una aproximación de éste. Obviamente, cuanto más se desee aproximar el fractal (esto es, mayor el número de pasos en su generación), más tiempo se necesitará. Por eso normalmente se busca un compromiso entre la calidad de la aproximación buscada y el tiempo necesario para conseguir ésta.
Tres ambientes e interior vacío.
Uno de las primeras construcciones matemáticas fractales que han aparecido, y uno de los que primero pueden estudiarse, es el conjunto ternario de Cantor. Fue propuesto por el matemático George Cantor al comienzo del siglo XX, al estudiar la teoría de conjuntos. ¿En qué consiste? Se parte de un segmento de recta, de longitud 1 si se quiere. Se elimina el tercio del medio. Vale decir, uno se queda con el tercio izquierdo y el tercio derecho. Luego se hace la misma eliminación a cada uno de los dos segmentos que quedan. Y así se va siguiendo, con cada trozo del segmento original. La construcción es infinita, de modo que nunca llegaremos al resultado "final". Pero éste existe en forma teórica, y podemos decir muchas cosas de él.
__________________ | Segmento inicial |
______ ______ | Subdividido (ahora son 2 segmentos) |
__ __ __ __ | Vuelto a subdividir (ahora son 4 segmentos) |
_ _ _ _ _ _ _ _ | Vuelto a subdividir (ahora son 8 segmentos) |
.. .. .. .. .. .. .. .. | Vuelto a subdividir (ahora son 16 segmentos) |
etc |
En primer lugar, aseguramos que lo que obtendremos será algo, esto es, no queda vacío el segmento. Por ejemplo, el extremo izquierdo del segmento original siempre forma parte de todos las etapas. Es preciso destacar lo siguiente. El fractal aquí es el resultado final. Pero como nunca llegamos en la práctica al final, entonces se define al fractal como el conjunto de todos los puntos que nunca desaparecen. Es decir, aquellos puntos que, en cada uno de los pasos, forman parte de alguno de los segmentos de dicho paso. Esto no es ni más ni menos que la intersección (infinita) de todos los estados del segmento a los que se llega en los diferentes pasos. Por eso, como el extremo izquierdo pertenece a todos los estados, entonces está en la intersección de todos, y por consiguiente estará en el fractal. Luego, éste es no vacío, que era lo que nos proponíamos comprobar. Pero el ternario tiene muchos puntos más. En realidad tiene una infinidad de puntos.
Un hecho que ocurre es la propiedad fundamental. Si "miramos con lupa" algún trozo del ternario, veremos al mismo conjunto original allí, quizás algo desplazado hacia un lado. Y esto pasa no importa cuán grande o cuántas veces "ampliemos" el dibujo. ¡Por algo hemos iterado infinitas veces!
Del mismo modo, podemos decir que el otro extremo estará. Más aún. Durante el proceso de eliminación de segmentos, se van formando segmentos cada vez más chicos. Bien, los extremos de todos estos segmentos serán también puntos pertenecientes al ternario. Esto es fácil de verificar, ya que estos segmentos juegan el papel del segmento original cuando les llega el turno de eliminar su tercio intermedio. Esto ocurre, desde luego, por el hecho de que se cumple la propiedad fundamental arriba mencionada. Por eso también son infinitos los puntos que conforman al fractal.
Los de afuera son de palo
Otra propiedad de este conjunto, también sorprendente, es que el ternario no incluye a ningún segmento, por más chica que sea su longitud. ¿Qué quiere decir esto? Imaginemos un segmento, tan pequeño como se desee (pero que no se trate de un sólo punto). que queramos, que contenga por lo menos algún punto de nuestro fractal. Bueno, entonces decimos que necesariamente habrá puntos del segmento que no estén incluidos en el ternario. Dicho de manera fácil, el ternario no posee "puntos consecutivos". De alguna manera, durante su construcción, hemos eliminado los segmentos que podrían estar incluidos, y por ende, hemos eliminado esa posibilidad. Al no haber puntos "rodeados de otros", se dice que el interior es vacío. El concepto de interior es un concepto perteneciente a la topología, que no trataremos aquí, pero sí podemos decir que el interior es vacío justificándolo de esta manera. Podemos hacer otra descripción más "gráfica" de este último hecho. Supongamos que los puntos del ternario son todos de color amarillo, y los puntos que no pertenecen son negros (están sin pintar). Supongamos que contamos con pintura roja, y que nos proponemos hacer una "mancha" de pintura naranja en el conjunto, entendiendo a ésta por un segmento de pintura, que no se reduzca a un simple punto. Además, queremos que sea naranja, combinando el amarillo del conjunto con el rojo de nuestra pintura, o sea que tratamos de que la mancha toque por lo menos a algún punto. Pues bien, necesariamente aparecerán puntos rojos, naturalmente, fuera del ternario. Es decir, la pintura habrá alcanzado a puntos negros, sin limitarse a los puntos amarillos del conjunto.
En esta figura se observa una representación aproximada del conjunto ternario de Cantor mediante un árbol. Este árbol se construye como el ternario, con la diferencia de que en cada paso de la construcción se va adhiriendo hacia las hojas el estado actual del conjunto. Vale decir, el árbol va creciendo hacia abajo y se va dividiendo en 2, 4, 8, 16, ... ramas, en las cuales las hojas van asemejando cada vez más al ternario.
Los listados 2a y 2b dan cuenta de otras formas del ternario de Cantor , las que se encuentran debajo del correspondiente listado
Listado 2a Ternario de Cantor circular - versión CGA |
Listado 2b Ternario de Cantor circular, produciendo un mar fractal - versión CGA |
DEFDBL A-Z CONST mx = 319, my = 199, my2 = my / 2 SCREEN 1 CLS t = mx / 2 c = 1 DO x = t DO CIRCLE (x, my2), t, 2 PAINT (x, my2), c, 2 x = x + 2 * t LOOP UNTIL x > mx t = t / 2 c = 4 - c LOOP |
DEFDBL A-Y CONST mx = 319, my = 199, my2 = my / 2 SCREEN 13 CLS z = 1 t = mx / 2 c = 35 DO x = t DO CIRCLE (x, my2), t, 128, , , z CIRCLE (x, my2), t + 5, 127, , , z PAINT (x, my2), c, 128 x = x + 2 * t LOOP UNTIL x > mx t = t / 2 c = c - 4 ' :IF c < 1 THEN c = 255 LOOP UNTIL t < .3 LINE (0, 0)-(mx, my2), 0, BF FOR i = 0 TO 200 + RND * 200 PSET (RND * mx, RND * my2), 14 + RND NEXT DO : LOOP |
Medida sobre medida
No sabemos muy bien por qué, lo cierto es que Cantor terminó enloquecido. Probablemente porque revolucionó la matemática. Quizás no la practicó con "medida". O quizá se debiera incursionar en la psicología.
Existe en matemática una rama conocida como teoría de la medida. Está fuertemente vinculada con la teoría de conjuntos. Esta da las pautas para asignar números o medida a ciertas figuras, por lo general casi todas las imaginables. La medida de alguna manera expresa cuántas figuras elementales (como segmentos, cuadrados, cubos, etc., según en qué número de dimensiones se esté) podemos incluir enteramente en un conjunto dado.
Existen varias medidas posibles, pero la usual juega el papel de la superficie o el volumen, si se tienen 2 ó 3 dimensiones, pero en el caso del ternario de Cantor se asigna medida en una sola dimensión, ya que estamos en un segmento de recta. Algo así como la longitud del conjunto. Se sabe que, en el ternario de Cantor, esta medida vale 0. En otras palabras, no cabe ninguna mancha de "pintura" entera en él.
Un fractal típico. El conjunto de Mandelbrot.
Pasemos ahora a describir un fractal que es quizá el más famoso.
El conjunto de Mandelbrot propiamente dicho se construye del siguiente modo. Dependerá de un parámetro, el numero complejo c = (a, b), que fijamos de antemano.
Se itera sobre todos los puntos (o pixeles) posibles en una cierta porción del plano. Este plano es el conjunto de los números complejos (ver sección correspondiente). Luego, podemos hacer operaciones aritméticas con éstos. Más precisamente, sumar complejos y elevar al cuadrado. Para cada uno de los puntos (x, y), se considera el siguiente proceso.
Llamamos z0 a (x, y) el numero complejo actual.
Hacemos z1 = z0 ^ 2 + c. (Vale decir, elevamos el complejo al cuadrado, y a esto sumamos el numero complejo constante c).
Hacemos z2= z1^ 2 + c. Etc., en general es zn = zn-1 ^ 2 + c.
Se tiene así una sucesión de números complejos: z0, z1, z2, z3, ... Puede ser que esta sucesión de números converja (es decir, tenga un límite, que será a su vez un número complejo z). En este caso, incluimos al complejo inicial z0 en el conjunto. Si la sucesión diverge (o sea, no tiende a un complejo especifico sino que oscila), entonces no incluimos al z0 en el conjunto. Es de notar que no tiene por que ser fácil el decidir si la sucesión en cuestión converge o diverge. En efecto, la computadora tiene siempre acceso a una cantidad limitada de los números z0, z1, z2, ..., según el tiempo disponible para calcularlos. Normalmente, los graficadores de fractales de este tipo "deciden" de una manera empírica si hay o no convergencia mediante el proceso de reiterar el calculo una cantidad grande de veces y medir que tanto la sucesión permanece "encimada" o acotada en intervalos pequeños. En otras palabras, se usa el siguiente test. Al cabo de un numero grande de iteraciones, se verifica en cada paso el "error" de convergencia, o sea, la diferencia zn - zn-1. A esto se le calcula el valor absoluto. Luego, si este último número es pequeño, quiere decir que es "probable" que la sucesión "esté convergiendo".
Redondeando
Por supuesto, esto no garantiza matemáticamente la convergencia, pero el procedimiento mencionado da en muchos casos aproximaciones bastante buenas del conjunto de Mandelbrot. De hecho, se suele testear al cabo de cuantos pasos se consigue una buena convergencia. Entonces, según ese número de pasos, se le atribuye un color determinado al punto en cuestión; así lo mostrara el graficador. Por ejemplo, si se necesitó de 0 a 50 iteraciones para que el error fuera pequeño (o sea menor que un numero positivo prefijado de antemano), entonces corresponde color blanco. Si se necesito de 51 a 100 iteraciones, entonces va amarillo. De 101 a 150, rojo. Etcétera. El resultado, asombrosamente, es un fractal extraordinario. Cada porción del mismo es, de alguna manera, una réplica de todo el conjunto, aunque en tamaño más chico y no siempre en la misma posición (ver figura)
Puede generarse usando el código del siguiente listado (que venía originalmente con el MS Quick Basic versión 4.0).
Para dibujar una imagen repetida con tamaños distintos, una idea de fractal |
DEFINT A-R DECLARE SUB fig (x, y, t) SCREEN 1 WINDOW (-1, -1)-(1, 1) s = 1 DO FOR y = -1 TO 1 STEP s FOR x = -1 TO 1 STEP s fig x, y, s * s NEXT x NEXT y s = s / 2 LOOP UNTIL s < .001 SUB fig (x, y, t) LINE (x, y)-(x, y - t) LINE (x, y)-(x + t, y - 2 * t) LINE (x, y)-(x - t, y + t) END SUB |
Este incluye al finalizar el graficado un efecto especial que "rota los colores". Esta es una atracción visual muy común en los programas generadores de fractales de la actualidad.
Vestido de FRACtal
Si se observa con atención, se notará que el conjunto de Mandelbrot es exactamente el conjunto de atractores "agujeros negros" cuando la función o "proceso" que se utiliza es elevar al cuadrado y sumar el complejo constante (esto es, f(z) = z ^ 2 + c ). Véase para más detalles la nota Perdiéndose en un agujero negro, BYTE # 4, sección Game Science. En realidad, hay muchos ejemplos de fractales generados de una manera muy parecida a la descripta arriba.
¿Cuadrado complicado?
Otro ejemplo relacionado es el conjunto conocido como conjunto de Julia. Éste se calcula del siguiente modo. Elegimos primero un parámetro, el numero complejo c = (a, b), que fijamos de antemano.
Aquí también se itera sobre todos los puntos posibles en una cierta porción del plano. Para cada complejo (x, y), se considera el siguiente proceso.
Llamamos z0 a (x, y) el numero complejo actual.
Hacemos z1 = c z0 (z0 - 1).
Hacemos z2= c z1 (z1 - 1). Etc., en general será zn = c zn-1 (zn-1- 1) .
Se tiene aquí también una sucesión de números complejos: z0, z1, z2, z3, ... Igual que antes, si esta sucesión de números converge, entonces decimos que el complejo inicial z0 está en el conjunto. Si no, no.
El resultado se observa en la siguiente figura, llamada conjunto de Julia
Aquí también hay que poder determinar, aunque sea empíricamente, si hay o no convergencia. Por este motivo, el conjunto de Julia también se suele graficar por aproximaciones.
Lo interesante es que cambiando la constante c se obtienen curvas bastante distintas.
Notemos que tanto el conjunto de Julia como el de Mandelbrot fueron generados usando una iteración en donde hay multiplicaciones y sumas involucrados, entre las variables y la constante c. Más precisamente, se eleva una variable al cuadrado, se multiplica por una constante y eventualmente se le suma o resta la variable. Esta es una expresión polinómica en una variable, más precisamente un polinomio de grado 2 o cuadrático. Por eso estos dos fractales, junto a varios otros, se dice que están producidos por generadores cuadráticos. Su estudio se emplea en campos tales como la dinámica no lineal, dentro de los sistemas dinámicos, rama de la matemática aplicada.
Por supuesto, no sólo existen generadores cuadráticos sino también cúbicos, cuárticos, etc. ¡El universo fractal no es sencillo!
Estas son las imágenes de algunos otros fractales :
Conexión rectangular
Una "curva dragón". La curva dragón debe su nombre a la forma que sugiere
Montaña. Las montañas son ejemplos de irregularidades que se pueden generar con fractales.
Gráfico aportado por Michel Sauval
Una cuestión de triángulos
Veamos el camino alternativo para generar fractales. Este camino es mucho más "geométrico" que el encarado a través de los números complejos, y mucho más parecido a la construcción del ternario de Cantor.
Imaginemos una figura "sencilla", por ejemplo un triángulo equilátero, pero sin uno de los lados. Vamos a someter a este triángulo al siguiente proceso. "Doblamos" cada uno de los dos lados dibujados, de manera que las líneas agregadas asemejen a la figura original (12b). Luego repetimos el proceso sobre esas líneas agregadas (12c). Lo que vamos obteniendo es una "aproximación" a una figura fractal.
Este proceso puede aplicarse sobre una gran variedad de figuras. Básicamente hay que decidir cómo es la figura inicial y qué porción o porciones de la figura son reemplazadas en cada paso por repeticiones de la figura original en tamaño menor; también se decide qué proporción guarda la figura original respecto de la figura menor que se superpone.
Todo se transforma
Equivalentemente, vamos sometiendo a una figura a procesos de transformación, y hacemos lo mismo con cada pedazo del resultado así obtenido, repitiendo esto hasta que se desee o hasta que la resolución gráfica disponible así lo permita.
Esta forma de construir figuras fractales ofrece la ventaja de que puede ser entendida prácticamente por cualquiera, sin necesidad del uso del álgebra.
No hay necesidad de cambiar partes de la figura original, pudiendo en vez siempre "agregar" las figuras menores a aquella. Como ejemplo, imaginemos la siguiente construcción. Tomemos un círculo de radio 1. "Peguémosle" ahora otros cuatro círculos de radio 1/2, de tal manera que haya uno exactamente arriba, otro exactamente abajo, otro a derecha y otro a izquierda, cuidando de estos cuatro sean tangentes al primero (esto es, que tengan 1 punto en común cada uno. Luego haremos lo mismo con los cuatro círculos nuevos, pegándole círculos menores. Pero esta vez no pegaremos cuatro a cada uno pues se superpondrían en más de un caso con el círculo original. No importa, ponemos la mayor cantidad que podamos, que siempre será más de 2. Proseguimos de igual manera. En el límite, lo que queda es un fractal, de un "look" similar a lo que resulta ser el conjunto de Mandelbrot.
Mezcla aleatoria
¿Fractales aleatorios? Una idea interesante, y bastante explorada. Existen formas de combinar la generación de fractales con el factor aleatorio. Por ejemplo, pueden producirse las figuras usando los algoritmos descriptos pero eligiendo aleatoriamente las constantes involucradas. Incluso pueden ir modificándose estas constantes a medida en que se genera la imagen.
Pero hay otras maneras de generar imágenes fractales o semi fractales basadas en el azar, más precisamente en un proceso estocástico. Por ejemplo, la empleada por el código del listado 3*ACHERON2.L__005.
Listado 3. Este código genera una figura aleatoriamente, que asemeja un cierto fractal. En él se puede observar una secuencia de cuadriláteros tal que cada uno se superpone con el siguiente, y es de mayor tamaño que el siguiente. Puede ampliarse ("zoom") el dibujo simplemente cambiando las coordenadas XL, XR, YL, YR (que aparecen en el primer CONST). Lo mismo, cambia el aspecto del dibujo si se modifican convenientemente los factores f1 a f4 (que aparecen en el segundo CONST). 'Cierta "sucesión aleatoria de cuadriláteros" |
DEFINT T CONST xl = -3, xr = 3, yl = -3, yr = 3 CONST f1 = 2, f2 = -3, f3 = 6, f4 = 4 SCREEN 9 'para CGA o Hercules usar en vez SCREEN 1 WINDOW (xl, yl)-(xr, yr) CLS DO IF RND < .3 THEN x = RND * (xr - xl) + xl: y = RND * (yr - yl) + yl PSET (x, y), 1 xn = x / f1 + y / f2 y = y / f3 + x / f4 x = xn t = t + 1 LOOP UNTIL t >= 32500 |
En él se parte de un punto aleatorio de la pantalla y se lo va transformando reiteradamente según cierta fórmula matemática. Cada paso de la transformación resulta en un nuevo punto, que se grafica. Al final, va a quedar más cantidad de puntos graficados en la zona donde hay más convergencia, o a donde tienden la mayoría de los puntos, según la fórmula elegida.
Sorprendentemente, se forma una figura "semi fractal" como la siguienteDecimos semi fractal porque la propiedad de fractalidad, esto es, las partes similares al dibujo original, se produce alrededor de sólo algunos de los puntos. La figura que se forma en este caso es la de una serie de "cuadriláteros concéntricos", que pueden dejar de serlo e incluso cambiar totalmente su forma si se modifica la ventana o los factores involucrados (ver listado). Cambiando las constantes al comienzo (xl, xr, yl e yr) se puede ver una parte diferente del plano (xl, yl: coordenada inferior izquierda; xr, yr: coordenada superior derecha), lo que permite por ejemplo usar una ampliación o "zoom" diferente. Si se cambian las constantes que siguen (f1, f2, f3 y f4), se puede variar el aspecto de la figura. Si se modifica el número que aparece en RND < .3 (de 0 a 1) se consiguen distintos tipos de aglomeraciones de puntos. Por último, si se cambia la fórmula de recurrencia que afecta a las variables xn e yn, se pueden conseguir figuras muy variadas: espirales "galaxias", explosiones, imágenes que asemejan lazos y nudos, etc.
Se han hecho experimentos en la generación de árboles, hojas, superficies con montañas y otros accidentes, planetas en el espacio, etc. ¡Los fractales aparecen de manera inagotable!
Conclusión
A veces matemática y naturaleza están muy unidas. Gracias a las computadoras, en particular a su alta potencialidad y velocidad para operaciones numéricas, podemos hoy apreciar la belleza y singularidad de estas "construcciones". ¿Alguna vez imaginaron que sin éstas pudiera ser posible el descubrimiento de estas joyitas de la matemática? Si no, pregúntenle a B. Mandelbrot.
"A paso de tortuga"
(Algoritmo recursivo para dibujar un árbol binario fractal (aproximado))
Procedimiento "árbol"
Parámetros:
posición inicial (x, y), longitud inicial, longitud inicial y factor de acortamiento
Inicio
Comenzar el dibujo desde la posición inicial
dibujar hacia "adelante" una longitud igual a la longitud inicial
girar a izquierda 45° (apunta en diagonal hacia la izquierda)llamar (recursivamente) al procedimiento "árbol" (estando con esta "inclinación")
con los parámetros siguientes:
posición inicial = posición actual de la tortuga
longitud nueva = factor de acortamiento * longitud inicial
factor de acortamiento: el mismo
girar a derecha 45° (apunta en diagonal hacia la derecha)
llamar (recursivamente) al procedimiento "árbol" (estando con esta "inclinación")
con los parámetros siguientes:
posición inicial = posición actual de la tortuga
longitud nueva = factor de acortamiento * longitud inicial
factor de acortamiento: el mismo
girar a izquierda 45° (vuelve a la inclinación original)
volver hacia "atrás" una longitud igual a la longitud inicial (sin borrar lo dibujado)
Fin
Números con complejos
Qué son y cómo se opera con números complejos. Los números complejos constan de dos partes, conocidas vulgarmente como real e imaginaria. Cada una de estas partes es un determinado número real. Por eso, una manera cómoda de representar o imaginar números complejos es pensar separadamente en su parte real y su parte imaginaria. Así, el (2, 3) es el complejo que tiene parte real 2 y parte imaginaria 3. El (-5.1, 2.09) es aquel que tiene parte real -5.1 y parte imaginaria 2.09. El (4.4, 0) es aquel que tiene parte real 4.4 y parte imaginaria 0. Por ser 0 la parte imaginaria, se considera que (4.4, 0) es de hecho un número real, esto es, se trata del número 4.4. Vale decir, los reales son tan sólo un subconjunto de los complejos, que se identifican con aquellos complejos que tienen parte imaginaria 0.
Una manera cómoda de representar gráficamente los números complejos es usando dos ejes cartesianos, perpendiculares uno del otro. Así como los números reales se representan sobre una línea recta, para representar los complejos hacen falta dos rectas (los ejes). Un eje es la parte real y el otro la parte imaginaria, de cada número. Entonces, cada punto del plano queda unívocamente identificado con un único número complejo, en analogía a lo que pasaba con los reales y la recta. Y precisamente el eje real es el conjunto de los números reales. Vemos pues que se usa una dimensión más para representar los complejos. Esta es la representación vectorial de los complejos.
¿Cuál es la motivación de estos números? Primeramente digamos que todo conjunto de números que se precie de tal debe tener alguna estructura que permita realizar ciertas operaciones. Si no, no son números. Tenemos pues que decir cómo se suman, restan, multiplican y dividen complejos.
Veamos pues cómo sumar complejos. Nada más sencillo que esto: se suman componente a componente, como si se tratara de vectores. Por ejemplo, (3, 2) + (-7, 1) = ( 3 + (-7), 2 + 1 ) = (-4, 3). Para restar se procede en forma análoga. Notemos que en realidad restar es sumar a un número el opuesto de otro (el opuesto es cambiar de signo al número). En los complejos el opuesto no es más que cambiar de signo simultáneamente la parte real y la parte imaginaria.
¿Cómo se multiplican los complejos? En principio uno podría definir la multiplicación de la manera que más le guste. Pero existen unas ideas que corresponden al álgebra, que datan de siglos de antigüedad, y que llevan a definir la multiplicación de una forma particular, que es la siguiente. Dados los complejos (a, b) y (c, d), el producto de ambos será el complejo que tiene como parte real al número a*c - b*d, y como parte imaginaria al número a*d + b*c. ¿Por qué se hace esto así? En principio se deseó que el conjunto de números complejos satisfaga por lo menos todas las propiedades relevantes que ya satisfacían los números reales. Y una de estas es el hecho de que cada número real distinto de 0 tiene un inverso multiplicativo, o sea siempre existe un cierto número que multiplicado por aquél dé como resultado 1. Así es. Los complejos también satisfacen este hecho. Esta propiedad, de suma importancia, hacen del conjunto de números complejos un "cuerpo". En un cuerpo la suma y el producto son conmutativas, hay distributividad del producto respecto de la suma (es decir, siempre vale que a * (x + y) = a * x + a * y), hay un valor que es un "neutro aditivo" (aquí el complejo (0, 0)), hay neutro multiplicativo (el complejo (1, 0)), y por último cada número complejo tiene un inverso aditivo y un inverso multiplicativo.
En realidad una de las principales razones por las que se introducen los complejos es el poder tener un número que elevado al cuadrado dé -1. Con los números reales esto no pasa, porque el producto de números reales de igual signo da siempre un resultado positivo (o cero). Como -1 es menor que 0, entonces el cuadrado de un número real nunca puede ser -1. Con los complejos esto se "soluciona". El complejo (0, 1) elevado al cuadrado (esto es, multiplicado por sí mismo), da (-1, 0), es decir, el real -1 (esto se puede comprobar usando la regla de multiplicación descripta más arriba). Se suele simbolizar con la letra i a este complejo. Luego, i es una solución a la ecuación X2 + 1 = 0. Lo interesante es que con sólo agregar estos números un montón de ecuaciones que antes no poseían solución pasan a tenerla. Más precisamente, todos los polinomios (no constantes) tienen por lo menos una solución compleja. Demostrar esto es un hecho no trivial, y pertenece a la rama de la matemática conocida como Álgebra. Por esto se dice que el cuerpo de números complejos es un cuerpo algebraicamente cerrado.
No es el objeto de esta nota dar nociones específicas de números complejos o del álgebra relacionada, ni nada por el estilo. Sólo digamos que el uso de los complejos permite estudiar y comprender mejor ciertas ecuaciones y ciertos conjuntos numéricos. Por otra parte, los números complejos tienen buenos usos prácticos. Los fractales vistos equivalen a resultados de algunas "complicaciones" que presentan estos números. Además de dentro de la matemática misma, se aplican a campos tan diversos como el electromagnetismo y teoría de la relatividad.
Fractales paquetes. La compresión de imágenes
Hoy en día están muy difundidos los programas para compresión de datos. Tanto los que trabajan en archivos independientes de usuarios (PKZIP, LHARC, RAR, GZIP, etc.), como los que se usan en el nivel de sistema operativo (STACKER, SUPERSTOR, DOUBLESPACE, etc.). Pero más recientemente se están comenzando a utilizar nada menos que fractales para comprimir datos varios, en especial imágenes.
Las imágenes son en general archivos entre medianos y grandes, de los que resulta difícil obtener una buena compactación debido principalmente a la gran cantidad de información que éstos presentan, y a la eventualmente poca redundancia de los datos, así como al gran nivel de detalle que se necesita. Por supuesto que puede haber imágenes con grandes posibilidades de compactación si se da el caso de que las imágenes son sencillas, por ejemplo, unos pocos puntos o segmentos rectos aislados, o bien un número fijo de círculos, o bien un dibujo pequeño con un fondo oscuro grande. En estos casos, las razones de compresión son buenas, definiendo como tales al cociente del tamaño del archivo comprimido y el tamaño del archivo original. Sin embargo, las imágenes más interesantes o complejas suelen ser dar razones mucho menores, es decir, compactaciones no tan buenas usando los métodos tradicionales.
La idea detrás de los fractales para compactar imágenes es la repetición de motivos de la imagen, en ella misma. Muchas imágenes consisten entre otros detalles, en la repetición de un mismo esquema en diferentes tamaños, inclinaciones, inclusive con simetrías. Es el objeto principal de estas técnicas el encontrar estos esquemas y las transformaciones involucradas.
Vale decir, si la imagen es por ejemplo un rectángulo con base horizontal y otro proporcional con base inclinada, se deberá encontrar una función afín que transforme uno en el otro. Las transformaciones afines son funciones que convierten un conjunto de puntos en otro, y tales que convierten rectas siempre en (otras) rectas; es decir, no deforman la rectitud de la imagen. Encontrar esta transformación una vez que se tienen los dos objetos es un problema matemático muy simple, y los compactadores fractales lo resuelven con ecuaciones. Por último, se hace esto para cada posible "objeto" de la imagen que se repita una o más veces. Por supuesto, la eficiencia del algoritmo puede ser bastante difícil de conseguir.
Lo que se almacena es un conjunto de esquemas y un conjunto de transformaciones asociadas a cada esquema, en lugar de almacenar la imagen original. En la práctica esto ha dado resultados asombrosos, de 100 a 1, o mejores. Por supuesto, esto no significa que siempre sea decididamente conveniente. Hay que ver que la aplicación del algoritmo correspondiente puede demandar mucho tiempo. Para más detalles acerca de estos métodos, puede consultarse el artículo de L. Anson (ver bibliografía*ACHERON2.P__008).
Por supuesto, lo que todavía no parece claro es cómo usar las técnicas de compresión fractal para compactar otros datos que no sean imágenes, si esto es de algún modo posible; por, ejemplo textos o sonido.
Algunos generadores de fractales disponibles para PC
Fractools III: 590 imágenes fractales para ser usadas en shows de slides, salva pantallas y kaleidoscopios, con efectos especiales. Para Windows. Soporta modo sVGA 1024x768x256. (Quanta Press, Inc).
También FracZooms, permite el uso de ciertas ecuaciones y parámetros variables, y FracTunes, kaleidoscopio musical.
Por último, hay un CD ROM de Walnut Creek que recopila millares de imágenes de fractales.
En modalidad shareware, tenemos: Fractint 16.11 y posteriores, para DOS y Windows. También Hallucinations, Fractal Kaleidoscope, Mandelbrot, Mandelbrot Magic, Kaotix, Fractal Grafix y otros para DOS, y Winfract y tantos otros, para Windows.
Las imágenes de esta nota fueron obtenidas con algunos de estos así como con un programa del autor que incluye los principales métodos.
¿Sabía Ud. que los fractales ... ?
1. ... son conjuntos abstractos incluidos en un plano (aunque también pueden concebirse en menos o más de dos dimensiones). Los programas que los grafican producen siempre un resultado aproximado, nunca exacto. Por otro lado, los colores que se les atribuye a cada punto del dibujo corresponden a la idea de qué tan "cerca" esté ese punto de pertenecer al fractal, en el sentido de una medida cuantitativa del error cuando se calculó la posible convergencia de la sucesión que decide su pertenencia o no al conjunto.
2. ... están basados en ideas de fines del siglo XIX y principios del XX. Estos antecedentes marcaron hitos en la historia del pensamiento matemático, que generalmente mostraban elementos con propiedades difíciles de creer que pudieran darse. Una de tales ideas era una curva descubierta por el matemático Giuseppe Peano en 1890, que poseía la increíble propiedad de "llenar" completamente el interior de un rectángulo. Algo así como dibujar continuamente un trazo en el interior de dicha figura en forma ininterrumpida con el objeto de llenarlo de "tinta" completamente sin omitir punto alguno. Por supuesto, en matemática se asume que el trazo ha de tener grosor nulo; es esto lo extraño. Otra fue una curva conocida como "copo de nieve", atribuida al matemático suizo Helge von Koch en 1904, con similares características
Para un mayor detalle se sugiere consultar el libro de M. Gardner citado en la bibliografía.
3. Paralelamente, al matemático Weierstrass se le atribuye el descubrir una curva real (o sea incluida en el plano RxR, donde R es la recta de los números reales) que es continua en todos los puntos (vale decir, no presenta "saltos", podría dibujarse sin soltar el lápiz del papel), y diferenciable en ninguno (dicho en otros términos, "pincha" en todos los puntos, no es "suave" o "redondeada" en ninguno). Otro ejemplo pionero fue el conjunto ternario de Cantor (ver texto principal).
4. ... sirven como modelos de hechos de la naturaleza, por ejemplo paisajes, generados matemáticamente, en los que se reproduce de alguna manera el fenómeno de la repetición de motivos o el crecimiento. Aunque también importan desde el punto de vista teórico como figuras en las que tiene sentido definir una dimensión fractal, que generalmente no coincide con la usual, llamada dimensión topológica.
5. ... pueden también definirse como esquemas que son infinitamente ampliables ("zoom"), independientemente de la resolución gráfica que se posea. Vale decir, si miramos con lupa un trozo de éste, veremos detalles que antes no veíamos, y así sucesivamente. Un programa generador de fractales deberá permitir estas posibilidades de ampliación sin límites.
6. ... se utilizan para crear motivos de diseño, decoración, recreación, y también en música! A todo esto, el célebre autor Douglas Hofstadter hace en su Metamagical Themas alusión a los fractales cuando observa una obra musical de Bach en la que muestra cómo se da esta idea.
7. ... se pueden generar usando algoritmos con sucesiones basadas en aritmética de números complejos, pero esto no es necesario. Pueden armarse con otro tipo de algoritmos iterativos o recursivos que hagan construcciones geométricas elementales en cada paso.
- Anguiano, Eloy, Creación de algunos objetos fractales, PC World, febrero 1992 (pp. 76-77).
- Anson, Loisa F., Fractal Image Compression, BYTE (USA), octubre 1993.
- Arbiser, Ariel., Imagina, programa para el procesamiento de imágenes y generación de efectos incluyendo fractales y otros (para PC bajo el entorno Windows 3.1, versión 0.1, escrito con Visual Basic y Delphi).
- Arbiser, A., Naturaleza de los fractales, BYTE Argentina #19, octubre de 1994.
- Barnsley, Michael F., Fractals Everywhere, 2da. edición, San Diego, California, Academic Press 1993.
- Barnsley, Michael F., Fractal Image Compression, Wellesley, Massachusetts, A. K. Peters 1993.
- Barnsley, Michael F. y Sloan, Alan D., A Better Way to Compress Images, BYTE (USA), enero 1988.
- Gardner, Martin, Fractal Music, Hypercards, and more..., New York, W. H. Freeman 1991.
- Julia, G., Mémoire sur l´itération des fonctions rationnelles, J. Mathématiques Pures et Appliqués 4 (pp 47-245), 1918.
- Mandelbrot, Benoit B., Les Objets Fractals: Forme, Hasard et Dimension, Paris, Flammarion 1974.
- Mandelbrot, Benoit B., The Fractal Geometry of Nature, New York, W. H. Freeman 1977.
- Pennebaker, William B. y Mitchell, Joan, JPEG Still Image Compression Standard, New York, Van Nostrand Reinhold 1993.