TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 1
Este trabajo abarca un resumen general acerca de lo que son los fractales, empezando con lo básico acerca de que se entiende por un fractal, una breve reseña histórica, los principios básicos de los fractales que los rigen, su forma de construirlos e identificarlos, herramientas digitales asociadas, varios ejemplos naturales y artificiales y sus aplicaciones en diferentes campos actuales y a futuro.
1. Concepto.
Veamos a continuación algunos intentos o acercamientos por definir que es un fractal:
Un fractal es un objeto geométrico cuya estructura básica, fragmentada o aparentemente irregular, se repite a diferentes escalas.1 El término fue propuesto por el matemático Benoît
Mandelbrot en 1975 y deriva del latín “fractus”, que significa quebrado o fracturado. Muchas estructuras naturales son de tipo fractal. La propiedad matemática clave de un objeto genuinamente fractal es que su dimensión métrica fractal es un número no entero.
Si bien el término "fractal" es reciente, los objetos hoy denominados fractales eran bien conocidos en matemáticas desde principios del siglo XX. Las maneras más comunes de determinar lo que hoy
denominamos dimensión fractal fueron establecidas a principios del siglo XX en el seno de la teoría de la medida.
Tomado de https://es.wikipedia.org/wiki/Fractal
Un fractal es un objeto cuya estructura se repite a diferentes escalas. Es decir, por
mucho que nos acerquemos o alejemos del objeto, observaremos siempre la misma
estructura. De hecho, somos incapaces de afirmar a qué distancia nos encontramos del
objeto, ya que siempre lo veremos de la misma forma.
Tomado de https://www.xatakaciencia.com/matematicas/que-son-los-fractales-y-como-se-construyen
El Fractal es, matemáticamente, una figura geométrica que es compleja y detallada en
estructura a cualquier nivel de magnificación. A menudo los fractales son semejantes a sí
mismos; esto es, poseen la propiedad de que cada
pequeña porción del fractal puede ser visualizada
como una réplica a escala reducida del todo. La
característica que fue decisiva para llamarlos
fractales es su dimensión fraccionaria.
Es importante reconocer que los fractales
verdaderos son una idealización. Ninguna curva en
el mundo real es un fractal verdadero; los objetos
reales son producidos por procesos que actúan
sólo sobre un rango de escalas finitas. En otras palabras, los objetos reales no tienen la
infinita cantidad de detalles que los fractales ofrecen con un cierto grado de magnificación.
Tomado de https://sites.google.com/site/cienciafractal/concepto
Como nos damos cuenta, existen diferentes acercamientos a lo que podemos entender por
un fractal, solamente cuando estemos inmersos y luego de haber trabajado y entendido la
forma como se crean artificialmente y se ven en la naturaleza; nos podemos dar una idea
nosotros mismos de que podemos entender por un fractal.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 2
2. Reseña histórica.
Los fractales deben su origen al francés Henri Poincaré (1854-
1912).
Sus ideas fueron tomadas, más tarde por dos matemáticos, también
franceses: Gastón Julia y Pierre Fatou, hacia 1918.
Hubo un paréntesis en el estudio de los fractales, que fue renovado
a partir de 1974 en IBM y fue fuertemente impulsado por el
desarrollo de la computadora digital.
En realidad, el término fractal fue acuñado en 1975 por el Dr. Benoit Mandelbrot, de la
Universidad de Yale, a quien se considera el padre de la geometría fractal. Su trabajo, que
mostraba diversas variantes del conjunto que hoy lleva su nombre, fue publicado el 26 de
diciembre de 1980.
La aparición de los fractales originó una geometría que puede describir el universo en
perpetuo cambio. Según palabras de Mandelbrot: “acuñé el término fractal a partir del
adjetivo latino fractus. El verbo latino correspondiente, fragere, significa “romper”: crear
fragmentos irregulares ¡qué apropiado para nuestras necesidades!... que, además de
“fragmentado” (como en fracción o refracción) fractus también signifique “irregular”, y que
ambos sentidos se preserven en fractal”.
John H. Hubbard, de la Universidad de Cornell, y Adrien
Douady, de la Universidad de Paris, en honor a su
descubridor, pusieron al conjunto el nombre de Mandelbrot en
la década de 1980, mientras trabajaban en las pruebas de
diversos aspectos del mismo.
Hubbard dice haberse reunido con Mandelbrot en 1979, y
haberle mostrado cómo programar una computadora para
lograr funciones iterativas. Hubbard admite que Mandelbrot
más tarde desarrolló un método superior para generar las
imágenes del conjunto.
Estas curvas eran llamadas monstruos. Los matemáticos conservadores del siglo XIX
consideraban patológicas a estas curvas monstruo. No las aceptaban ni las creían dignas
de exploración porque contradecían las ideas matemáticas aceptadas.
Por ejemplo, algunas eran funciones continuas que no eran diferenciables, algunas tenían
áreas finitas con perímetros infinitos, y algunas podían llenar por completo el espacio.
Los matemáticos del siglo XX tuvieron un serio conflicto para decir quien fue el primero en
descubrir el conjunto de Mandelbrot.
Resumen tomado de http://xfractal.blogspot.com.co/2008/06/historia-de-los-fractales.html
Video1, Video2, como material de apoyo
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 3
3. Principios básicos de los fractales que los rigen.
Un fractal es un ente matemático que no se define de la manera habitual como se definen
otros conceptos matemáticos. Se caracteriza por una propiedad de invariancia en presencia
de “cambios de escala”. Esta propiedad se denomina “auto-semejanza” y por lo general se
puede presentar de maneras y formas muy distintas: en algunos casos, la autosemejanza
es matemática exacta y hablamos de “fractales deterministas”, mientras que en otros casos,
que se encuentran en el mundo real que nos rodea, la auto-semejanza es aproximada.
Los fractales deterministas constituyen un nuevo tipo de Geometría: la Geometría Fractal,
que es, ante todo, un nuevo lenguaje. Mientras que los elementos de nuestra bien conocida
Geometría Euclidiana son líneas, círculos, esferas, etc., los elementos de la Geometría
Fractal escapan a la percepción directa. Ello se debe a que son algoritmos que solamente
la computadora puede convertir en formas y estructuras.
En el siguiente cuadro lo podemos apreciar mejor:
http://www2.caminos.upm.es/Departamentos/matematicas/Fdistancia/MAIC/CONGRESOS/SEGUNDO/008%20Fractales.pdf
Existen tres características que modelan los fractales, la Autosimilitud, la Dimensión fractal
y los Algoritmos recursivos:
a) Autosimilitud
Según B. Mandelnrot, un objeto es autosimilar o autosemejante si sus partes tienen la
misma forma o estructura que el todo, aunque pueden presentarse a diferente escala y
pueden estar ligeramente deformadas.
Los fractales pueden presentar tres tipos de autosimilitud:
Autosimilitud exacta. este es el tipo más restrictivo de autosimilitud: exige que el
fractal parezca idéntico a diferentes escalas. A menudo la encontramos en fractales
definidos por sistemas de funciones iteradas.
Cuasiautosimilitud: exige que el fractal parezca aproximadamente idéntico a
diferentes escalas. Los fractales de este tipo contienen copias menores y
distorsionadas de sí mismos. Matemáticamente D.Sullivan definió el concepto de
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 4
conjunto cuasiauto-similar a partir del concepto de cuasi-isometría. Los fractales
definidos por relaciones de recurrencia son normalmente de este tipo.
Autosimilitud estadística. Es el tipo más débil de autosimilitud: se exige que el fractal
tenga medidas numéricas o estadísticas que se preserven con el cambio de escala.
Los fractales aleatorios son ejemplos de fractales de este tipo.
b) Dimensión fractal y dimensión de Hausdorff-Besicovitch
Entre los fractales podemos encontrar ejemplos como curvas que llenan todo el plano. En
ese caso, la dimensión topológica de la curva, que es uno, no nos informa sobre la forma
en que esta ocupa el espacio ambiente. De modo general, podríamos preguntarnos cómo
densamente un conjunto ocupa el espacio métrico que lo contiene. Los números que nos
informan objetivamente de este tipo de cuestiones son:
La dimensión fractal. Las fórmulas que la definen tienen que ver con el recuento
de las bolas necesarias para recubrir el conjunto o con el de cajas de una cuadrícula que
contienen parte del conjunto, cuando las dimensiones de unas y otras tienden a cero.
Podemos medir la dimensión fractal de objetos reales: líneas de la costa (1.2), nubes,
árboles, etc, Con estas medidas podemos comparar objetos del mundo real con fractales
generados por algoritmos matemáticos.
La dimensión de Hausdorff-Besicovitch. Tiene una definición más compleja que
la de dimensión fractal. Su definición no suele usarse para comparar conjuntos del mundo
real.
c) Definición por algoritmos recursivos
Podemos destacar tres técnicas 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 triángulo de Sierpinski, la curva de Peano, la curva del dragón, el copo de
nieve de Koch o la Esponja de Menger, son algunos ejemplos.
Fractales de algoritmos de Escape, definidos por una relación de recurrencia en cada
punto del espacio (por ejemplo, el plano complejo): el conjunto de Mandelbrot, conjunto de
Julia, y el fractal de Lyapunov.
Fractales aleatorios, generados por procesos estocásticos, no deterministas: el
movimiento, el vuelo de Lévy, los paisajes fractales o los árboles brownianos. Éstos últimos
son producidos por procesos de agregación por difusión limitada.
En la siguiente tabla, podemos ver algunos ejemplos de cada una de las características.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 5
Au
tosim
ilitu
d
Dim
ensió
n
Re
curs
ivid
ad
4. Forma de construir un fractal.
Los fractales se construyen usando funciones iterativas, entre las más famosas están el
Conjunto de Julia y el Conjunto de Mandelbrot, más o menos el proceso es como sigue:
¿Qué es una función iterativa?
Es una expresión que permite calcular una variable dependiente del valor de otras, o del suyo propio en un proceso llamado iteración. Para empezar el proceso de iteración se debe conocer el valor inicial de la variable.
Vamos a iterar tres veces la función Zn+1 = Zn2 + C, fijando el valor inicial de Z como Z0
Primera iteración Z1 = Z02 + C
Segunda iteración Z2 = Z12 + C
Tercera iteración Z3 = Z22 + C
De esta forma se obtiene Z3 que corresponde al valor de Z después de tres iteraciones.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 6
¿Qué hace falta para dibujarlos?
1. Elegir una función:
Utilizaremos la función Zn+1 = Zn2 + C, donde Z y C son números complejos.
2. Operar con números complejos:
Los números complejos constan de una parte real y otra imaginaria. Un número complejo se representa de forma binómica como Z = (a+bi). Donde "a" es el número real y "b" es un número imaginario múltiplo de la unidad
imaginaria "i". La unidad imaginaria tiene como valor constante .
3. Un plano de coordenadas:
Coordenadas cartesianas
4. Fijar condiciones de cálculo según la función elegida y el tipo de fractal que queremos obtener. Por ejemplo, si queremos dibujar el conjunto de Mandelbrot:
o El valor inicial de Z será Z0 = (0+0i). o El valor de C corresponderá a las coordenadas de un punto del plano,
siendo su componente real el valor de la coordenada X y su componente imaginario el valor de la coordenada Y. Entonces C = (X+Yi).
o El número de iteraciones puede ser cualquier valor entero y positivo. o El radio de escape: se sabe que los puntos cuya distancia al origen
de coordenadas es superior a 2 no pertenecen al conjunto, por tanto, lo fijamos en 2 y nos servirá para no realizar cálculos innecesarios.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 7
5. Herramientas digitales para generar fractales
En el mercado existen varios software para trabajar fractales, algunos son gratuitos otros
son pagando. Algunos son buenos, otros son limitados en sus prestaciones.
Entre ellos tenemos, haciendo click en cada uno, podemos entrar a la página web del autor.
Turtle Graphics Renderer
ChaosPro
GNU XaoS
Apophysis
Mandelbulber
Fractint
GIMP
http://areafractal.tierradenomadas.com/software.html
6. Ejemplos de fractales.
En los siguientes enlaces podemos visualizar diferentes ejemplos de fractales, como
imágenes, animaciones, videos y códigos en Matlab para iniciarse en la construcción de
fractales.
Imágenes:
http://es.gizmodo.com/diez-bellisimos-ejemplos-de-fractales-en-la-naturaleza-1677114869
https://www.google.com.co/search?tbm=isch&q=fractales&backchip=g_1:matematicas&chips=q:fra
ctales&sa=X&ved=0ahUKEwia3d_P3OPXAhXG7SYKHd7QCeoQ3VYIIigA&biw=1920&bih=959&dp
r=1
Animaciones:
https://www.youtube.com/watch?v=Bv6Snj9czLs
https://www.mathworks.com/matlabcentral/fileexchange/37813-mandelbrot-set--animated-zoom
https://www.youtube.com/watch?v=bo-MB1QPZ7E
https://www.pinterest.es/pin/523825000393494969/
https://verne.elpais.com/verne/2016/09/30/articulo/1475225982_737639.html
Videos:
https://www.youtube.com/watch?v=NGMRB4O922I
https://www.youtube.com/watch?v=9gk_8mQuerg
https://www.ted.com/talks/benoit_mandelbrot_fractals_the_art_of_roughness/transcript?language=e
s
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 8
http://www.rtve.es/alacarta/videos/mas-por-menos/aventura-del-saber-serie-mas-menos-fractales-
geometria-del-caos/1296590/
https://www.youtube.com/watch?v=-7k3UISFMp4
https://www.youtube.com/watch?v=0YaYmyfy9Z4
Código:
https://www.mathworks.com/matlabcentral/fileexchange?term=fractal
http://blogcienciasbasicas.blogspot.com.co/2009/03/fractales-en-matlab.html
http://graficos.conclase.net/curso/?cap=003c
https://www.mql5.com/es/code/328
https://www.wextensible.com/temas/fractal/trazador.html
Libros:
https://www.lectulandia.com/search/fractales
http://www3.gobiernodecanarias.org/medusa/ecoblog/mrodperv/fractales/conjuntos-de-julia-y-
mandelbrot/
http://www.ugr.es/~dpto_am/docencia/cie_mat_calculo/fractales/Links/conjuntos%20de%20Julia%2
0y%20Mandelbrot.html
Música:
https://www.youtube.com/watch?v=bx08aU8RNoI&vl=es
https://www.youtube.com/watch?v=jLokRzFYRik
https://www.youtube.com/watch?v=V5tUM5aLHPA
https://www.youtube.com/watch?v=1-ssKUf4-mk
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 9
7. Aplicaciones en diferentes campos.
Pero los fractales no se quedan en una mera curiosidad matemática, y es que cuándo la naturaleza en su amplio espectro se basa en ellos por algo es. De hecho, los fractales tienen muchísimas aplicaciones en campos tan dispares como pueden ser las comunicaciones de redes, la biología, los mercados bursátiles o la música. Vamos a destripar sólo algunos de ellos.
Comunicaciones:
Se ha demostrado que el tráfico de paquetes a lo largo y ancho de internet sigue un modelo que se comporta como un fractal, de hecho, analizando gráficas del tráfico de datos a traves del tiempo, se puede apreciar la propiedad de autosimilitud, aunque realmente no lo es del todo, pero sí que tiende a serlo. Gracias a estos modelados, se podrían disminuir las pérdidas de paquetes producidas por diversos motivos, y mejorar así el rendimiento de la red.
Otra utilidad de los fractales en el mundo de las comunicaciones está referida a la fabricación de antenas. Y es que una antena con forma de algún objeto fractal (como el que hemos descrito antes) puede mejorar el rendimiento del equipo en mucho menos espacio, ya que como vimos la longitud va rellenando el plano.
Medicina:
Es evidente el uso de instrumental informático cuyas infografías se basan en fractales. Además la forma de crecimiento de los tejidos también tiene un comportamiento fractal. De hecho, ciertas investigaciones relativas al cancer demuestran que el crecimiento de estos se rige por estos objetos geométricos, y es más, crecen en la frontera donde "hay hueco" y de forma lineal, no exponencial como se cree, investigaciones que han resultado bastante controvertidas en el mundo de la medicina.
Economía:
Se ha comprobado que el cambio de los precios de los activos de las empresas tiene un comportamiento fractal, y por tanto, pueden ser estudiados utilizando el conocimiento que tenemos de ellos. Esto frena todo intento de encasillar en modelos estadísticos los mercados bursátiles, y basarse en modelos fractales para obtener mejores predicciones de cambio.
Otras utilidades de los fractales, ya sea en fase de experimentación o plenamente desarrolladas están abajo enumeradas:
Informática: Técnicas de compresión (audio y vídeo). Robótica: Robots Fractales. Infografía: Paisajes fractales. Es una de las primeras aplicaciones de los fractales,
y por tanto una de las más desarrolladas Evolución de poblaciones: Depredador-presa. Matemáticas: Convergencia de métodos numéricos. Música: Composición musical.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 10
Física: Transiciones de fase en magnetismo. Química: Agregación por difusión limitada (DLA). Geología: Análisis de patrones sísmicos, fenómenos de erosión, modelos de
formaciones geológicas.
Sin duda alguna la introducción poco a poco de los fractales en todos los frentes va a suponer un gran avance del que nos estamos beneficiando ya mismo, pero es algo que aún creo que está empezando a gatear. Es un "bicho" muy grande que domar, pero que en un futuro nos dará muchas satisfacciones.
8. Bibliografía
https://ordinatous.com/pdf/The_Fractal_Geometry_of_Nature.pdf
https://www.azc.uam.mx/publicaciones/enlinea2/num2/2-2.htm
http://www2.caminos.upm.es/Departamentos/matematicas/Fdistancia/MAIC/CONGRES
OS/SEGUNDO/008%20Fractales.pdf
http://afractales.blogspot.com.co/2012/11/caracteristicas-de-un-fractal.html
http://webs.um.es/jmz/DiseGrafSimula/alumnos_08_09/german_ros/index.files/fractal1_
Intro%201.html
http://www.fractfinder.es/laboratorio/index.php
http://aulamates.com/aplicaciones-fractales/
https://www.mathworks.com/matlabcentral/fileexchange/50417-sierpinski-fractal-triangle
https://www.mathworks.com/matlabcentral/fileexchange/24840-newton-fractal
https://www.chiark.greenend.org.uk/~sgtatham/newton/
https://github.com/steventhornton/Newton-Fractal
http://www.albertostrumia.it/sites/default/files/Fractals/FractalMatlab/Newt.html
https://www.mathworks.com/matlabcentral/fileexchange/27577-fractal-
curves?focused=5201009&tab=function
http://m2matlabdb.ma.tum.de/download.jsp?MC_ID=5&SC_ID=13&MP_ID=301
http://www.konradlorenz.edu.co/images/stories/suma_digital_matematicas/SFI%20y%2
0los%20Fractales.pdf
http://www.sc.ehu.es/sbweb/fisica/cursoJava/numerico/recursivo/recursivo.htm
https://es.khanacademy.org/math/math-for-fun-and-glory/grant-sanderson/inventing-
math-tutorial/v/hilberts-curve-and-the-usefulness-of-infinite-results-in-a-finite-world
http://www.docentes.unal.edu.co/cibermudezs/docs/CursoGeometriaFractal.pdf
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 11
ANEXO 1 – INTERFACES DEL PROGRAMA CONSTRUÍDO
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 12
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 13
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 14
ANEXO 2 – DESCRIPCIÓN DE LOS CÓDIGOS UTILIZADOS
Conjunto de Julia Descripción
% Conjunto JULIA % Datos básicos vr_m = str2double(get(handles.vr_m,'String')); vr_pr = str2double(get(handles.pr_r,'String')); vr_pim = str2double(get(handles.pr_i,'String')); kolor = get(handles.vrcmap,'String'); % Numero de iteraciones n_iter = str2double(get(handles.niter,'String')); % Operaciones básicas de datos c = vr_pr + vr_pim*i; k = n_iter; v = 1000; % radio del circulo dentro del cual cada punto diverge r = max(abs(c),2); % se divide el eje x d = linspace(-r,r,v); % crea la matriz que contiene los numeros complejos Z = ones(v,1)*d + i*(ones(v,1)*d)'; % crea la matriz inicial de ceros B = zeros(v,v); % iteraciones for s = 1:k B = B+(abs(Z)<=r); Z = Z.^(vr_m) + ones(v,v).*c; end % Grafica fractal Julia axes(handles.axes1); cla; imagesc(B), colormap(kolor{get(handles.vrcmap,'Value')}); axis square zoom
Nombre del Fractal Se capturan los datos básicos relacionados con la potencia de Z y el número complejo C Se captura el número de iteraciones que se quiera usar. Se realizan algunas operaciones básicas de entrada, con los datos capturados Se calcula el radio de divergencia Se divide el eje x en partes iguales Se monta la matriz con los números complejos Se crea una matriz inicial de ceros para transporte de información Sección donde se realizan las iteraciones y se almacenan en B y Z respectivamente Se grafica el fractal, usando el color seleccionado previamente. Se puede realizar zoom a la gráfica por punteo o por región.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 15
Conjunto de Mandelbrot Descripción
% Conjunto Mandelbrot % Datos básicos vr_m = str2double(get(handles.vrm,'String')); vr_pr = str2double(get(handles.pr_r,'String')); vr_pi = str2double(get(handles.pr_i,'String')); kolor = get(handles.vrcmap,'String'); % Numero de iteraciones n_iter = str2double(get(handles.niter,'String')); % Grilla o Lienzo de la gráfica n = 1000; % Dominio de la gráfica x0 = -2; x1 = 1; y0 = -1.5; y1 = 1.5; [x,y] = meshgrid(linspace(x0, x1, n), linspace(y0, y1, n)); c = x + y*1i; z = zeros(size(c)); k = zeros(size(c)); for ii = 1:n_iter z = z.^m + c; k(abs(z) > 2 & k == 0) = n_iter - ii; end % Grafica fractal axes(handles.axes1); cla; imagesc(k), colormap(kolor{get(handles.vrcmap,'Value')}); axis square zoom
Nombre del Fractal Se capturan los datos básicos relacionados con la potencia de Z y el número complejo C Se captura el número de iteraciones que se quiera usar. Tamaño del lienzo o grilla gráfico a utilizar Se realizan algunas operaciones básicas de entrada, con los datos capturados Se monta la matriz con los números complejos Se crea una matriz inicial de ceros para transporte de información Sección donde se realizan las iteraciones y se almacenan en B y Z respectivamente Se grafica el fractal, usando el color seleccionado previamente. Se puede realizar zoom a la gráfica por punteo o por región.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 16
Triángulo de SIERPINSKI Descripción
% Triangulo de SIERPINSKI % Número de iteraciones n_iter = get(hObject, 'Value'); set(handles.niter, 'String', n_iter); % Constantes a = (1 + sqrt(-3) )/2; % Generate point sequence z = [0; 1]; for k = 1:n_iter z = [z; z+a; z+1]/2; end % Cierra el triangulo z = [z; a; 0]; % Ploteamos el triangulo axes(handles.axes1); cla plot(z) axis square axes(handles.axes1); % Se activa el zoom zoom
Nombre del Fractal Se captura el número de iteraciones que se quiera usar. Constante de trabajo Se genera punto de inicio Sección donde se realizan las iteraciones y se almacenan en B y Z respectivamente Matriz de cierre del triángulo Se grafica el fractal Se puede realizar zoom a la gráfica por punteo o por región.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 17
Curva de KOSCH Descripción
% Curva de Koch % Numero de iteraciones n = str2double(get(handles.niter,'String')); if (n==0) x=[0;1]; y=[0;0]; line(x,y,'Color','b'); axes(handles.axes1); axis equal set(gca,'Visible','on') else levelcontrol=10^n; L=levelcontrol/(3^n); l=ceil(L); kline(0,0,levelcontrol,0,l); axes(handles.axes1); axis equal set(gca,'Visible','on') zoom end
Nombre del Fractal Se captura el número de iteraciones que se quiera usar. Sección donde se revisa cuántas iteraciones desean, si es 0 iteraciones se grafica una línea. En caso contrario, se grafica la curva de Kosch Se grafica el fractal Se puede realizar zoom a la gráfica por punteo o por región.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 18
Curva de HILBERT Descripción
% Fractal de Hilbert % Numero de iteraciones n_iter = str2double(get(handles.niter,'String')); % Constants a = 1 + 1*i; b = 1 - 1*i; % Generate point sequence z = 0; for k = 1:n_iter w = 1*i*conj(z); z = [w-a; z-b; z+a; b-w]/2; end % Grafica fractal axes(handles.axes1); cla; plot(z) axis square zoom
Nombre del Fractal Se captura el número de iteraciones que se quiera usar. Se montan las constantes de inicio Sección genera punto inicial de la secuencia. Se realizan las iteraciones escogidas Se grafica el fractal Se puede realizar zoom a la gráfica por punteo o por región.
TRABAJO FINAL DE PROGRAMACIÓN Y ANÁLISIS NUMÉRICO
FRACTALES
Compiló: Efraín Patiño B. 29-11-2017 19
NEWTON-RAPHSON Descripción
% Conjunto NEWTON-RAPHSON % Numero de iteraciones n_iter = str2double(get(handles.niter,'String')); threshold = str2num(get(handles.nlimite,'String')); [xs,ys] = meshgrid(linspace(-1,1,800), linspace(-1,1,800)); solutions = xs(:) + i*ys(:); select = 1:numel(xs); niters = n_iter*ones(numel(xs), 1); for iteration = 1:n_iter; oldi = solutions(select); %in newton's method we have z_{i+1} = z_i - f(z_i) / f'(z_i) solutions(select) = oldi - f(oldi)./ fprime(oldi); %check for convergence or NaN (division by zero) differ = (oldi - solutions(select)); converged = abs(differ) < threshold; problematic = isnan(differ); niters(select(converged)) = iteration; niters(select(problematic)) = n_iter+1; select(converged | problematic) = []; end; niters = reshape(niters,size(xs)); solutions = reshape(solutions,size(xs)); % Grafica fractal newton axes(handles.axes1); cla; imagesc(niters) axis square zoom function res = f(x) res = (x.^2).*x.^2 - 1; function res = fprime(x) res = 4*x.^3;
Nombre del Fractal Se captura el número de iteraciones y el límite de la gráfica. Se monta la grilla de inicio y se realizan operaciones previas de inicio Se realizan las iteraciones escogidas Se redimensiona la gráfica a salir Se grafica el fractal Se puede realizar zoom a la gráfica por punteo o por región. Funciones de apoyo al fractal