Conclusion et perspectives
Les travaux pr'esent'es dans cette thèse concernent les
fractals et plus particulièrement la th'eorie qui permet de les
g'en'erer par la technique des systèmes de fonctions
itérées (IFS).
Après l'avoir appliqu'ee a` (R, R2 et C),
nous avons regard'e son application a` l'espace plus g'en'eral des
multifonctions qui a` des applications dans des domaines informatiques et
notamment celui de la compression des images (voir [16]).
Plusieurs questions se r'evelent d'ores et
d'ejàint'eressantes.
- Quelles sont les conditions sur un espace pour pouvoir y
construire des fractals?
- Y-a-t-il une m'ethode g'en'erale d'int'egration de fonctions
mesurables sur un ensemble de type fractal?
- Que se passe t-il si les contractions de l'IFS sont des
multifonctions?
- Quelles sont les op'erations (somme, produit, sous-espaces,
...) qui pr'eservent la propri'et'es d'être fractal?
Cette thèse nous a permis 'egalement d'acqu'erir des
comp'etences en topologie et en th'eorie de la mesure pour pouvoir acc'eder a`
des problèmes de s'elections et de cross-s'elections mesurables dans le
cadre des multifonctions ou dans celui des groupes topologiques en
g'en'eral.
ANNEXE
PROGRAMMES SUR LES FRACTALS
Dans cette annexe, nous avons présentéquelques
programmes sous Matlab® servant a` illustrer la construction des
différents types de fractals. Nous avons présentéla
construction
de fractals selon la technique des systèmes de fonctions
itérées (IFS). Nous avons appliquécette
méthode a` l'aide des approches probabiliste seulement.
Section .1
L'ensemble de Cantor
function Cantor shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Cantor')
x = 1/2 ;
h = plot(x,'.'); black = [0 0 0];
set(h,'markersize',1,'color',black,'erasemode','none');
axis([0 1 0 1]) axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p = [ .8 .9];
cnt = 1;
tic
while -get(stop,'value')
r = rand;
if r < p(1)
x = 1/3*x ; else
x = 1/3*x + 2/3;
end
set(h,'xdata',x); drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('%8.0f points in 7.6.3f seconds',cnt,t);
text(0.25,0,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .2
Courbe de von Koch
function Koch_curve
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Koch curve') x = [1; 0];
h = plot(x(1),x(2),'.');
red = [1 0 0];
set(h,'markersize',1,'color',red,'erasemode','none'); axis([0 1
-0.5 1])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p = [ 0.15 .35 .5 1];
A1 = [ 1/3 0; 0 1/3];
A2 = [ 1/6 -sqrt(3)/6; sqrt(3)/6 1/6]; b2 = [1/3; 0];
A3 = [ 1/6 sqrt(3)/6; -sqrt(3)/6 1/6]; b3 = [0.5; sqrt(3)/6];
A4 = [ 1/3 0; 0 1/3]; b4 = [2/3; 0];
cnt = 1;
tic
while ~get(stop,'value')
r = rand;
if r < p(1)
x = A1*x ;
elseif r < p(2)
x = A2*x + b2;
elseif r < p(3)
x = A3*x + b3;
else
x = A4*x+b4;
end
set(h,'xdata',x(1),'ydata',x(2)); drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf ('%8.0f points in %6.3f seconds',cnt,t);
text(.25,-.5,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .3
Triangle de Sierpenski
function Sierpinski
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Sierpenski') x = [0; 0];
h = plot(x(1),x(2),'.');
darkblue = [0 0 1];
set(h,'markersize',1,'color',darkblue,'erasemode','none'); axis([0 1 0 1])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p =
|
[ 0.2
|
0.3
|
0.5];
|
|
A = [
|
.5
|
0; 0
|
.5];
|
|
b2 =
|
[0.5;
|
0];
|
b3 = [1/4;
|
sqrt(3)/4];
|
cnt = 1;
tic
while ~get(stop,'value')
r = rand;
if r < p(1)
x = A*x ;
elseif r < p(2)
x = A*x + b2; elseif r < p(3)
x = A*x + b3 ;
end
set(h,'xdata',x(1),'ydata',x(2));
drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('%8.0f points in %6.3f seconds',cnt,t);
text(0.25,-0.01,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .4
Foug`ere de Barnsley
function fern
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Fern') x = [.5; .5];
h = plot(x(1),x(2),'.');
darkgreen = [0 2/3 0];
set(h,'markersize',1,'color',darkgreen,'erasemode','none');
axis([0.3 0.8 0 1])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p = [ .85 .92 .99 1];
A1 = [ 0 0 ; 0 .16]; b1 = [0.5; 0];
A2 = [ .849 .037; -.037 .849]; b2 = [0.075; 0.183];
A3 = [ .197 -.226; .226 .197]; b3 = [0.4; 0.049];
A4 = [-.15 .283; .260 0.237]; b4 = [0.575; -0.084];
cnt = 1;
tic
while ~get(stop,'value') r = rand;
if r < p(1)
x = A1*x + b1;
elseif r < p(2)
x = A2*x + b2;
elseif r < p(3)
x = A3*x + b3;
else
x = A4*x;
end
set(h,'xdata',x(1),'ydata',x(2));
drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('7.8.0f points in 7.6.3f seconds',cnt,t);
text(-1.5,-0.5,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .5
Poussi`ere de Cantor
function Cantordust
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal Cantordust') x = [.5; .5];
h = plot(x(1),x(2),'.');
black = [0 0 0];
set(h,'markersize',1,'color',black,'erasemode','none'); axis([-3
3 0 10])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
drawnow
p =
A = [ b2 =
|
[ 0.5 .25 [0.25;
|
.72 0;
0];
|
.89 1];
0 .25]; b1 = [0;
b3 = [0.5; 0.75];
|
0.5]; b4 =
|
[0.75;
|
0.25];
|
cnt = 1;
tic
while ~get(stop,'value')
r = rand;
if r < p(1)
x = A*x + b1; elseif r < p(2)
x = A*x + b2; elseif r < p(3)
x = A*x + b3; else
x = A*x;
end
set(h,'xdata',x(1),'ydata',x(2));
drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('7.8.0f points in 7.6.3f seconds',cnt,t);
text(.2,-.05,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .6
Tapis de Sierpenski
function tapis_de_Sierpinski
shg
clf reset
set(gcf,'color','white','menubar','none', ...
'numbertitle','off','name','Fractal tapis de Sierpinski') x = [0; 0];
h = plot(x(1),x(2),'.');
blue = [0 0 1];
set(h,'markersize',1,'color',blue,'erasemode','none');
axis([0 1 0 1])
axis off
stop = uicontrol('style','toggle','string','stop', ...
'background','white');
[ .1
|
.3
|
.5
|
.6 .75 .85
|
.9
|
1];
|
|
[ 1/3
|
0;
|
0
|
1/3];
|
b2 =
|
[0;
|
1/3];
|
|
[0; 2/3];
|
b4 =
|
[1/3;
|
0];
|
b5 =
|
[1/3;
|
2/3];
|
[2/3;
|
0];
|
b7 =
|
[2/3;
|
1/3]; b8 = [2/3; 2/3];
|
drawnow p = A = b3 = b6 =
cnt = 1;
tic
while ~get(stop,'value')
r = rand;
if r < p(1)
x = A*x;
elseif r < p(2)
x = A*x + b2; elseif r < p(3)
x = A*x + b3; elseif r< p(4)
x = A*x+b4; elseif r< p(5)
x = A*x + b5; elseif r< p(6)
x= A*x + b6; elseif r<p(7)
x= A*x + b7;
else
x= A*x + b8;
end
set(h,'xdata',x(1),'ydata',x(2));
drawnow
cnt = cnt + 1;
end
t = toc;
s = sprintf('7.8.0f points in 7.6.3f seconds',cnt,t);
text(.2,-.05,s,'fontweight','bold');
set(stop,'style','pushbutton','string','close','callback','close(gcf)')
Section .7
L'ensemble de Julia
7.7.L'ensemble Julia avec c=-.745429
col=30;
m=400;
cx=0;
cy=0;
l=1.5;
x=linspace(cx-l,cx+l,m); y=linspace(cy-l,cy+l,m);
[X,Y]=meshgrid(x,y);
c= -.745429;
Z=X+i*Y;
for k=1:col;
Z=Z.^2+c;
W=exp(-abs(Z));
end
colormap prism(256)
pcolor(W);
shading flat;
axis('square','equal','off');
Pour voir d'autre ensemble de Julia il suffit modifier le nombre
c o`u le polynàome Z. Par exemple prenant c=0.32+0.034i et Z=Z.^3+c.
Section .8
L'ensemble de Mandelbort
col=20;
m=400;
cx=-.6;
cy=0;
l=1.5;
x=linspace(cx-l,cx+l,m); y=linspace(cy-l,cy+l,m);
[X,Y]=meshgrid(x,y);
Z=zeros(m);
C=X+i*Y;
for k=1:col;
Z=Z.^2+C;
W=exp(-abs(Z));
end
colormap copper(256); pcolor(W);
shading flat;
axis('square','equal','off');
Pour voir d'autre ensemble de Mandelbort il suffit modifier le
polynàome Z. Par exemple prenant Z=Z.^3+c.
|
|