En 1979, Benoit B. Mandelbrot s'amusa avec une Žquation de rŽcurrence toute simple

zn+1 = zn2 + C
z0 = 0

dont le dŽveloppement est z0 , z02 + C , (z02 + C)2 + C , ...

1924-2010

NŽ en Pologne en 1924, le mathŽmaticien Benoit B. Mandelbrot Žmigre en France en 1936. Il travaille en 1958 pour IBM au centre de recherche Thomas B. Watson ˆ New York et enseigne ensuite en Sciences MathŽmatiques ˆ l'UniversitŽ Yale. Il est dŽcŽdŽ le 14 octobre 2010 ˆ Cambridge (Massachusetts) des suites d'un cancer du pancrŽas.Il avait 85 ans.

Site web de Benoit B. Mandelbrot


La valeur de C Žtant une constante de l'ensemble des nombres complexes qu'il associa ˆ un point de l'Žcran de son ordinateur. Pour chaque nombre complexe C associŽ ˆ un pixel de son Žcran, il obtint une suite de nombres complexes. Il calcula le module de chacun des termes de la suite

| z0 | , | z1 | , | z2 | , | z3 | , | z4 | , ...

Lorsque la suite des modules ne tendait pas vers l'infini, le point C Žtait considŽrŽ comme appartenant ˆ l'espace recherchŽ et Žtait noirci. L'ensemble de Mandelbrot venait de na”tre.

Pour reproduire l'ensemble de Mandelbrot, on associe ˆ C des valeurs du plan complexe. On considre gŽnŽralement la portion du plan complexe ayant comme partie rŽelle, les valeurs entre -2.5 et 1.5 et comme partie imaginaire, les valeurs entre -1.5 et 1.5. Cette portion du plan complexe est subdivisŽe de faon ˆ former une grille dont les ŽlŽments seront associŽs ˆ des valeurs de C. Pour chaque valeur de C, on obtient une suite de modules. En pratique, on considre que la suite des modules ne tendra pas vers l'infini si les 30 premiers modules sont infŽrieurs ˆ 2, on colorie alors en noir le point de la grille. Aprs avoir considŽrŽ tous les points de la grille, on obtient un ensemble de points noircis : l'ensemble de Mandelbrot.

On peut colorer les points ˆ l'extŽrieur de l'ensemble de Mandelbrot en utilisant des couleurs qui dŽpendent du nombre de termes calculŽs avant d'obtenir un module supŽrieur ou Žgal ˆ 2. Les points d'une mme couleur peuvent tre interprŽtŽs comme Žtant des points s'Žloignant ˆ la mme vitesse de l'ensemble de Mandelbrot.

Exemple

Donnons ˆ C la valeur -0.1 + i correspondant au point (-0.1, 1) de notre grille.
zn+1 = zn2 + (-0.1 + i)
z0 = 0

Pour cette valeur de C, on obtient une suite de nombres complexes.

z0 = 0 + 0 i | z0 | = 0
z1 = -0.1 + i | z1 | = 1.005
z2 = -1.09 + 0.8 i | z2 | = 1.352
z3 = 0.448 - 0.744 i | z3 | = 0.869
z4 = -0.453 + 0.333 i | z4 | = 0.562
z5 = -0.006 + 0.698 i | z5 | = 0.698
z6 = -0.586 + 0.992 i | z6 | = 1.153
z7 = -0.738- 0.165 i  | z7 | = 0.756
z8 = 0.417 + 1.244 i  | z8 | = 1.312
z9 = -1.473 + 2.038 i  | z9 | = 2.514

Puisque | z9 | est supŽrieur ˆ 2, on considre que la suite des modules ira vers l'infini. Ce point n'appartient pas ˆ l'ensemble de Mandelbrot. On assignera donc la couleur # 9 au point (-0.1, 1) de la grille. Tous les points d'une mme couleur requirent le calcul d'un mme nombre de termes avant de constater qu'ils ne font pas partie de l'ensemble de Mandelbrot.

GŽomŽtrie fractale

L'ensemble de Mandelbrot prŽsente une propriŽtŽ intŽressante d'autosimilaritŽ. Sa structure se reproduit d'une faon identique ˆ toutes les Žchelles d'observation. Les formes qui prŽsentent cette propriŽtŽ d'autosimilaritŽ s'appellent des fractales. Les fractales ont la particularitŽ que n'importe quelle rŽgion lorsqu'elle est agrandie se rŽvle tout aussi finement structurŽe que la figure plus grande dont elle est extraite. Autrement dit, il y a une rŽgression infinie de dŽtails, un embo”tement infini de structures.

En agrandissant une rŽgion quelconque de l'ensemble de Mandelbrot, on remarque la prŽsence de points noirs qui se rŽvlent tre des copies conformes de l'ensemble de dŽpart.


1. L'ensemble de Mandelbrot


2. Zoom dans la partie supŽrieure de la figure 1


3.
Zoom dans la partie supŽrieure de la figure 2


4.
Zoom dans la branche de gauche de la figure 3

Suggestions de quelques outils d'exploration

  • Il existe sur le Web une multitude de logiciels qui portent sur l'ensemble de Mandelbrot et que l'on peut tŽlŽcharger. Ces logiciels permettent de faire l'Žtude de cette structure ˆ diffŽrents niveaux d'observation. Je vous suggre "Ultra Fractal " pour ceux qui travaillent sur un PC.

  • On peut aussi faire une incursion dans l'ensemble de Mandelbrot en utilisant Maple. Il suffit de copier le programme (en rouge) sur une feuille de travail du logiciel et d'indiquer ˆ la place de (-2)..(1),(-1.5)..(1.5) de la dernire ligne, l'Žtendue des parties rŽelles et imaginaires de C que l'on dŽsire visualiser. Faites attention aux dŽcimales si vous utilisez Maple 7 car il gre trs mal les Žtendues contenant des dŽcimales dans la macro-commande plot3d. ƒcrivez -15/10..15/10 plut™t que -1.5..1.5.

    couleur:=proc(a,b)

    local x,y,xi,yi,n;
    x:=a;
    y:=b;
    for n from 0 to 30 while evalf(x^2+y^2) < 4 do;
    xi:=evalf(x^2-y^2+a);
    yi:=evalf(2*x*y+b);
    x:=xi;
    y:=yi;
    od;
    n;
    end:

    plot3d(0,(-2)..(1),(-15/10)..(15/10),orientation=[-90,0],style=patchnogrid, scaling=constrained,axes=framed,numpoints=20000,color=couleur);

    Lorsque la partie rŽelle du point C est entre -2 et 1 et la partie imaginaire entre -1.5 et 1.5, on obtient ˆ partir du programme prŽcŽdent, une reprŽsentation colorŽe de l'ensemble de Mandelbrot.

    Voici des images qui ont ŽtŽ crŽŽes par ce programme. L'ordinateur utilisŽ doit tre rapide et doit disposer de beaucoup de mŽmoire. Chaque image nŽcessite le calcul d'environ 300 000 termes. Pour augmenter la vitesse d'exŽcution de l'ordinateur, il faudra diminuer la valeur du paramtre numpoints=20000. L'image sera Žvidemment moins prŽcise. Pour augmenter les dŽtails, on devra changer la valeur 30 de la boucle n from 0 to 30 pour une valeur supŽrieure.

    Merci ˆ Nicolas Rochette du CŽgep Beauce-Appalaches pour cette variation originale de l'ensemble de Mandelbrot.
    En changeant la dernire commande du programme prŽcŽdent pour celle-ci,

    plot3d(couleur, (-2)..(1), (-15/10)..(15/10), orientation=[-70,45], style=patchnogrid, axes=framed, lightmodel='light1', numpoints=40000, color=couleur);

    on obtient