Représentation de l’ensemble de Mandelbrot.
Il est fort probablement que vous ayez déjà croisé, au détour d’une salle de math ou d’un site web sur le sujet, les célèbres figures de Mandelbrot. Entre géométrie et art, ces figures sont magnifiques, mais ce qu’on sait moins, c’est à quoi elles correspondent réellement.

D’où la question à laquelle je vais tenter de répondre : qu’a-t-on réellement devant les yeux quand on regarde une figure de Mandelbrot ?

L’explication rapide et simple

Ces figures sont des représentations d’une fonction mathématique, appelée suite de Mandelbrot.

Habituellement, quand on trace la représentation graphique d’une fonction, on place en $y$ la valeur de $x$ après passage par la fonction $f$ (soit $f(x)$). On prend donc les valeurs de l’axe des abscisses que l’on passe dans la fonction et ça nous donne l’ordonnée des points pris sur l’abscisse.

En traçant tous les points de coordonnées $x$ et $f(x)$, on obtient une courbe et ainsi la représentation graphique de la fonction, plus visuelle et plus intuitive que la formule qui lui est associée.

Pour les figures de Mandelbrot, la fonction ne prend plus seulement les valeurs $x$ sur l’axe horizontal, mais toutes les valeurs du plan, c’est-à-dire tous les points $(x;y)$. Ce n’est donc plus juste un $x$ que l’on injecte dans une fonction, mais deux nombres, $x$ et $y$, et on obtient une troisième valeur qui est ensuite représentée sur le dessin par une couleur.
Pour le dire autrement, la couleur du pixel situé aux coordonnées (x;y) est obtenue en injectant $x$ et $y$ dans la fonction de Mandelbrot. En faisant ça pour chaque pixel, on obtient une image entière.

Dans le cas de la fonction de Mandelbrot, les figures obtenues sont particulièrement belles et envoûtantes et présentent des formes fractales. Bien-sûr, si l’on prenait une autre fonction, les figures seraient différentes. Celles de Mandelbrot sont néanmoins assez particulières, et la suite de Mandelbrot n’est pas n’importe laquelle.

Dans ce qui suit, j’explore un peu plus en détail la fonction qui permet d’obtenir les figures de Mandelbrot, et comme on pourra constater, bien que les images semblent infiniment détaillées et complexes, la fonction de Mandelbrot est, elle, incroyablement simple.

Les figures de Mandelbrot font partie de ce qui rend les mathématiques si élégantes : une fonction si simple qui arrive à produire des résultats aussi surprenants, et dont la représentation seule constitue une forme d’art à part entière.

L’ensemble de Mandelbrot

Quand on regarde la figure, on observe des zones noires qui se distinguent des régions bien plus colorées partout autour. Historiquement, Benoît Mandelbrot cherchait à obtenir une représentation de la partie en noire. En effet, l’ensemble de Mandelbrot $\mathscr{M}$ correspond à tous les nombres situés dans les zones noires. Ces nombres agissent différemment des autres à travers la fonction de Mandelbrot.

Pour l’anecdote, Benoît Mandelbrot effectuait les calculs sur ces vieux calculateurs sans gestionnaire d’affichage. Pour obtenir la figure, il fallait imprimer sur du papier. Les résultats étaient si surprenants que les techniciens pensaient que l’imprimante était en panne, et jetaient les feuilles lorsqu’elles sortaient ! Benoit Mandelbrot dût patienter à côté pour surveiller ses impressions.

L’ensemble de Mandelbrot est obtenu par la suite de Mandelbrot, en fait. Comme mentionné plus haut, cette suite utilise des nombres à deux valeurs, $(x;y)$ issues du corps des nombres complexes (de $\Complex$), qui sont des nombres au-delà des nombres réels (de $\Reals$). Il reste bien-sûr possible de faire des maths avec ces nombres complexes et c’est précisément ce qui est fait ici.

La suite de Mandelbrot se définit comme :
$$\begin{cases}z_0=0 \\ z_{n+1}=z_n^2+c \end{cases}$$

Où :

  • $z$ est le nombre complexe sur lequel on applique la suite ;
  • $c$ est un autre nombre complexe quelconque.

Je ne vais pas détailler beaucoup ce qu’est une suite, mais pour faire simple, il s’agit simplement d’une fonction qui s’applique à elle-même un certain nombre de fois. Dans le cas de Mandelbrot, on aurait :

$$\begin{aligned}z_0 &= 0 \\ z_1 &= z_0^2 + c = c \\ z_2 &= z_1^2 + c = c^2 + c \\ z_3 &= z_2^2 + c = (c^2 + c)^2 + c \\\dots \\ z_{n+1} &=z_n^2 + c \end{aligned}$$

En pratique, pour obtenir les figures de Mandelbrot, on parcourt tout le plan complexe, et pour chaque point $c$ de coordonnées $(x;y)$ — qui devient notre nombre complexe ci-dessus — on calcule les valeurs de la suite un nombre $n$ arbitraire de fois (par exemple 500 fois).

Selon le point $(x;y)$ du plan, notre $z_{500}$ reçoit une valeur bien précise. Cette valeur est ensuite transformée en une couleur, et en faisant ces opérations pour chaque point (chaque pixel) on reconstitue ces images.

Maintenant, ce qui distingue les zones noires du reste, et donc ce qui intéressant Benoît Mandelbrot, c’était de savoir si la valeur $z_{500}$ tendait vers un nombre fini, ou vers l’infini.

Il se trouve que les valeurs situées dans les zones noires d’une figure de Mandelbrot sont finies : peu importe le nombre de fois qu’on itérera la suite : 500 fois, 1 000 fois, 100 000 fois… le résultat restera contenu dans un intervalle fini. Dans les figures, quand la valeur tend vers un nombre fini, on colorie ce pixel en noir.

Pour les autres nombres, ceux dont la suite tend vers l’infini, la couleur correspond alors à la vitesse avec laquelle cette suite converge vers l’infini. C’est-à-dire, au bout de combien d’itérations on considère qu’on se trouve à l’infini (généralement une limite arbitraire fixée, par exemple 200). Par exemple, si le nombre dépasse 200 après cinq itérations, on colorie ce pixel en rouge, et s’il dépasse 200 après cent itérations, on le met en jaune. S’il ne dépasse pas 200, alors il est noir.

Pour donner un exemple, la suite réelle définie par la fonction carrée : $\begin{cases}f_0 = x \\ f_{n+1}=f_n^2\end{cases}$ tendra rapidement vers l’infini pour toutes les valeurs plus grandes que 1. Elle restera sur 1 pour $x$ égal à 1, et elle tendra vers 0 pour les valeurs plus petites que 1.

Si l’on représentait ça sur une droite, le segment {-1;1} serait noir, et en dehors on aurait des couleurs vives :

Principe de l’ensemble de Mandelbrot appliqué sur la courbe x².
Principe des figures de Mandelbrot appliqué à la fonction carrée.

Pour une figure de Mandelbrot, on fait ça pour tous les couples de points, ligne par ligne pour l’ensemble du plan. Le résultat est la figure bien connue.

Il n’y a rien de bien compliqué dans tout ça : il s’agit juste d’une suite mathématique, appliquée à tous les nombres du plan, et où lesdits nombres sont des nombres complexes de $\Complex$ (et donc où les opérations sur ces nombres sont un petit peu différentes ce ceux qu’on utilise dans $\Reals$).

Ce que l’on obtient ensuite est purement un résultat mathématique : certains nombres tendent plus vite vers l’infini que d’autres, certains même pas du tout. C’est là juste la façon dont les nombres se comportent à travers une fonction donnée.

Ces belles figures sont cachées dans les nombres et ce genre de représentation graphique permet de les révéler de la plus artistique des façons.

Juste pour le plaisir, voici quelques portions de la figure de Mandelbrot, fortement agrandies :

Fractals.Fractals.Fractals.
Fractals.Fractals.Fractals.
Fractals.Fractals.Fractals.

Ces images proviennent de mon outil de visualisation des figures de Mandelbrot. N’hésitez pas à explorer !

Bien-sûr, on peut généraliser ce principe à d’autres fonctions, d’autres suites, à la place de la suite de Mandelbrot. On obtient alors d’autres figures, plus ou moins complexes et plus ou moins jolies. La figure de Mandelbrot est juste la plus connue et la première à avoir été faite de cette façon, par Benoît Mandelbrot. Mais il n’était pas le premier à avoir imaginé le concept : ceci revient à Pierre Fatou et Gaston Julia, dont il existe également des figures !

Et les ensembles de Julia ?

Dans l’ensemble de Mandelbrot, on a utilisé cette suite $\begin{cases}z_0=0 \\ z_{n+1}=z_n^2+c_{x;y} \end{cases}$ où l’on a fixé $z_0$ à 0 et où l’on parcourt le plan complexe pour chaque point $c_{x;y}$.

Si l’on fait l’inverse, à savoir fixer une valeur de $c$ et que l’on parcourt le plan pour chaque valeur $z_0$, soit $\begin{cases}z_0=z_{x;y} \\ z_{n+1}=z_n^2+c \end{cases}$, alors on obtient d’autres figures : les figures de Julia. Il y a une figure de Julia pour chaque point $c$ arbitrairement choisi sur le plan. Ces figures sont très jolies également !

Si l’on a bien compris : chaque figure de Julia correspond à une valeur $c$, et la figure de Mandelbrot correspond à une figure où l’on parcourt l’ensemble des points $c$ du plan, on voit qu’en réalité, la figure de Mandelbrot est une carte complète de toutes les figures de Julia !

Ceci explique que l’on retrouve certains motifs des différentes figures de Julia dans la figure de Mandelbrot. Si l’on zoom suffisamment sur un point $c$ de la figure de Mandelbrot, on obtient des motifs similaires à ceux de la figure de Julia pour lequel on a fixé la constante à ce même $c$.

Pour conclure

Les mathématiques, vues sous le bon angle, possèdent non seulement la vérité, mais également une suprême beauté.
— Bertrand Russell

Les mathématiques sont très abstraites, les nombres complexes dont il est question ici sûrement davantage encore que les nombres réels. Aussi, si vous ne comprenez pas tout ici, ce n’est pas grave. Retenez juste que les figures de Mandelbrot (ou celles de Julia) sont des représentations graphiques de fonctions mathématiques : comme des cartes topographiques sur un ensemble de nombres après le passage par une fonction mathématique.

On prend juste un pixel du plan, correspondant à un nombre {x;y}, auquel on applique une fonction. Cette fonction nous donne un nombre qui est convertie en une couleur. En répétant l’opération pour chaque pixel du plan, on obtient ces figures. Si l’on zoom dans la figure, on utilise des nombres plus précis, avec davantage de décimales.

Les figures obtenues sont jolies : elles sont révélées par cette méthode où l’on colorise chaque pixel selon une règle précise, mais ces figures ont toujours été là, cachées dans les nombres et dans les mathématiques.

Enfin, pour vous amuser, je vous propose mes deux petits générateurs de figures de Mandelbrot et de Julia (n’hésitez pas à sélectionner une couleur, puis à zoomer sur une région de l’image) :

5 commentaires

gravatar
Pépito écrit :

très bon sujet, intéressant comme d'habitude, malgré que je n'ai pas le niveau pour comprendre ces calculs 😓.Par contre je n'ai pas vraiment saisie ce passage :

pour toutes les valeurs plus grandes que 1. Elle restera sur 1 pour x égal à 1, et elle tendra vers 0 pour les valeurs plus petites que 1. Si l’on représentait ça sur une droite, le segment {-1;1} serait noir, et en dehors on aurait des couleurs vivres
gravatar
Matheux en herbe écrit :

@Pépito :
Pour essayer de clarifier, dans le passage que tu cites, la fonction est est l'élévation au carré.

Cela signifie que l'on multiplie le nombre par lui même à chaque itération.

- Si le nombre de départ est supérieur à 1, en le multipliant par lui-même a chaque itération on ontient un résultat de plus en plus grand qui tend vers l'infini.

- Si le nombre de départ est 1, on multiplie toujours 1 par lui-même et on reste sur 1

- Si le nombre de départ est plus petit que 1, en l'élevant au carré, le résultat et plus petit.
Par exemple si le nombre de départ est 0.5 ; le début de la suite est 0.5 ; 0.25 (0.5 x 0.5) ; 0.0625 (0.25 x 0.25); 0.00390625... La suite tend vers 0

Merci encore pour ce super article qui explique simplement ces beaux ensembles

gravatar
Matheux en herbe écrit :

@Pépito :
Oops, j'ai oublié une partie dans ma réponse.

La partie [-1;1] serait noire car on ne tend pas vers une valeur infinie C'est soit 1 pour 1 ou -1, soit 0 pour les valeurs de l'intervalle.
Ensuite plus on s'éloigne de 1 (en valeur absolue), plus on tend vers l'infini rapidement (le nombre grossi d'autant plus vite à chaque itération quand on s'éloigne de 1) ce qui conduit à un changement graduel de la couleur et donne la ligne présentée par Timo

gravatar
Le Hollandais Volant écrit :

@Pépito : si tu prends un nombre X, et que tu prends le carré de ce nombre X², il y a trois possibilités :
** soit le résultat X² est supérieur à X
** soit le résultat X² est égal à X
** soit le résultat X² est inférieur à X

Si maintenant on crée une suite qui prend sans cesse le carré du résultat précédent, donc X², puis (X²)², puis ((X²)²)², et ainsi de suite, alors :
** soit le résultat va être de plus en plus grand et tendre vers l'infini
** soit le résultat sera constant et toujours égal à X
** soit le résultat va être de plus en plus petit et tendre vers 0

Ce que Benoît Mandelbrot a fait, avec sa fonction à lui, c'est voir si le résultat tendait vers l'infini ou vers un nombre fini (0, 1 ou tout autre nombre réel, juste autre chose que l'infini) après N itérations.

Il a représenté ça sur un plan :
** en noir les endroits où les valeurs finissent par tendre par un nombre fini
** en couleur les endroits où la valeur fini par diverger vers l'infini ; et dans ce cas, la couleur représente la vitesse de convergence.

Ce que j'ai fait avec mon segment [-1;1], c'est appliquer ce principe avec une fonction très simple x:->x².
Avec cette fonction, toutes les valeurs entre -1 et 1 tendent vers 0 après un grand nombre d'itérations de la fonction x². Pour la valeur 1 et -1, on reste égal à 1. Pour les valeurs en dehors de ces bornes, on finit par tendre vers l'infini, et de plus en plus rapidement !

Tu peux essayer : avec (((0,5²)²)²)² par exemple, ou avec (((0,9²)²)²)² : ça tend vers 0, qui est un nombre bien précis, bien fini.
Et ensuite avec (((1,5²)²)²)² : à chaque fois qu’on remet le résultat au carré, ça grandit et finit par tendre vers l’infini.

gravatar
Pierre écrit :

Très bon article, très intéressant ! Objet passionnant..

Juste : "..serait noir, et en dehors on aurait des couleurs VIVRES" ? Vives plutôt non ?

Merci de montrer les beautés cachées dans les sciences, domaine fascinant et exaltant..


Votre commentaire sera visible après validation par le webmaster.