Ir al contenido

Desarrollo de fractales mediante el método de Mandelbrot

De Wikipedia, la enciclopedia libre

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)