Sunteți pe pagina 1din 44

Generarea fractalilor prin recursivitate i numere complexe

Caracterizarea fractalilor
Fractalii sunt forme geometrice,care pot fi mparite n buci, fiecare din ele fiind o copie la scar redus a ntregului.

Denumirea de fractal a fost introdusa n 1876 de ctre Benot Mandelbrot n lucrarea sa, O teorie a seriilor fractale.
Fractal nseamn: fragmentat, neregulat, fracionat, ntrerupt,

Teoria fractalilor se ocup de forme caracterizate de o neregularitate fundamental.

Proprietai ale fractalilor


structur fin - prezint detalii la scri arbitrar de mici; neregularitate (dificultate n a fi descris in limbaj euclidian); autosimilaritate (fiecare component a mulimii este imaginea redus a ntregului); Dimensiunea fractala > decat dimensiunea topologica.

Particulariti
Geometria euclidian (folosete 4 noiuni fundamentale: punct, dreapt, plan, spaiu) nu poate reprezenta adecvat formele naturale: norii nu snt sfere; munii nu snt conuri; etc. Geometria fractalilor nu recunoate, deci, linia, suprafaa, volumul.

Geometria fractal
-> studiaz forme cu aspect neregulat att n spaiu ct i n timp, cu proprieti de autosimilaritate i msurabile n spaii cu dimensiune nentreag . Este propulsat ca stiin de ctre Benoit Mandelbrot in lucrarea: The Fractals Geometry of Nature Devine practic domeniu al matematicii, fizicii i biologiei moderne.

Dimensiunea fractal
Este un numr care cuantific gradul de neregularitate i de fragmentare al unei structuri geometrice sau al unui obiect din natur. Nu s-a gsit nca o definiie exact a dimensiunii fractale , cu att mai puin o formul general. Este estimat calculnd raportul logaritmic al unor proprieti la diferite scale. n cazul obiectelor geometrice , dimensiunea fractal este egal cu: 0 (punct) 1 (linie) 2 (plan) 3 (spaiu) Pentru fractali, dimensiunea fractal , este de regula un numr fracionar(0,.sau 1,);

Metoda compasului calcularea lungimii coastei Angliei


Metoda compasului se aplic n cazul figurilor plane de dimensiune fractal foarte apropiat de 1. Ex de fractal natural,autosimilar: Linia de coast triunghiular koch Variabile folosite: L()-variatia lungimii aproximative ca funcie cu etalonul ; N()-numrul de pai de lungime cuprini cu compasul pe linia coastei;

Curba Koch aplicat exemplului coastei Angliei


Pas1: se alege un segment unitate (iniiatorul); 1 1, N ( 1 ) 1, L( 1 ) 1; Pas2: segmentul iniial se mparte n 3 segmente congruente i se nlocuiete segmentul din mijloc cu cele 2 laturi ale unui triunghi echilateral (generatorul);
2 , N ( 2 ) 4, L( 2 ) N ( 2 ) 2 ;
1 3 4 3
Stadiul 1:

Stadiul 2:

Stadiul 3: Dimensiunea fractala:

Pas 3: n continuare se repet aceeai procedur cu fiecare din segmentele obinute;


1 42 2 3 2 , N ( 3 ) 4 , L( 3 ) N ( 3 ) 3 2 ; 3 3

1 1 1 log 34 ( n 1) log 34 1 ; N ( n ) 4 n 1 3 ln 4 D 1 p log 3 4 ; ln 3

Curba koch este formata din 4 copii ale sale,fiecare de 3 ori mai mica: D=log(4)/log(3)=1.26 Putem la fel de bine considera ca este formata din 16 copii,fiecare de 9 ori mai mica.Rezultatul va fi acelasi: D=log(16)/log(9)=log(4^2)/log(3 ^2)=2log(4)/2log(3)=log(4)/log(3) =1.26

Insula lui Koch (curba Fulgului de nea)


1. 2. Se ncepe cu un triunghi echilateral; Se nlocuiete treimea din mijloc, de pe fiecare latur, cu 2 segmente astfel nct s se formeze un nou triunghi echilateral extern.

Perimetrul-crete cu 4 treimi( la fiecare iteraie); Aria=0(distanta ntre oricare 2 puncte fiind infinita).

Diversitate de forme
Segmentul iniial folosit n construirea curbei von Koch poate fi nlocuit de un triunghi, un ptrat sau orice alt figur geometric.

Implementarea curbei von Koch n Matlab


Function Koch(pl,pr,level) %Koch genereaza recursiv curba koch %Koch(pl,pr,level)genereaza recursiv curba koch If level==0 plot([pl(1),pr(1)],[pl(2),pr(2)]); Hold on Else (A=sqrt(3)/6)*[0 1;-1 0]; Pmidl=(2*pl+pr)/3 Ptop=(pl+pr)/2+A*(pl-pr); Pmidr=(pl+2*pr)/3 koch(pl,pmidl,level-1) koch(pmidl,ptop,level-1) koch(ptop,pmidr,level-1) koch(pmidr,pr,level-1 end

Secvene de cod
FULGUL DE NEA For k= 1:7 left=[cos(2*k*pi/7);sin(2*k*pi/7)]; right=[cos(2*(k+1)*pi/7);sin(2*(k+1) *pi/7]; koch(left,right,4); end axis equal; axis off;

CURBE KOCH
for k=1:4 subplot(2,2,k) koch([0;0],[1;0],k); axis equal;axis off; end

Triunghiul lui Sierpinski


OBINERE:

Dimensiunea fractal:

Pas 1: se deseneaz un triunghi plin;


Pas 2: sedecupeaz triunghiuri egale cu un sfert din triunghiul iniial. Pas 3: procesul continu la infinit pentru toate tringhiurile formate,prin acelasi procedeu de decupare. Se mai numeste si Garnitura lui Sierpinski

D = log(3)/log(2) = 1.585
Metod de constructie:

Metoda 2 de construcie -triunghiul lui SierpinskiPas1:se deseneaza un triunghi Pas2:se divizeaza in 4 parti egale; Pas3:partile din exterior,cele 3 vor fi si ele divizate prin acelasi proces; Pas4:pana la infinit;

Implementare n Matlab
TRIUNGHIUL LUI SIERPINSKI function sierpinski(size) if nargin ~= 1 % size = 9; end clf; dim = 2^size; axis square; hold on; for y = 1:dim for x = 1:y if bitand((x-1),(y-x)) == 0 plot(x-.5*x,dim-y); end end end

Covorul lui Sierpinski


OBINERE:

Pas 1: se pornete cu un ptrat; Pas 2: se mparte ptratul n 3^2 ptrate congruente i se elimin ptratul din mijloc.

Dimensiunea fractal: D = log(20)/log(3) = 2,73


Metod de construcie:

Pas 3: cu fiecare dintre ptratele obinute se procedeaz la fel.

Metoda 2 de constructie -covorul lui sierpinski Pas1:se pornete de la un segment de dreapt; Pas2:iniatorul este nlocuit cu alte 8 segmente de dreapt; Pas3:fiecare segment este nlocuit cu forma intreag; Pas4:proces derulat a infinit;

Implementare n Matlab
COVORUL LUI SIERPINSKI

function carpet(i); % CARPET(N) deseneaza cele n %iteratii ale covorului lui sierpinski % CARPET uses n = 5. %default setting switch nargin case 0 i=5; end tic; M = 0;

% creaza o matrice M formata din zero si unu % indica punctele covorului for k=1:i M = [M, M, M; M, ones(3^(k-1)), M; M, M, M]; end % plot settings imagesc(M); colormap(gray);

axis equal; axis off; toc

Generarea fractalilor cu ajutorul numerelor complexe

Setul Mandelbrot

Ce este setul Mandelbrot?


d.p.d.v matematic-este o multime de numere complexe. Mulimea lui Mandelbrot-mulimea acelor puncte c din planul complex pentru care, aplicnd n mod repetat polinomul complex z^2+c (pornind de la z=0), rezultatul rmne n interiorul unui disc de raz finit.

Putem mpri punctele din planul complex n:


Puncte din setul Mandelbrot; Puncte din afara setului Mandelbrot.

Alegem un punct c din planul complex de forma x + iy. Calculm valoarea expresiei z^2 + c, pornind cu z=0. Dm lui z valoarea obinut i repetm calculul;

Cum se poate construi setul Mandelbrot?


c = x+iy z=z^2+c = 0^2+c =c z = z^2+c = c^2+c

z = z^2+c = (c^2+c)^2+c

n termeni matematici aceasta este iterarea funciei z_n+1=z_n^2+c Ce se va ntampla cu punctul n urma iterrii? Va rmne lng origine sau se va ndeprta de aceasta? Dac rmne n apropierea originii spunem c punctul c aparine setului Mandelbrot. n caz contrar, spunem c punctul se ndeprteaz spre infinit i nu aparine setului Mandelbrot.

O imagine mai detaliat a frontierei setului Mandelbrot ne dezvluie o cantitate imens de structuri fractale diferite, ns, totodat se poate observa i similaritatea cu ntregul.

Generarea setului Mandelbrot


function Mandelbrot(iter,pixel)

% MANDELBROT(ITER,PIXEL) deseneaza setul Mandelbrot; % ITER reprezinta numarul de iteratii, iar % PIXEL reprezinta numarul de puncte pe axa Ox. % MANDELBROT foloseste implicit iter = 23, pixel = 400.
% implicit switch nargin case 0 iter=23; pixel=400; end % decompose x- and y-axis according to the chosen % proportion of r = 3:4. r = 3/4; x = linspace(-2.5,1.5,pixel); y = linspace(-1.5,1.5,round(pixel*r))';

% Creeaza matricea C care contine toti pixelii % care trebuie analizati. [Re,Im] = meshgrid(x,y); C = Re + i * Im; % Matricea B da un numar caracteristic fiecarui pixel in % functie de viteza cu care acesta diverge. % Prin urmare, B si C au aceeasi dimensiune. B = zeros(round(pixel*r),pixel); Cn = B; % C_0 = 0+0i for l = 1:iter Cn = Cn.*Cn + C; % realizeaza "harta" B = B + (abs(Cn)<2); % if |cn| > 2 the sequence diverges end; % setari ale graficului imagesc(B); colormap(jet); axis equal axis off

Setul Julia

Ce este setul Julia?

D.p.d,v matematic este o mulime de numere complexe, obinute iternd aceeai funcie z=z^2+c.

Cum se poate construi un set Julia?


Alegem un punct c din planul complex de forma x+iy. Pentru a vedea dac z aparine sau nu setului, iterm funcia z_n+1=z_n^2+c (initial, z_0=0). Dac punctul z rmne lng origine, el aparine setului Julia, n caz contrar, punctul se deplaseaz ctre infinit i i asociem o valoare n funcie de viteza cu care se deplaseaz ctre infinit.

S lum, spre exemplu, constanta c = i.


c = i = 0+1*y z_1 = z_0^2+i = 0+i = i z_2 = z_1^2+i = i^2+i = -1+i z_3 = z_2^2+i = (-1+i)^2+i = i^2-2i+1 = -2i etc.

Valoarea lui c determin forma setului Julia: cu alte cuvinte, fiecrui punct din planul complex i este asociat un set Julia corespunztor. Exemple:

c=0.11031031-0.67037*i

c=-0.561321+0.641000*i

Pentru a putea genera o imagine a ntregului set Julia asociat punctului c, trebuie s repetm acest algoritm pentru toate punctele z ale cror coordonate sunt incluse n plaja: -2<x<2 -1,5<y<1,5

Cazuri speciale
c=i
c=-0,123+0,745i

Fractal dendrit

Iepurele lui Douady

Seturile Julia sunt strns legate de setul Mandelbrot. Pentru a obine un fractal Mandelbrot, iterm formula pentru fiecare punct c din planul complex i ncepem ntotdeauna cu z_0=0. Cnd construim un set Julia, c rmne fix pe tot timpul iterrii, pe cnd z_0 variaz.

Care este diferena dintre setul Mandelbrot i setul Julia?

Legtura ntre setul Mandelbrot i setul Julia

Trebuie remarcat faptul c n timp ce setul Mandelbrot este conex, un set Julia este conex doar dac este asociat cu un punct din setul Mandelbrot. Exemplu:
O mulime este conex dac ntre oricare 2 puncte ale sale se poate duce o linie poligonal inclus n acea mulime.

Generarea setului Julia


function Julia(c,k,v)

% JULIA(C,K,V) deseneaza setul Julia cu urmatorii parametrii: % c este un numar complex folosit in harta f(z) = z + c. % k reprezinta numarul de iteratii % v determina numarul de puncte de pe axa Ox.
% JULIA foloseste constanta c = 0.2+0.65i, numarul de iteratii k = 14, % si numarul punctelor de pe axa Ox este v = 500. % implicit if nargin < 3 c = 0.2+0.65i; k = 14; v = 500; end

% radius of the circle beyond which every point diverges r = max(abs(c),2); % divide the x-axis d = linspace(-r,r,v); % creaza matricea cu numerele complexe A = ones(v,1)*d+i*(ones(v,1)*d)'; % creaza matricea punctelor B = zeros(v,v);

% iteratii for s = 1:k B = B+(abs(A)<=r); % harta A = A.*A+ones(v,v).*c; end;


% setarile graficului imagesc(B); colormap(jet); hold off; axis equal; axis off;

Aplicaii ale fractalilor


Informatic: arhivarea, crearea desenelor animate pe calculator; Chimie: Structura polimerelor, nylonului, poliesterului, se bazeaz tot pe o structur fractal; Biologie: evaluarea cantitativ a tumorilor, studiul proceselor de morfogenez, evaluarea operativ a strii de sntate; Telecomunicaii: securizarea transmisiilor de date; Medicin: resuscitarea netraumatic n cazul stopului cardiac, resuscitarea din stri de coma, diagnoza sistemului cardiovascular i a sistemului nervos central; Sociologie: modelarea i evaluarea fenomenelor de criz. Art, Muzic, etc.

Fractalii-in macrocosmos
distributia galaxiilor relativ apropiate (pana la 50 de milioane de ani-lumina) este fractal, de dimensiune 1,23.
Exemplu:Galaxiile care fac parte din Grupul Local:Calea Lactee,Andromeda,Norul Magelan Mic si Mare.

Planeta Saturn s-a descoperit ca fiecare inel al sau este frnt la mijloc,

genernd alte inele ,care la randul lor prezentau aceeasi frantura. Aceasta structura este uimitor de similara cu Setul lui cantor(fractal):

Setul lui cantor


Daca suprapui cercurile peste punctele din imaginea de mai jos obii un model simplu al inelelor lui Saturn.

Inelele lui Saturn

Fractalii in microcosmos
Dintre toate stiintele, medicina utilizeaza cel mai mult geometria fractala. Aproape toate organele corpului uman au caracter fractal si buna lor functionare este strans legata de dimensiunea lor. Insasi ADN-ul uman poate fi reprezentat fractal:

Alcatuirea plamanilor este fractala.

Concluzii
1. Fractalii nu sunt o invenie a secolului XX, ei existau nc de la nceput n jurul nostru dar nu am avut puterea sa i reproducem;