Variaciones de Mandelbrot       Por Ariel S.

Como vimos anteriormente el conjunto de Mandelbrot está definido por la sucesión dada por

MATH

O sea, estamos utilizando la función MATH definida como $f_{z}(z)=z^{2}+z$ para todo $z\in \U{2102} .$

Lo que se puede hacer para obtener otros conjuntos similares al de Mandelbrot es modificar la función $f$ por ejemplo cambiando las potencias a las cuales están elevadas los valores de $z.$

Podríamos ver como son las imagenes resultantes de aplicar la función MATH definida como MATH para todo $z\in \U{2102} $ donde MATH En este caso la sucesión de puntos quedará como

MATH

Estamos entonces considerando los siguientes conjuntos

MATH

Entonces se considerarán los gráficos resultantes de asignar a cada punto del plano complejo el valor correspondiente a la cantidad de iteraciones necesarias para salir del bucle que tiene como condición que la sucesión asociada al punto no tenga módulo mayor a 2, o que se supere el número máximo de términos permitidos (número máximo de iteraciones).

El código es muy similar al que genera al conjunto de Mandelbrot clásico




int MandelbrotPot(complejo z,int r, int s, int itera_max)
{    complejo w;
     int k=0;
     w=z;
     float m=Cmod(w);
     while ((m<=2) && (k<=itera_max))
     {    w=Cnpot(w,r);
          w=Csuma(w,Cnpot(z,s));
          m=Cmod(w);
          k++;
     }
     return(k);
}

donde para calcular la n-ésima potencia de un número complejo, donde n es un número entero

complejo Cnpot(complejo a, int n)
{    complejo c, u;
     bool nNegativo;
     c = a;
     if (n < 0) {
     nNegativo = true; n = -n;
     };
     if (n == 0) {
     c.x = 1; c.y = 0;
     }
     else if (n == 1) {c = a;}
     else {
     for(int k = 1; k < n; k++)
     {c = Cprod(a, c);}
     }
     if (nNegativo == true){
     u.x = 1;
     u.y = 0;
     Cdiv(u, c);
     }
     return(c);
}

Para calcular la suma de un número complejo y un número real

complejo CsumaR(complejo a, double r)
{    complejo c;
     c.x = a.x + r;
     c.y = a.y;
     return(c);
}




Para calcular la norma o módulo del complejo

double Cmod(complejo a)
{    double m = a.x*a.x + a.y*a.y;
     return(m);
}

Y particularmen te se tiene que $M^{2,1}(z)=M(z).$

Aquí algunas vistas obtenidas para diferentes valore de las potencias $r$ y $s.$

mp1.jpg (45712 bytes)

El caso clásico, r=2 , s=1

mp2.jpg (45192 bytes)

Con r=3 , s=1

mp3.jpg (50863 bytes)

Con r=4 , s=1

mp4.jpg (45166 bytes)

Con r=6 , s=1

mp5.jpg (35033 bytes)

Con r=2 , s=2

mp6.jpg (38104 bytes)

Con r=4 , s=3

 

Dejá un comentario, sugerencia u opinión