Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag
Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag
Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Ensimag</strong> 1A – Proj<strong>et</strong> C - Préparation 2012 - Exercice <strong>Fractales</strong><br />
3 Programme : <strong>Fractales</strong> <strong>de</strong> Man<strong>de</strong>lbrot<br />
3.1 Principe général<br />
Le fonctionnement <strong>de</strong> calcul pour ce type <strong>de</strong> fractale est le suivant :<br />
• On définit un plan complexe associant à chaque point (i, j) <strong>de</strong> l’image un nombre complexe z 0 .<br />
• On définit une fonction complexe f(z) ainsi que la suite associée z n+1 = f(z n )<br />
• Pour chaque point (i, j) <strong>de</strong> l’image, on prend le z 0 associé dans le plan (ex : pour le point (0,1), la valeur<br />
complexe 0 + 1i)<br />
• On calcule ensuite les termes z n <strong>de</strong> la suite jusqu’à ce que |z n | atteigne une valeur <strong>de</strong> sortie choisie, ou que n<br />
atteigne une certaine profon<strong>de</strong>ur donnée<br />
• Si la profon<strong>de</strong>ur est atteinte, la suite converge ; tandis que si la valeur du module <strong>de</strong> sortie est atteinte, la<br />
suite diverge<br />
• Pour colorier l’image, on affiche pour chaque point divergeant une couleur associée à la profon<strong>de</strong>ur atteinte<br />
3.2 Fractale <strong>de</strong> base <strong>de</strong> Man<strong>de</strong>lbrot<br />
On se propose tout d'abord <strong>de</strong> tracer une image représentant une partie <strong>de</strong> l’ensemble <strong>de</strong> Man<strong>de</strong>lbrot avec la<br />
fonction f(z) = z 2 + z 0<br />
Autrement dit, c<strong>et</strong> ensemble <strong>de</strong> Man<strong>de</strong>lbrot est l’ensemble <strong>de</strong>s points c du plan complexe tels que la suite : z n+1 =<br />
z n<br />
2 + c <strong>et</strong> z 0 = 0 converge vers un point <strong>de</strong> C.<br />
Dans c<strong>et</strong>te partie, on <strong>de</strong>man<strong>de</strong> <strong>de</strong> produire une image en noir <strong>et</strong> blanc <strong>de</strong> l’ensemble : un point est colorié en noir<br />
s’il appartient à l’ensemble, <strong>et</strong> en blanc sinon. Les intervalles à utiliser sont [−2.2; 0.8] pour les abscisses, <strong>et</strong> [−1.5;<br />
1.5] pour les ordonnées. L’image fournie <strong>de</strong>vra être aux dimensions 300*300 pixels.<br />
Pour déterminer si un point diverge ou converge, il est possible <strong>de</strong> s’arrêter après 1000 itérations.<br />
Enfin, on pourra remarquer que si R(z) 2 + I(z) 2 ≥ 4, alors la suite diverge.<br />
3.3 Tracé d’autres fractales <strong>de</strong> Man<strong>de</strong>lbrot<br />
On souhaite désormais pouvoir spécifier d’autres valeurs pour le sous-ensemble à visualiser, ainsi que pouvoir<br />
fournir <strong>de</strong>s tailles d’images différentes. Comme on souhaite ne pas avoir <strong>de</strong> déformation dans l’image, les<br />
paramètres sont les suivants :<br />
• Résolution horizontale (RESOL_X) <strong>et</strong> résolution verticale (RESOL_Y) <strong>de</strong> l’image<br />
• Coordonnées X <strong>et</strong> Y du centre du sous-ensemble (centre = CENTRE_X + i CENTRE_Y )<br />
• Intervalle horizontal du sous-ensemble (SPAN_X)<br />
• Nombre d’itérations maximal (NB_ITER_MAX)<br />
Le nombre d’itérations maximal ne peut pas être connu à l’avance, mais est dépendant soit du zoom sur le sousensemble,<br />
soit <strong>de</strong> l’intervalle horizontal représenté. Quelques exemples d’images sont donnés <strong>de</strong>ssous (Tab. 1). Si<br />
vous voulez en faire d’autres, à vous <strong>de</strong> trouver une valeur suffisamment gran<strong>de</strong>, mais pas trop pour ne pas alourdir<br />
inutilement le calcul.<br />
Modifier votre co<strong>de</strong> précé<strong>de</strong>nt pour prendre en compte ces paramètres. L’utilisation du programme s'effectuera<br />
sous la forme : ./man<strong>de</strong>lbrot <br />
On lira les paramètres dans le fichier <strong>de</strong> configuration config_file. Le fichier outfile est le nom du fichier contenant<br />
l’image à créer.<br />
Plusieurs fichiers <strong>de</strong> configurations sont fournis dans le répertoire « configs ». Les fichiers intitulés<br />
« config_fractale_1_nx.txt » correspon<strong>de</strong>nt aux fractales <strong>de</strong> Man<strong>de</strong>lbrot étudiées dans c<strong>et</strong>te partie.<br />
6/8