Unlimited disk space/traffic/domains
1-click app installer, $9.99/month
Free Control Panel, full root access
Virtuozzo Containers, $25.00/month
Unlimited faxes, no fees
dedicated phone number
Reseller hosting services, domains,
vps, dedicated servers. Join free!
Variaciones de Mandelbrot Por Ariel S.
Como vimos anteriormente el conjunto de Mandelbrot está definido por la sucesión dada por
![]()
O sea, estamos utilizando la función
definida
como
para todo
Lo que se puede hacer para obtener otros conjuntos
similares al de Mandelbrot es modificar la función
por ejemplo cambiando las potencias a las cuales
están elevadas los valores de
Podríamos ver como son las imagenes resultantes de
aplicar la función
definida
como
para todo
donde
En este
caso la sucesión de puntos quedará como
Estamos entonces considerando los siguientes conjuntos
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
Aquí algunas vistas obtenidas para diferentes valore de
las potencias
y
![]() |
El caso clásico, r=2 , s=1
![]() |
Con r=3 , s=1
![]() |
Con r=4 , s=1
![]() |
Con r=6 , s=1
![]() |
Con r=2 , s=2
![]() |
Con r=4 , s=3
Dejá un comentario, sugerencia u opinión