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).