05.06.2015 Views

Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag

Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag

Fractales de Koch et Mandelbrot - Ensiwiki - Ensimag

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!