Fractal Dragon de Heigway - MatLab

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 25

FRACTALES

Se analizara de forma grca el origen del fractal, se crearan las correspondientes matrices de transformacin que dan origen al mismo y posteriormente se implementara una iteracin para el calculo de dicho fractal de forma computacional y
posteriormente su visualizacin .
Deiner L. Zapata Silva
[email protected]

ndice

1. CONOCIMIENTOS PREVIOS

1.1. Rotacin . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1. Rotacin con respecto al origen . . . . . . . .
1.1.2. Rotacin con respecto a un punto P (x, y) . .
1.2. Escalamiento de un segmento de recta con razn 1 : r

2. DRAGN DE HEIGHWAY

2.1. Anlisis . . . . . . . . . . . .
2.1.1. Construccin . . . . .
2.2. Implementacin con MatLab
2.2.1. Ejecutando el cdigo .

3. TRIANGULO DE SIERPINSKI

3.1. Anlisis . . . . . . . . . . . .
3.1.1. Construccin . . . . .
3.2. Implementacin en MatLab .
3.2.1. Ejecutando el Cdigo

4. CURVA DE KOCH

4.1. Anlisis . . . . . . . . . . . .
4.1.1. Construccin . . . . .
4.2. Implementacin en MatLab .
4.2.1. Ejecutando el Cdigo

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

5. FRACTALES ITERANDO POTENCIAS DE Z

5.1. Fractales Tipo MandelBrot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


5.2. Fractales Tipo Julia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Fractales por el Mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . .
1

3
3
3
4
4

6
6
8
11

13

13
13
15
17

18

18
18
19
21

22

22
22
23

Universidad Nacional de Ingenieria

Ing.Mecatronica

6. CARACTERSTICAS DE UN FRACTAL

6.1. Autosimilitud . . . . . . . . . . . . . . . . . . . . . .
6.2. Dimensin fractal y dimensin Hausdor-Besicovitch
6.2.1. Dimensin Fractal DF  . . . . . . . . . . . .
6.2.2. Dimensin de Hausdor-Besicovitch DH  . .
6.2.3. Dimensin de fractales producidos por un IFS
6.3. Denicin por algoritmos recursivos . . . . . . . . . .

Deiner L.Zapata Silva

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

24

24
24
24
24
25
25

Universidad Nacional de Ingenieria

1.

Ing.Mecatronica

CONOCIMIENTOS PREVIOS

1.1. Rotacin
1.1.1. Rotacin con respecto al origen
Si tenemos un punto Q(x, y) y queremos trasladarla a un nuevo eje de coordenadas rotado
Q0 (x0 , y 0 ), tal como se muestra en la gura 1.1:

Figura 1.1: Rotacin del eje de coordenadas.


Tenemos que hallar el valor del nuevo punto (x0 , y 0 ) en funcin de f (x, y, ). Para y 0 tenemos:
y = y 0 sec () + x tan ()
y cos () = y 0 + x sin ()
y 0 = x sin () + y cos ()

De la misma forma, para x0 :


x0 = x sec () + y 0 tan ()
x0 = x sec () + (x sin () + y cos ()) tan ()
x0 = x sec () x sin () tan () + y cos () tan ()
x0 = x

1 sin2 ()
+ y sin ()
cos ()

x0 = x cos () + y sin ()

Expresado en forma matricial, tenemos:


 0 
  
x
cos () sin ()
x
=

y0
sin () cos ()
y

En resumen se dene la funcin Rot (Q, ), que devuelve el punto Q rotado grados con
respecto al origen de coordenadas:



cos () sin ()
Rot (Q, ) =
Q
sin () cos ()

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria

Ing.Mecatronica

1.1.2. Rotacin con respecto a un punto P (x, y)


Para rotar un punto Q (x, y) con respecto a un punto cualquiera P (x, y), tenemos que trasladar
el eje de coordenadas hacia el punto P y luego realizar la rotacin respectiva, para nalmente
realizar de nuevo otra traslacin y dejar el eje de coordenadas donde estaba originalmente.

Figura 1.2: Rotacin respecto a un punto P (x, y)


Pasos a seguir para realizar la rotacin respecto a un punto cualquiera P (x, y)
1. Traslacin: Q0 = Q P
2. Rotacin: Q00 = Rot (Q0 , )
3. Traslacin: Q000 = Q00 + P
En resumen se dene la funcin Rotp (Q, P, ) que devuelve el punto Q rotado grados respecto
al punto P :
Rotp (Q, P, ) = Rot(Q P, ) + P

1.2. Escalamiento de un segmento de recta con razn 1 : r


Sea un segmento de recta denida por dos puntos S = {Q1 , Q2 } y queremos encontrar un
punto P tal que divida a S en dos partes tal que Q11Q2 = Qr1 P , tal como se muestra en la gura
1.3:

Figura 1.3: Escalamiento de un segmento de recta con razn 1 : r


Q1 Q2
Q1 P
=
1
r
Q2 Q1 =

P Q1
r

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria

Ing.Mecatronica

P = Q1 + r (Q2 Q1 )

En resumen se dene la funcin Esc (Q1, Q2 , r) que devuelve un punto Q2 , escalado con respecto
al segmento Q1 Q2 una razn r, donde Q1 es jo:
Esc (Q1 , Q2 , r) = Q1 + r (Q2 Q1 )

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria

2.

Ing.Mecatronica

DRAGN DE HEIGHWAY

2.1. Anlisis
Este conjunto se dene como el lmite H de la sucesin de polgonos Hn dada por la Figura
. Este fue descubierto por el fsico John E. Heigway que junto con Bruce A. Banks y William
Harter estudiaron algunas propiedades de los polgonos aproximantes, entre ellas el hecho de que
stos nunca se cruzan.

Figura 2.1: Dragn de Heighway (14 iteraciones)

2.1.1. Construccin
Primera iteracin (k = 1)

Sean Q1 y Q2 los puntos de la gura. considere Q2 como el origen


de coordenadas, as, el punto Q1 tiene coordenadas (0, 1/2), el segmento Q1 Q2 lo dividimos en
dos segmentos Q01 Q02 y Q02 Q03 .

Figura 2.2: Primera iteracin


El valor de los nuevos puntos esta dado por:

Q1 = Q1
Q02 = RotH (Q1 , Q2 , +45)

0
Q3 = Q2

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria

Ing.Mecatronica

Donde RotH (Q1 , Q2 , +45) es una rotacin especial, ya que antes de rotar se escala el segmento
Q1 Q2 con razn 1 : cos (45), esto se realiza con el n de que el nuevo punto encontrado forme
un triangulo rectngulo notable 45,45,90 y luego aplicamos una rotacin con respecto a Q2 de
grados.
A continuacin se detallan los pasos:
1. Escalamiento: P1 = Esc (Q2 , Q1 , cos (45))
2. Rotacin de P1 45 con respecto a Q2 : Rotp (P1 , Q2 , cos (+45))
En resumen la funcin RotH (Q1 , Q2 , +45), queda denida por:
RotH (Q1 , Q2 , ) = Rotp (Esc (Q2 , Q1 , cos ()) , Q2 , cos ())

Segunda Iteracin (k = 2)

De forma similar a la primera iteracin, generamos 4 segmentos


ms a partir de los 2 que ya tenemos, tal como se muestra en la gura 2.3.

Figura 2.3: Segunda Iteracin


El valor de los nuevos puntos esta dado por:

Q1

Q2
Q03

Q04

0
Q5

Tercera Iteracin

=
=
=
=
=

Q1
RotH (Q1 , Q2 , +45)
Q2
RotH (Q2 , Q3 , 45)
Q3

(k = 3) Ahora tenemos 5 puntos y 4 Segmentos, con estos segmentos

generamos otros 8 segmentos mas para los cuales debemos encontrar 9 puntos, de los cuales ya
tenemos 5.

Figura 2.4: Tercera Iteracin


El valor de los nuevos puntos es:
Deiner L.Zapata Silva

Universidad Nacional de Ingenieria

Ing.Mecatronica

Q01

Q02

Q03

Q4
Q05

Q06

Q07

Q08

0
Q9

=
=
=
=
=
=
=
=
=

Q1
RotH (Q1 , Q2 , +45)
Q2
RotH (Q2 , Q3 , 45)
Q3
RotH (Q3 , Q4 , +45)
Q4
RotH (Q4 , Q5 , 45)
Q5

Generalizando

Como se vio anteriormente los puntos generados siguen un patrn, el cual


expresado en trminos generales es tal como se muestra a continuacin:
( 0
Q2n1
Q02n

= Qn


n+1

= RotH Qn , Qn+1 , (1)



 , para n = 1, ..., 2k1 + 1
(+45)

2.2. Implementacin con MatLab


Ahora pondremos las ecuaciones generalizadas en un cdigo de MatLab, y procederemos a
plotear respectivamente.
Primero denimos las funciones de rotacin y escalamiento
Algoritmo 1

Funciones de rotacin y escalamiento

% % Funciones de rotacin y escalamiento


% Rotacin con respecto al origen
R=@(ang)([ cos(ang*pi/180), sin(ang*pi/180);
-sin(ang*pi/180), cos(ang*pi/180)] );
Rot=@(V,ang)( V * R(ang) );
% Rotacin con respecto a un punto P(fijo)
Rotp=@(V,P,ang)( Rot((V-P),ang) + P );
% Punto en proporcion "cos(ang)" entre dos puntos: Q1(fijo)-P-Q2
P=@(Q1,Q2,ang)( Q1 + (Q2-Q1)*cos(ang*pi/180) );
% Rotacin Heingway
RotH=@(Qn1,Qn2,ang)( Rotp( P(Qn2,Qn1,ang) ,Qn2,ang) );

Despus ejecutamos iterativamente.

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria


Algoritmo 2

Ing.Mecatronica

Funcion recursiva

% % Funcion recursiva
itera=14;
ang=45;
Q=[0 , 0 ;
0 , 1/2];
for h = 1:itera
AUX=[];
for n = 1:size(Q,1)
n
AUX(2*n-1,:) = Q(n,:);
if(n=size(Q,1))
AUX(2*n,:) = RotH( Q(n,:) , Q(n+1,:) , (-1)(n+1)*(ang) );
end
end
Q=AUX;
clear AUX;
end

Finalmente ploteamos, recorriendo todos los puntos de la matrizQ en orden.


Algoritmo 3

Ploteo de los segmentos

% % Ploteo
clc;
disp('Nmero de iteraciones:');
disp(itera);
disp('Nmero de puntos:');
disp(2itera+1);
disp('Nmero de segmentos:');
disp(2itera);
disp('Ploteando el fractal');
for n = 1:size(Q,1)-1
linea([Q(n,:) , Q(n+1,:)] , 'b');
end
title('Dragon de Heighway')

La funcin linea, dibuja un segmento Q1 Q2 si la entrada es de la forma [Q1x , Q1y , Q2x , Q2y ] o
dibuja un punto * si la entrada es de la forma [Q1x , Q2y ]. A continuacin se muestra el cdigo
implementado en MatLab.

Deiner L.Zapata Silva

Universidad Nacional de Ingenieria


Algoritmo 4

Ing.Mecatronica

Funcion linea

function [ ] = linea( V , color)


% Funcion que dibuja un segmento si V es de la forma [V1x,V1y,V2x,V2y], o
% un punto "*" si V es de la forma [V1x,V1y]
if (size(V,1)==1 && size(V,2)==2)
plot(V(1,1),V(1,2), color);
else if (size(V,1)==2 && size(V,2)==1)
plot(V(1,1),V(2,1), color);
else
line( [V(1) V(3)], [V(2) V(4)],'color',color);
end
end

Deiner L.Zapata Silva

10

Universidad Nacional de Ingenieria

Ing.Mecatronica

2.2.1. Ejecutando el cdigo


A continuacin se muestran algunas grcas obtenidas luego de algunas iteraciones.

(a) 3 iteraciones

(b) 5 iteraciones

(c) 10 Iteraciones

(d) 14 iteraciones

Figura 2.5: Dragn de Heighway para diferente valor de iteraciones


Se noto un retardo por parte de la computadora a partir de 14 iteraciones ya que conforme
se van incrementando las iteraciones se necesitaran ms recursos computacionales y pueden
tardar varios minutos. Es por ello que muchas veces se hacen los clculos y se almacenan
para despus ser mostrados pausadamente ya sea mediante un vdeo o ser ampliados a
pedido del usuario.
Si cambiamos el angulo de +45 por +135, entonces la grca simplemente sufre una
reexin horizontal, tal como se muestra en la gura 2.6.

(a) Angulo +45

(b) Angulo +135

Figura 2.6: Dragn de Heighway para diferentes ngulos (14 Iteraciones)

Deiner L.Zapata Silva

11

Universidad Nacional de Ingenieria

Ing.Mecatronica

Tal como se observa en todas las guras, el fractal desde la primera iteracin hasta la
iteracin k siempre va a tener dos puntos invariantes, estos son puntos extremos del
segmento de recta inicial (Para las guras anteriores es Q = [0, 0] [0, 0.5]).
Basados en esta observacin se podra generar dos fractales de tal forma que estos coincidan
como dos piezas de rompecabezas, tal como se muestra en la gura 2.7.

Figura 2.7: Dos fractales con diferentes puntos iniciales.

Deiner L.Zapata Silva

12

Universidad Nacional de Ingenieria

3.

Ing.Mecatronica

TRIANGULO DE SIERPINSKI

3.1. Anlisis
El tringulo de Sierpinski es un conjunto plano que puede ser obtenido por medios iterados
de muchas formas, una de ellas es generada a partir de un tringulo equiltero, removiendo una
cuarta parte de la gura que queda en el paso anterior. Otra forma es a partir de un conjunto
compacto y tres semejanzas del plano; una variacin de sta es usando solamente un punto como
conjunto inicial, sta construccin presenta la ventaja de ser ms econmica que otras, pues
representa a este conjunto como el mbito de una sucesin en R2 , por lo que puede aproximarse
con la exactitud deseada por medio de un conjunto nito de puntos. No debe perderse de vista la
utilidad que esto conlleva para representar objetos un poco ms naturales, pues este conjunto se
usa tambin como una proyeccin en el plano de cadenas de nuclotidos en el anlisis de secuencias
de ADN, dicha representacin se llama Representacin del Juego del Caos (CGR por sus siglas
en ingls) que permite una mejor comprensin de hilera de nuclotidos de ADN. Jerey en 1990
arma que este conjunto ha revelado visualmente estructuras previamente desconocidas

3.1.1. Construccin
Sea S0 un tringulo equiltero de lado 1 incluyendo su frontera. nase los puntos medios
de lado, de esta forma S0 queda dividido en 4 tringulos congruentes de lado 21 , elimine el
interior del tringulo central, el que est invertido, y sea S1 el conjunto formado. Proceda de la
misma forma con los tres tringulos restantes para formar a S2 . continuando con este proceso se
obtiene una sucesin decreciente anidad S0 S1 S2 ... de subconjuntos del plano. Al conjunto
S = lmn Sn =
n=0 Sn se le llama el tringulo de Sierpinski.

Primera Iteracin (k = 1)

Se partir con un conjunto inicial de 3 puntos S0 = {Q1 , Q2 , Q3 } y


se obtendrn otros tres puntos a partir de los mismo, tal como se muestra en la gura3.1.

Figura 3.1: Primera iteracin.


Donde los nuevos tres puntos estn dados por:

Q12
Q23

Q13

=
=
=

Q1 +Q2
2
Q2 +Q3
2
Q1 +Q3
2

Deniendo una funcin f cuyas entradas son 3 puntos y cuya salida es un vector de 6 puntos,
los 3 ingresados y los 3 nuevos puntos calculados.

Deiner L.Zapata Silva

13

Universidad Nacional de Ingenieria

Ing.Mecatronica

Q1 + Q2
Q2 + Q3
Q1 + Q3
V = f ([Q1 , Q2 , Q3 ]) = Q1 ,
, Q2 ,
, Q3 ,
2
2
2

Para hacer esto mas sencillo desde el punto computacional, ordenamos los puntos en conjuntos
de tres, los cuales corresponden a un tringulo en particular.

Q1 Q12 Q13
= Q12 Q2 Q23
Q13 Q23 Q3

Q(1)

Deniendo una funcin F cuya entrada sean los tres puntos {Q1 , Q2 , Q3 } y cuya salida sean los
seis puntos, ordenados en grupos de tres correspondientes a cada tringulo, listo para la siguiente
iteracin.

V (1) V (2) V (6)


F ([Q1 , Q2 , Q3 ]) = V (2) V (3) V (4) , donde V = f ([Q1 , Q2 , Q3 ])
V (6) V (4) V (5)

Segunda Iteracin (k = 2)

Ahora a partir de estos 6 puntos, generamos otros 9 puntos adicionales, tres puntos por cada tringulo, sin tomar en cuenta el triangulo central.

Figura 3.2: Segunda iteracin


Los nueve puntos nuevos se calculan tomando las las de la matriz Q(1) e ingresar los tres
puntos a la funcin denida en la primera iteracin, obteniendo los tres nuevos puntos ordenados
en tres grupos de tres punto cada uno.
Q(2)

F Q(1) (la 1)


= F Q(1) (la 2)
F Q(1) (la 3)

Donde la dimensin de Q(2) es 9x3, ordenados en grupos de tres puntos listos para ser ingresados en la siguiente iteracin.

Tercera Iteracin (k = 3)

Los nuevos puntos son fciles de calcular, ya que la matriz Q(2) nos
da los puntos ordenados en conjuntos de tres, listos para ingresar a la funcin ya denida con
anterioridad, por lo tanto Q(3) queda denido como:

Deiner L.Zapata Silva

14

Universidad Nacional de Ingenieria

Ing.Mecatronica

Q(3)

F
F

= F

F
F

Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la
Q(2) (la

1)
2)

3)

4)

5 )

6 )

7 )

8 )
9)


3.2. Implementacin en MatLab


En la implementacin de MatLab se proceder a ingresar las dos funciones f y F anteriormente descritas, as como tambin se integrar dos bucles for, uno que se encargara de ejecutar
en cada iteracin y otro que recorrer las las de Q.
Algoritmo 5

Funciones annimas.

% % Fractal: Triangulo de Sierpinski S.


clc; clear all; close all;
% % Definiendo las Funciones
f=@(V)([ V(1) , (V(1)+V(2))/2 , V(2) , (V(2)+V(3))/2 , V(3) , (V(3)+V(1))/2 ]);
F=@(V)([ V(1) V(2) V(6) ;
V(2) V(3) V(4) ;
V(6) V(4) V(5)]);

En el Algoritmo 5 se ha denido P como un conjunto de tres puntos (Primer tringulo),


posteriormente se denen dos vectores Qx y Qy , los cuales ingresaran a las funciones F ya
denidas con anterioridad. En el vector P nicamente se agregaran los nuevos puntos que
devuelve la funcin f. Esto con la nica razn de que a la hora de plotear nicamente se pasen
el vector P conformado por los puntos y no las matrices Qx y Qy .

Deiner L.Zapata Silva

15

Universidad Nacional de Ingenieria


Algoritmo 6

Ing.Mecatronica

Funcin recursiva

% % Funcion recursiva
itera=7;
P=[ 0
0;
1
0;
.5 sqrt(3) ];

Qx=[ P(:,1)' ];
Qy=[ P(:,2)' ];
for n = 1:itera
AUXx = []; AUXy = [];
for i = 1:size(Qx,1)
[n,i]
Vx=f(Qx(i,:)); Vy=f(Qy(i,:));
P=[
P ;
Vx(2) Vy(2) ;
Vx(4) Vy(4) ;
Vx(6) Vy(6)];
Vx=F(Vx); Vy=F(Vy);
AUXx = [AUXx ; Vx];
AUXy = [AUXy ; Vy];
end
Qx = AUXx;Qy=AUXy;
clear AUXx AUXy;
end

Como ya se menciono nicamente se pasa el vector P con los puntos para que sean dibujados.
Algoritmo 7

Funcin para plotear.

% % Ploteo
disp('Nmero de iteraciones:');
disp(itera);
disp('Nmero de puntos:');
disp(size(P,1));
disp('Ploteando el fractal');
for i = 1:size(P,1)
linea(P(i,:),'.r')
hold on;
end
axis([0 1 0 sqrt(3)]);
title('Triangulo de Sierpinsky')

Deiner L.Zapata Silva

16

Universidad Nacional de Ingenieria

Ing.Mecatronica

3.2.1. Ejecutando el Cdigo


En la gura 3.3 muestran las grcas obtenidas para diferentes iteraciones.

(a) 3 Iteraciones

(b) 5 Iteraciones

(c) 7 Iteraciones

(d) 10 Iteraciones

Figura 3.3: Tringulo de Sierpinsky para diferentes iteraciones


A partir de 10 iteraciones la computadora se toma unos minutos para calcular los 8875 puntos
y mostrar la grca.

Deiner L.Zapata Silva

17

Universidad Nacional de Ingenieria

4.

Ing.Mecatronica

CURVA DE KOCH

4.1. Anlisis
Su forma mas conocida es el copo de nieve de Koch, fue inventada por el matemtico sueco
Helge Von Koch en 1906.

4.1.1. Construccin
Su construccin es sencilla, se parte de un segmento, se lo divide en tres partes iguales, se
reemplaza la parte central por dos partes de igual longitud haciendo un ngulo de /3 radianes
o 60 sexagesimales. Luego con los cuatro segmentos creados se procede de la misma manera,
dando 16 segmentos pequeos. Se procede as sucesivamente, sin nunca parar.

Primera Iteracin (k = 1)

Partimos de un segmento determinado por dos puntos {Q1 , Q2 } y


obtenemos 5 puntos {Q01 , Q02 , Q03 , Q04 , Q05 }

Figura 4.1: Curva de Koch - Primera Iteracin


Los puntos Q02 y Q04 simplemente se obtienes dividiendo el segmento en tres partes iguales, es
decir escalando la recta por 31 para hallar Q02 y por 32 para hallar Q04 , resumen tenemos:

Q01

Q0
2

Q04

Q0
5

= Q1
= Esc (Q1 , Q2 , 1/3)
= Esc (Q1 , Q2 , 2/3)
= Q2

Deniendo una funcin k, cuyas entradas son los puntos {Q01 , Q02 }y cuya salida es un arreglo
con 4 puntos equidistantes.
k (Q1 , Q2 ) =

Q001 , Q002 , Q003 , Q004






1
2
= Q1 , Esc Q1 , Q2 ,
, Esc Q1 , Q2 ,
, Q2
3
3

Hallar el punto Q03 , requerir hacer unos clculos adicionales, el cual se encuentra rotando 60
el punto Q02 con respecto al punto Q04 . .

Q03 = Rotp Q02 , Q04 , 60

En resumen se denir una funcin K, cuyas entradas es un arreglo con los 4 puntos que
devuelve la funcin k y cuya salidas es un arreglo con los 5 puntos buscados.
K ([Q1 , Q2 , Q3 , Q4 ]) = [Q1 , Q2 , Rotp (Q2 , Q3 , 60) , Q3 , Q4 ]

Deiner L.Zapata Silva

18

Universidad Nacional de Ingenieria

Ing.Mecatronica

Segunda Iteracin (k = 2)

Ahora tenemos 5 puntos, los cuales se tomarn dos a dos consecutivos que denen un segmento y se pasaran a la funcin recursiva, obteniendo 5 puntos por cada
par de puntos ingresados.

Figura 4.2: Curva de Koch - Segunda Iteracin (k = 2)

4.2. Implementacin en MatLab


Tal como se indico en el nalisis, se emplearan las funciones R, Rot, Rotp y ESC1,
dadas en la seccin de conocimientos previos. Adicionalmente se denir las funciones k y K
ya explicadas en la primera iteracin del Anlisis.
Algoritmo 8

Funciones annimas

% % Fractal: Curva de Koch


clc; clear all; close all;
% % Funciones de rotacin y escalamiento
% Rotacin con respecto al origen
R=@(ang)([ cos(ang*pi/180), sin(ang*pi/180);
-sin(ang*pi/180), cos(ang*pi/180)] );
Rot=@(V,ang)( R(ang)*V ); % V=[v1 , v2]';
% Rotacin con respecto a un punto P(fijo)
Rotp=@(V,P,ang)( Rot((V-P),ang) + P );
% Escalamiento con respecto a un punto
ESC1=@(Q1,Q2,r)([ Q1 + r.*(Q2-Q1) ]);
% % Funcion Generadora
k=@(Q1,Q2)([ Q1, ESC1(Q1,Q2,1/3), ESC1(Q1,Q2,2/3), Q2 ]);
K=@(kk)([ kk(:,1) , kk(:,2) , Rotp(kk(:,2),kk(:,3),60), kk(:,3) ,kk(:,4) ]);

La parte iterativa toma los puntos dos a dos los ingresa a las funciones ya denidas para
obtener los nuevos puntos, los cuales sobrescriben a los ya existentes.

Deiner L.Zapata Silva

19

Universidad Nacional de Ingenieria


Algoritmo 9

Ing.Mecatronica

Parte iterativa

% % Funcin iterativa
itera = 6;
Q1 =[0,0]';
Q2 =[1,0]';
Q = [Q1,Q2];
for n = 1:itera
clc;n
AUX = [];
for nn = 1:size(Q,2)-1
kk = k(Q(:,nn),Q(:,nn+1));
AUX = [ AUX , K(kk) ];
end
Q = AUX;
end
disp('Ploteando el fractal');
% % Ploteo
for n = 1:size(Q,2)-1
linea([Q(:,n),Q(:,n+1)],'red');
end
title('Curva de Koch');

Ntese que Q1 = [0, 0]0 y Q2 = [0, 1]0 , son puntos, por lo tanto se dene con dos variables x
y y, ya que estamos trabajando en el plano.
Para dibujar simplemente extraemos los puntos dos a dos y ploteamos un segmente, tal como
se muestra a continuacin
Algoritmo 10

Funcin de Ploteo

disp('Ploteando el fractal');
% % Ploteo
for n = 1:size(Q,2)-1
linea([Q(:,n),Q(:,n+1)],'red');
end
title('Curva de Koch');

Deiner L.Zapata Silva

20

Universidad Nacional de Ingenieria

Ing.Mecatronica

4.2.1. Ejecutando el Cdigo


En la gura muestran las grcas obtenidas para diferentes iteraciones.

(a) 1 Iteraciones

(b) 3 Iteraciones

(c) 5 Iteraciones

(d) 7 Iteraciones

Figura 4.3: Curva de Koch para diferentes iteraciones

Deiner L.Zapata Silva

21

Universidad Nacional de Ingenieria

5.

Ing.Mecatronica

FRACTALES ITERANDO POTENCIAS DE Z

5.1. Fractales Tipo MandelBrot


A continuacin se muestra una serie de fractales de las diferentes potencias de Z = Z m + C,
segn el metodo de Mandelbrot. Todos los puntos del plano complejo C = cx +j cy son iterados
por adicin a la funcin correspondiente. Todas las iteraciones parten de los puntos x = 0 y
j y = 0. Cuando la iteracin converge se colorea de un amarillo plido. La divergencia a
innito es coloreada mediante un patrn cromtico desde el negro al azul. El fractal derivado de
la funcin Z = Z 2 + C se denomina conjunto de Mandelbrot.
Tipo Z = Z m + C
Z=

Z2

+C

Z = Z3 + C
Z = Z4 + C

Z = Z2 +
Z = Z3 +
Z = Z4 +
Z = Z5 +
Z=

Z6

Z=

Z7

1
C

1
C
1
C
1
C
1
C
1
C
1
C,

etc

Ms fractales segn el mtodo de Mandelbrot


Z=

Z2

C6

Z 2 1.00001Z

C3

, Z0 =

Z = exp
(0, 0j)

Z 2 1.00001Z
C3

, Z0 =


Z = Sin Z C 2 , Z0 = (1, 0j)

Z
, Z0 = (0, 0j)
Z = Cos C

Z = Cos Z C 3 , Z0 = (0, 0j)
 3
Z
, Z0 = (0, 0j)
Z = exp C
3

Z = exp CZ4 , Z0 = (0, 0j)

Z = Z 5 + C , etc.

Tipo Z = Z m +

Z = exp
(0, 0j)

1 , Z0 = (0, 0j)

Z = Cos (Z) + C1 , Z0 = (0, 0j)


 2 
Z = exp Z +Z
, Z0 = (1, 1j)
3
C

+ C , Z0 = (0, 0j)

Z = Z2 +

C2
Z 2 +C

Z = Z2 +

C2
C 4 +0.1

Z = Z2 +

C2
C 4 0.25

, Z0 = (0, 0j)
, Z0 = (0, 0j)

Z = Sinh (Z) , Z0 = (0, 1j)


Z = Sinh (Z) +
(0.90, 0.05j)

1
C

, Z0

Z = Sinh (Z) + C12 , Z0 = (0, 0j)


 2 
Z = exp C 5Z+C , Z0 = (0, 0j)

5.2. Fractales Tipo Julia


Todos los puntos del plano complejo Z = (x, jy) son iterados en la funcin correspondiente.
A todas las iteraciones se le aade una constante arbitraria C = (cx , j cy ) de tal modo que
la eleccin de la constante semilla determina de forma unvoca la forma y el color del fractal,
una vez ha sido denido el patrn cromtico. En los ejemplos mostrados a continuacin se ha
elegido una constante tal que solo produce divergencia, y se ha coloreado con el algoritmo de la
velocidad de escape.
Tipo Z = Z m + C

Z = Z 5 + C , C = (0.544, j0.000)

Z = Z 2 + C , C = (0.279, j0.000)
Z = Z 3 + C , C = (0.400, j0.000)
Z = Z 4 + C , C = (0.484, j0.000)

Z = Z 6 + C , C = (0.590, j0.000)
Z = Z 7 + C , C = (0.626, j0.000)

Tipo funcin exponencial

Deiner L.Zapata Silva

22

Universidad Nacional de Ingenieria

Ing.Mecatronica

Z = exp (Z) + C , C
(0.65, j0.00)

Z = exp Z 3 + C , C
(0.59, j0.00)

Z = exp Z 3 + C , C
(0.621, j0.00)

Z = Z 3 exp (Z) + C , C =
(0.33, j0.00)

Z = Z 4 exp (Z) + C , C =
(0.41, j0.00)

Z = Z exp (Z) + C , C
(0.04, j0.00)

Fractales tipo Julia de funciones complejas

Z = Z 2 exp (Z) + C , C =
(0.21, j0.00)

p
Z =
Sinh (Z 2 ) + C , C
(0.065, j0.122)
Z=

Z 2 +Z
ln(Z)

+ C , C = (0.268, j0.060)

5.3. Fractales por el Mtodo de Newton


El mtodo de Newton intenta encontrar por iteracin las races de la funcin F (Z) 1 = 0
Se itera la funcin F (Z) con cada punto del plano complejo (x + j y), siendo Z = x1 +
n)
j y1 hasta la convergencia de x1 + j y1 , segn la siguiente frmula: Zn+1 = Zn FF0(Z
(Zn ) , en
donde F 0 (Z)es la derivada. Se ha coloreado con el algoritmo de la velocidad de convergencia,
conceptualmente idntico al de la velocidad de escape y presenta similitudes con el Mtodo
de Julia. A continuacin se muestran algunos fractales Tipo Newton, de algunas funciones de
variable compleja:
Z 4 1 = 0 , Zn+1 =

4 +1
3Zn
3
4Zn

Z6 + Z3 1 = 0
Sin (Z) 1 = 0
Cosh (Z) 1 = 0

Deiner L.Zapata Silva

23

Universidad Nacional de Ingenieria

6.

Ing.Mecatronica

CARACTERSTICAS DE UN FRACTAL

6.1. Autosimilitud
Segn B.Mandelbrot, un objeto es autosimilar o autosemejante si sus partes tiene la misma
forma o estructura que el todo, aunque pueden presentarse a diferente escala y pueden estar
ligeramente deformadas.
Los fractales pueden presentarse en tres tipos de auto-similitud
Autosimilitud exacta

Este es el tipo mas restrictivo de auto-similitud: exige que el fractal parezca idntico a
diferentes escalas. A menudo la encontramos en fractales denidos por sistemas de funciones
iteradas (IFS).
Cuasi-autosimilitud

Exige que el fractal parezca aproximadamente idntico a diferentes escalas. Los fractales
de este tipo contienen copias menores y distorsionadas de s mismos. Matemticamente
D.Sullivan deni el concepto de conjunto cuasiauto-similar a partir del concepto de cuasiisometra. Los fractales denidos por relaciones de recurrencia son normalmente de este
tipo.
Autosimilitud estadstica

Es el tipo ms dbil de autosimilitud: exige que el fractal tenga medidas numricas o


estadsticas que se preserven con el cambio de escala. Los fractales aleatorios son ejemplos
de fractales de este tipo.

6.2. Dimensin fractal y dimensin Hausdor-Besicovitch


Existen fractales como curvas que llenas todo el plano. En ese caso, la dimensin topolgica
de la curva, que es uno, no nos informa la forma en que esta ocupa el espacio. De modo
general, podramos preguntarnos cmo densamente un conjunto ocupa el espacio mtrico que
lo contiene. Los nmeros que nos informan objetivamente de este tipo de cuestiones son: La
dimensin fractal DF  y la dimensin de Hausdor-Besicovitch DH .

6.2.1. Dimensin Fractal DF 


Las frmulas que la denen tienen que ver con el recuento de las bolas necesarias para recubrir
el conjunto o con el de cajas de una cuadrcula que contienen parte del conjunto, cuando las
dimensiones de unas y otras tienden a cero.
Podemos medir la dimensin fractal de objetos reales:
Lneas de la costa
Nubes
rboles, etc.
Con estas medidas podemos comparar objetos del mundo real con fractales generados por algoritmos matemticos.

6.2.2. Dimensin de Hausdor-Besicovitch DH 


Tiene una denicin ms compleja que la dimensin fractal. Su denicin no suele usarse para
comparar conjuntos del mundo real.
Deiner L.Zapata Silva

24

Universidad Nacional de Ingenieria

Ing.Mecatronica

6.2.3. Dimensin de fractales producidos por un IFS


Un sistema iterativo de funciones (IFS) es un conjunto de funciones contractivas denidas
sobre un subconjunto de Rn . Cuando no hay solapamiento entre las imgenes de cada
funcin, se demuestra que DF = DH y que ambas pueden calculares como la solucin de la
ecuacin:
D
D
cD
1 + c2 + + ck = 1

Donde:
ci : designa el factor de contraccin de cada aplicacin contractiva del IFS.

6.3. Denicin por algoritmos recursivos


Se destacan tres tcnicas comunes para generar fractales.
Sistemas de Funciones Iteradas (IFS)

Unos conjuntos se reemplazan recursivamente por su imagen bajo un sistema de aplicaciones:


El conjunto de Cantor.
La alfombra de Sierpinski.
El triangulo de Sierpinski.
La curva del dragn
La curva de Peano.
El copo de nieve de Koch
La esponja de Menger, etc.
Fractales de Algoritmos de Escape

Denidos por una relacin de recurrencia en cada punto del espacio (Por ejemplo el plano
complejo)
El conjunto de de Mandelbrot.
El conjunto de Julia.
El fractal de Lyapunov.
Fractales aleatorios

Generados por procesos estocsticos, no deterministas.


El movimiento Browniano.
El vuelo de Lvy.
Los paisajes fractales.
rboles Brownianos.
Estos ltimos son producidos por procesos de agregacin por difusin limitada.

Deiner L.Zapata Silva

25

También podría gustarte