Fractales en Matlab



En esta ocasión hablaremos un poco acerca de fractales sencillos y de cómo podemos usar Matlab para crearlos. Primero sería bueno definir lo que es un Fractal, un Fractal es un objeto semi-geométrico cuya estructura básica, fragmentada o irregular, se repite a diferentes escalas. Es decir, si se aumenta cualquier zona de la misma un número cualquiera de veces seguirá pareciendo la misma figura.

Para comenzar, un ejemplo simple de un fractal creado mediante números reales es el triángulo de Sierpinski. Sólo se necesitan 3 pasos para crear éste fractal: Dibújese un triángulo equilátero ABC. Hállense los puntos medios de cada lado y conéctense para formar tres nuevas líneas dentro del triángulo original. Repetir para cada uno de los triángulos resultantes que estén “cabeza arriba”.

Para generar el triángulo de Sierpinski mediante Matlab se requiere el siguiente código:

function sierpinski (a,b,c,nivel)
hold on;
plot(a(1),a(2),'.');
plot(b(1),b(2),'.');
plot(c(1),c(2),'.');
if nivel>0
p1=[(a(1)+c(1))/2 (a(2)+c(2))/2];
p2=[(a(1)+b(1))/2 (a(2)+b(2))/2];
p3=[(c(1)+b(1))/2 (c(2)+b(2))/2];
sierpinski(a,p2,p1,nivel-1);
sierpinski(p1,p3,c,nivel-1);
sierpinski(p2,b,p3,nivel-1);
end

Ahora veamos un fractal un poco más complicado. Representaremos el conjunto de Julia, el cuál se encarga de analizar la función fc(z)=z2+c para distintos números complejos c y, para un número c fijo, con distintos valores de z. Para poder visualizar este conjunto en Matlab, con un valor de c = 0,27334 - 0.00742i, solamente se requiere el siguiente script:

puntos=200;
puntosx=linspace(-2.1,0.9,puntos);
puntosy=linspace(-1.5,1.5,puntos);
[X,Y]=meshgrid(puntosx,puntosy);
c=0.27334-0.00742*i;
Z=X+Y*i;
iteraciones=20;
for k=1:iteraciones
Z=Z.^2+c;
W=exp(-abs(Z));
end
pcolor(W);
shading flat;

Para obtener información más detallada de este tema y una gran cantidad de ejemplos, sólo visita las pags:

1 comentarios:

rush dijo...
5 de mayo de 2019, 14:04

bueno

Publicar un comentario