Biomorfos-I


de A.K. Dewdney y Dr. Clifford A. Pickover

     ¿Que es un biomorfo ?. El término no es nuevo. El biólogo de la Universidad de Oxford Richard Dawkins creo un programa que describía formas cuasi biológicas, y a partir de una colección de formas dendríticas, un operador humano selecciona una; arrancando de ésta, el programa desarrolla otra colección de figuras semejantes a ella con alguna variante respecto a la seleccionada.

     Aunque el Dr. Pickover desarrolló sus biomorfos de manera independiente y casi simultanea, el método con que se generan y presentan es del todo distinto.

     A diferencia de los biomorfos de Dawkins, los de Pickover tienen aspecto manifiestamente microbiano. Los biomorfos de Pickover habitan en el plano complejo, sede del afamado conjunto de Mandelbrot. Son producidos por una versión abreviada del proceso que traza la delicada geometría fractal de los conjuntos de Julia, parientes cercanos del conjunto de Mandelbrot. Cada biomorfo se genera mediante iteraciones múltiples, repeticiones de una función particular, o sea, de una secuencia de operaciones matemáticas. Cada iteración utiliza la salida de la precedente tanda de operaciones como valor de entrada de la siguiente iteración.

     Por ejemplos la función:  Z(n+1) <-------- Z^3 + C

     Se empieza "sembrando" como valor inicial un número complejo Z(0), que se eleva al cubo y a cuya potencia se le suma un número complejo fijo, C.  Las mismas operaciones aritméticas se efectúan seguidamente sobre la suma resultante, Z(l), lo que produce Z(2), y así sucesivamente.

El algoritmo para la generación de biomorfos es:

C <-------- 0,5 + 0,0 i
     para j <---------- 1 hasta 100
            para k <---------- 1 hasta 100
                  calcular Z(0)
                  Z < ---------------Z(0)
                  para n < -------1 hasta 10
                  Z < -------..Z^3 + C
                  si /real(z)/ o /imag(z)/ o Z > 10
                              entonces salir del bucle
                  si /real(z) o / imag(z) / < 10
                               entonces dibujar (j,k) en negro
                               si no, dibujar (j,k) en blanco.


     La instrucción "computar Z(0)", aunque de sencilla apariencia, no es en realidad tan trivial. Exige la conversión de cada par (j,k) de coordenadas de píxel en un número complejo. Ello se efectúa dividiendo respectivamente la longitud y la anchura de una porción del plano complejo por el número de valores de j y de k. Estos cocientes sirven entonces como incrementos en los cuales son sistemáticamente aumentadas las partes real e imaginaria de Z(0) en cada uno de los ciclos del algoritmo.

     Por ejemplo para empezar; una buena ventana dentro del plano complejo, es la delineada por las siguiente cotas para las partes real e imaginaria de Z(0).

     -1.5 < real(Z0) <1.5

     -1.5 < inag(Z0) <1.5



     Dado que lo mismo j que k recorren los valores enteros de 1 a 100, tanto la parte real como la imaginaria son sistemáticamente incrementadas en pasos de 0.03. Por consiguiente, la versión de algoritmo antes presentado ha de basarse en sentencias del tipo

     real (Z0) <----------  -1.5 + 0.03j

     imag (Z0) <--------- -1.5 + 0.03k

con el fin de computar 10.000 valores de (Z0), cada uno de los cuales se itera y ensaya.

     Dentro del bucle más interno de 10 iteraciones, se supervisa continuamente el "tamaño" de Z (denotado |z|), al que los matemáticos llama "modulo" o "valor absoluto", así como el tamaño de las partes real e imaginaria (|real(z>|  e |imag(z)|).  El tamaño o modulo de un número complejo es sencillamente la raíz cuadrada de la suma de los cuadrados de las partes real e imaginaria del número; el tamaño de sus partes componentes está dado por sus respectivos valores absolutos. (El valor absoluto de un número es el valor numérico positivo resultante de despreciar el signo).



     Si el tamaño de Z o de sus partes componentes excede de 10, el programa habrá de salir inmediatamente del bucle -aunque no haya llegado a la décima iteración- y produjera verificar nuevamente el tamaño de las partes real e imaginaria de Z (Al comparar con 10 el módulo de Z resulta más sencillo comparar la suma de los cuadrados de las partes real e imaginaria de Z con 100 que comparar con 10 la raíz cuadrada de la suma; en cualquier caso, el resultado sería el mismo.) Si, independientemente del número de iteraciones, se verifica que al menos la parte real o la parte imaginaria del valor final de Z es menor que 10, el pixel de coordenadas (j,k) píntese de negro. En caso contrario de blanco. (También quedan muy bien si se deja que tomen los colores por defecto de la tarjeta gráfica).

     En la mayor parte de los ordenadores, los pixeles de coordenadas comprendidas entre 1 y 100 se encontraran en una esquina de la pantalla. Para centrar la imagen puede ser necesario alterar los valores inicial y final de j y k. Por ejemplo puede ser necesario hacer que j recorra los valores comprendidos de 50 a 150, en lugar de los comprendidos entre 1 y 100»

     En palabras del propio Pickover: "En cierto sentido, las criaturas matemáticas existen. Moran estos objetos en el plano complejo, aunque se asemejen a organismos microscópicos que podríamos fácilmente imaginar floreciendo en una gota de agua de una charca."

Nota.: Para una información más completa ver revistas

- Investigación y Ciencia nº 156 de septiembre de 1.989

- págs 95 en adelante del libro Computer Pattern Chaos and Beauty del Dr. Clifford A. Pickover.

- ó RC 14014 de Research reports: The Fractal Simulation of Biological Shapes del Centro de Investigaciones de IBM Thomas J. Watson de Nueva York»



No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.