Desarrollo de fractales mediante el método de Mandelbrot

El método de Mandelbrot : este método para desarrollar "objetos fractales" fue creado por Benoît Mandelbrot en la década de los años 70, mientras trabajaba en IBM. Consiste en construir, para cada punto c del plano complejo, una sucesión de números complejos zn. Partiendo del punto z0 = 0, se calcula la sucesión de forma iterativa mediante la fórmula zn+1=F(zn)+c, donde F es una función arbitraria previamente elegida. Cuando la sucesión iterativa está acotada, se asigna al punto c del plano complejo un color sólido (por ejemplo, el color negro). Si la sucesión diverge entonces se asigna al punto c un color progresivamente distinto, dependiendo de cuántas iteraciones hayan sido necesarias para detectar la divergencia de la sucesión.

El fractal derivado por este método cuando se toma la función F(z)=z2 se llama conjunto de Mandelbrot.

En lo que sigue, en lugar de zn+1=F(zn)+c se utilizará la notación Z=F(Z)+C, como si se tratara de una asignación en algún lenguaje de programación.

Z = Zm + C

editar

A continuación se muestra una serie de fractales iterando las diferentes potencias de Z = Zm + C, según el método de Mandelbrot.

Ejemplos de fractales del tipo Mandelbrot: Z = Zm + C

Tal y como se puede ver en los ejemplos representados, el número de lóbulos es L = m - 1

Un breve viaje a las profundidades del fractal de Mandelbrot Z = Z2 + C

editar

A continuación vamos a adentrarnos en el fractal clásico de Mandelbrot, utilizando el microscopio de altísima resolución que nos proporciona el cálculo iterativo. Todas las ampliaciones vienen precedidas de una imagen del fractal a escala 1:1 en donde podemos apreciar la zona ampliada.[1]

Ampliación zona 1

editar

Centro de coordenadas : Cx = 0.291811 , Cy = 0.0144686

Ampliación zona 2

editar

Centro de coordenadas : Cx = -0.165643411 , Cy = 0.656685704

Ampliación zona 3

editar

Centro de coordenadas : Cx = -0.755625 , Cy = 0.06328125

Ampliación zona 4

editar

Centro de coordenadas : Cx = -0,1758752481899, Cy = 1,075392007
A continuación bajaremos a gran profundidad, con una ampliación de más de 2 millones y con un número máximo de 6000 iteraciones por pixel !

Ampliación zona XX

editar

Centro de coordenadas : Cx = 0,02816835288421, Cy = 0,63790834667330
Ahora nos adentraremos en un sitio con extrañas formas y colores, pero donde pueden apreciarse perfectamente las formas del fractal de Mandelbrot...

Z = Z-m + C

editar

Ejemplos de fractales del tipo Mandelbrot, con potencias negativas de Z.

Z = Zp / (1 + Zq) + C

editar

Z = Zm + Cp

editar

Pero, ¿ qué pasa cuando hacemos Z = Zm + Cp ?. Tal y como se puede ver en los siguientes ejemplos, el número de lóbulos es L = (m - 1) * p

Z = Zm + Z + C

editar

A continuación se muestra una serie de fractales iterando las diferentes potencias de Z = Zm + Z + C, según el método de Mandelbrot.

Z = Zm - Z + C

editar

A continuación se muestra una serie de fractales iterando las diferentes potencias de Z = Zm - Z + C, según el método de Mandelbrot.

Z = Zm + 1 / Cp

editar

También se puede transformar cada punto del plano complejo, de acuerdo a una función arbitraria, antes de ser sumado a la función iterativa, según la siguiente ecuación Z = Zm + F(C) . Veamos que pasa cuando la transformación es del tipo:F(C) = 1 / C

Ejemplos de fractales del tipo Mandelbrot: Z = Zm + 1/C, donde cada punto C del plano complejo se transforma en 1 / C, antes de entrar en la iteración de la potencia de Z.
Zo = (0,0i). El número de vértices es V = (m - 1)


Pero, qué pasa cuándo Z = Zm + (1 / C2) ?. Pues algo muy parecido a lo que veíamos antes, ahora el número de vértices es V = (m - 1) * p




Integrando en el mismo fractal una función de C y su inversa Z = Zm + C i Z = Zm + 1/C

editar

La zona en color BLANCO intenso es el área de la intersección de los 2 sets.

Z = ( Zm / Cm ) + C

editar

Z = Zm + C + Cp + 1/ C + 1/ Cq

editar

También podemos añadir más sumandos a la función Zm, combinando C, Cp, 1/C y 1/Cq en grupos de 2, 3 o 4, veamos que sucede si agrupamos C2, 1/C y 1/C2 de 2,3 o 4 formas ..:


A continuación más combinaciones con otros exponentes:

Z = Zm + polinomios de C

editar

Podemos combinar diferentes potencias de C y/o Z sumándolas a Zm , veamos qué sucede:

El caso de la función: Z=Z2 + 1 /(Cm-1)

editar

Z = Zm + polinomios mixtos de C i Z

editar

Podemos sumar a Zm polinomios mixtos de C i Z , veamos qué sucede:

Z = Z2 + C/ (Z2 + k)

editar

Z = Zm + Cp/Zq + C

editar

Z= [(Zm+C-1) / (m*Zm-1+C- m)]2

editar

Z= [(Z + Cm-1) / Cm]2

editar

Z= [(Z + Cm-1) / Cm]3

editar

Z= [(Z + Cm+1) / (Cm - 1)]2

editar

Z= [(Z + Cm-1) / (Cm + 1)]2

editar

Otras combinaciones de Z y C

editar

Más funciones de variable compleja

editar

Pero existe una amplia variedad de funciones, en el dominio de los números complejos, que pueden ser iteradas según el método de Mandelbrot.
Voy a citar aquí algunos ejemplos, explicitando la parte real y la imaginaria:

Exp(Z) = [ Exp(x) * Cos(x), Exp(x) * Sin(y)i ]
Sin(Z) = [ Sin(x) * ((Exp(y) + Exp(-y)) / 2), Cos(x) * ((Exp(y) - Exp(-y)) / 2)i ]
Cos(Z) = [ Cos(x) * ((Exp(y) + Exp(-y)) / 2) , -Sin(x) * ((Exp(y) - Exp(-y)) / 2)i ]
SinH(Z) = [ Cos(y) * ((Exp(x) - Exp(-x)) / 2) , Sin(Y) * ((Exp(x) + Exp(-x)) / 2)i ]
CosH(Z) = [ Cos(y) * ((Exp(x) + Exp(-x)) / 2) , Sin(y) * ((Exp(x) - Exp(-x)) / 2)i ]
LN(Z) = [ 0.5 * Log(x * x + y * y) , Atn(y / x)i ]
SQR(Z) = [ (x * x + y * y)^0.25 * Cos(0.5 * Atn(y/x)) , (x * x + y * y)^0.25 * Sin(0.5 * Atn(y/x)) i ]
ATN(Z) = [PI / 4 - (1 / 2) * Atn((1 - x^2 - y^2) / (2 * x)), -(1 / 4) * Log((1 - x^2 - y^2) ^2 + 4 * x^2) + (1 / 2) * Log((1 + y) ^2 + x^2) i]


Z = Zm + F(C)

editar

A continuación algunos ejemplos de fractales por iteración de Z2, pero transformando C según las funciones descritas anteriormente:

Fractales por iteración de Exp(Z)

editar

Esta función se descompone en una parte real y otra imaginaria: Exp(Z) = [ Exp(x) * Cos(y), Exp(x) * Sin(y)i ]
Puede ser utilizada como función iterativa o como función transformadora de C = (Cx,Cyi), o simultáneamente:

Como función iterativa

editar

Como función transformadora de C

editar

Como función iterativa i transformadora de C, simultáneamente

editar

El caso de la función Z = Exp[(Z2 + k * Z) / F(Cm)]

editar

Esta función es muy sensible a Zo, y también al coeficiente (k) que multiplica a Z. Veamos algunos ejemplos interesantes:

El caso de la función Zn+1 = Exp(Zn / C m)

editar


El caso de la función Zn+1 = Exp(Zn / C m) + C p

editar

El caso de la función Zn+1 = Exp(Znp / C p)

editar


El caso de la función Zn+1 = Znq * Exp(Zn / C p) + C

editar

El caso de la función Zn+1 = Exp[ Zn2 / (C m + C p) ]

editar

Aparece un número de lóbulos centrales = m, y un número de aristas exteriores = p, siendo m<p.


El caso de la función Zn+1 = Znm * Exp[ Cos(Zn)] + 1/C

editar

Aparecen un número de aristas = m.

Fractales per iteración de Sin(Z)

editar

Esta función se descompone en una parte real y otra imaginaria: Sin(Z) = [ Sin(x) * ((Exp(y) + Exp(-y)) / 2), Cos(x) * ((Exp(y) - Exp(-y)) / 2)i ]
Puede ser utilizada como función iterativa o como función transformadora de los puntos C = (Cx,Cyi), simultáneamente:

Como función iterativa

editar

Como función transformadora de C

editar


Como función iterativa y transformadora de C, simultáneamente

editar

El caso de la función Zn+1 = Sin(Zn * C m)

editar

El caso de la función Zn+1 = Sin(Zn / C m)

editar

Fractales por iteración de Cos(Z)

editar

Esta función se descompone en una parte real y otra imaginaria: ' Cos(Z) = [ Cos(x)*((Exp(y)+Exp(-y)) / 2), -Sin(x)*((Exp(y)-Exp(-y))/2)i ]
Puede ser utilizada como función iterativa o como función transformadora de C = (Cx,Cyi), o simultáneamente

Como función iterativa

editar

Como función transformadora de C

editar

Como función iterativa y transformadora de C, simultáneamente

editar

El caso de la función Zn+1 = Cos(Zn * C m)

editar


El caso de la función Zn+1 = Cos(Zn/C m)

editar


Fractales por iteración de SinH(Z)

editar

Esta función se descompone en una parte real y otra imaginaria: SinH(Z) = [ Cos(y) * ((Exp(x) - Exp(-x)) / 2) , Sin(Y) * ((Exp(x) + Exp(-x)) / 2)i ]
Puede ser utilizada como función iterativa o como función transformadora de C = (Cx,Cyi), o simultáneamente:

Como función iterativa

editar

Como función transformadora de C

editar


Como función iterativa i transformadora de C, simultáneamente

editar



Fractales por iteración de CosH(Z)

editar

Esta función se descompone en una parte real y otra imaginaria: CosH(Z) = [ Cos(y) * ((Exp(x) + Exp(-x)) / 2) , Sin(y) * ((Exp(x) - Exp(-x)) / 2)i ]
Puede ser utilizada como función iterativa o como función transformadora de C = (Cx,Cyi), o simultáneamente:

Como función iterativa

editar

Fractales por iteración de combinaciones de diferentes funciones de Z

editar

Más fractales según el método de Mandelbrot

editar

Aquí se muestra un ejemplo de iteración de dos funciones F(X) y F(Y), por adición de cada uno de los puntos del plano C(X,Y), y la introducción de una tercera función F(Z) que desequilibra el punto de convergencia.
Xn+1 = Xn - Sin(Yn) + C(X) .. Yn+1 = Yn - Sin( Xn) + C(Y) .. Zn+1 = Zn - Cos( Xn + Yn)

Referencias

editar
  1. Barnsley, M. Fractals everywhere.Academic Press Inc, 1988. ISBN 0-12-079062-9. (Cap 5)