L'ensemble de Mandelbrot est un objet fractal
Chacune de ses parties, aussi petite que l'on veut, est similaire au tout, comme le montre la suite de zooms ci-dessous.
\( x_{min} = -2 \), \( x_{max} = 1.5 \), \( y_{centre} = 0 \)
Dans la vallée des hyppocampes
Agrandissement 44 fois\( x_{min} = -0.8 \), \( x_{max} = -0.735 \), \( y_{centre} = 0.15 \)
Agrandissement 233 fois\( x_{min} = -0.75 \), \( x_{max} = -0.735 \), \( y_{centre} = 0.15 \)
Agrandissement 1167 fois\( x_{min} = -0.743 \), \( x_{max} = -0.74 \), \( y_{centre} = 0.153 \)
Agrandissement 3500 fois\( x_{min} = -0.743 \), \( x_{max} = -0.742 \), \( y_{centre} = 0.1521 \)
Agrandissement 700 000 fois\( x_{min} = -0.742505 \), \( x_{max} = -0.7425 \), \( y_{centre} = 0.152115 \)
Agrandissement 35 000 000 fois\( x_{min} = -0.7425039 \), \( x_{max} = -0.7425038 \), \( y_{centre} = 0.15211385 \)
Définition de l'ensemble de Mandelbrot
Une loi déterministe relativement simple peut engendrer un système d'une complexité inouïe.
Pour chaque point \( (a, b) \) du plan, on considère la transformation \( \ T \ \)du plan
\[ (x,\ y) \longmapsto (x^2-y^2+a, \ 2 x y + b) \]puis la suite infinie de points du plan \( P_0 = (0, 0) \), \( P_1=T(P_0)=(a, b) \), \( P_2 = T(P_1) \), \( P_3 = T(P_2) \), ...
Si la suite de points est bornée, alors le point \( (a, b) \) appartient à l'ensemble de Mandelbrot. Par contre, si une sous-suite tend vers l'infini, alors \( (a, b) \) n'appartient pas à l'ensemble de Mandelbrot.
Réalisation pratique (approximation)
On se limite à une suite finie de points \( P_0, P_1, P_2, ... \) dont le dernier indice sera dénommé nbIter. Si la suite de points demeure dans le carré [-2; 2]×[-2; 2], alors (a, b) appartient à l'ensemble de Mandelbrot. Par contre, si un point sort du carré, alors (a, b) n'appartient pas à l'ensemble de Mandelbrot.
Algorithme
Input (a, b) (x, y) = (0, 0) n = 0; nbIter = 1023 Tant que (-2<=x<=2) et (-2<=y<=2) et (n<nbIter) (x,y) = (x^2-y^2+a, 2*x*y+b) n = n + 1 Output n
Interprétation et programme
- Si n = 0, alors (a, b) n'appartient pas à l'ensemble de Mandelbrot et le pixel (a, b) est coloré en bleu foncé;
- si n = nbIter, alors (a, b) appartient (probablement) à l'ensemble de Mandelbrot et le pixel (a, b) est coloré en rouge;
- si (0<n<nbIter) alors (a, b) n'appartient pas à l'ensemble de Mandelbrot et le pixel (a, b) prend une couleur intermédiaire selon une échelle en usage pour les températures:
Application en ligne
Explorez vous-même l'ensemble de Mandelbrot au moyen de l'application ci-dessous.