
Les fractales sont des figures mathématiques qui présentent des formes fragmentées et répétitives lorsqu’on les observe de manière de plus en plus précise. Elles peuvent prendre des formes similaires à des flocons de neige ou à des éponges.
Sommaire
- 1 C’est quoi une fractale / un ensemble de Mandelbrot ?
- 2 Explication du script de la Numworks :
- 3 Analyse du script ligne par ligne :
- 4 Explication des modifications possibles et simples du script :
- 5 La couleur :
- 6 La forme :
- 7 La fractale parfaite :
- 8 Le flocon de neige :
- 9 Explication possible mais complexe de modification du script :
- 10 Conclusion :
- 11 Articles similaires
C’est quoi une fractale / un ensemble de Mandelbrot ?
Pour analyser le code, il est important de comprendre ce qu’est une fractale de Mandelbrot. Cette figure mathématique a été nommée ainsi en l’honneur de Benoît Mandelbrot, qui en a popularisé les représentations dans les années 1980.
Les fractales de Mandelbrot sont basées sur l’ensemble des points c du plan complexe pour lesquels la suite de nombres complexes suivante est définie par récurrence :

Cet ensemble de points a été découvert par Gaston Julia et Pierre Fatou avant la première guerre mondiale, et permet de déterminer les ensembles de Julia associés à la suite. Chaque point du plan complexe correspond à un ensemble de Julia distinct. Les points de l’ensemble de Mandelbrot correspondent précisément aux ensembles de Julia connexes (c’est-à-dire formant une seule partie), tandis que ceux en dehors correspondent aux ensembles de Julia non connexes. L’ensemble de Mandelbrot est étroitement lié aux ensembles de Julia, et ils produisent des formes similairement complexes. (Wikipedia)
Pour en apprendre plus sur l’histoire et le fonctionnement de la géométrie fractale et des fractales de Mandelbrot le documentaire les couleurs de l’infini écrit par Arthur C. Clarke, sorti en 1995, disponible sur Netflix explique très bien, bien que la qualité d’image soit un peu dépassée.
Pour dessiner la fractale de Mandelbrot, on va associer à chaque point du plan un nombre complexe. On insère ce nombre dans la formule ci-dessus, puis le résultat de la formule est à nouveau mis dans la formule et ainsi de suite. Au bout d’un moment le résultat soit grandit de plus en plus vers l’infini, soit le résultat ne grandit plus. Selon si le résultat va vers l’infini ou ne grandit plus, on va colorier le point d’une couleur ou d’une autre. Pour ne pas calculer jusqu’à l’infini, on fixe un nombre maximum de fois où on fait le calcul, le nombre d’iterations. Quand on atteind ce nombre d’itérations, si le résultat de la formule est inférieur à deux, on considère que le point fait partie de l’ensemble de Mandelbrot.
Explication du script de la Numworks :
Dans notre calculatrice Numworks, il y a un script nommé « Mandelbrot », il sert, quand on lui donne un nombre d’itérations (répétition d’une opération sur une valeur de départ), à « dessiner » avec Kandinsky une fractale Mandelbrot. Mais on peut le modifier pour faire en sorte qu’il affiche une fractale différente :
Par exemple faire un flocon de neige beaucoup trop complexe bien que plus beau qu’un flocon de koch selon moi.
Analyse du script ligne par ligne :
# This script draws a Mandelbrot fractal set # N_iteration: degree of precision import kandinsky def mandelbrot(N_iteration): for x in range(320): for y in range(222): # Compute the mandelbrot sequence for the point c = (c_r, c_i) with start value z = (z_r, z_i) z = complex(0,0) # Rescale to fit the drawing screen 320x222 c = complex(3.5*x/319-2.5, -2.5*y/221+1.25) i = 0 while (i < N_iteration) and abs(z) < 2: i = i + 1 z = z*z+c # Choose the color of the dot from the Mandelbrot sequence rgb = int(255*i/N_iteration) col = kandinsky.color(int(rgb*0.81),int(rgb*0.13),int(rgb*0.18)) # Draw a pixel colored in 'col' at position (x,y) kandinsky.set_pixel(x,y,col)
On va expliquer le script sans prêter attention au commentaire pour les anglophobes :
- Ligne 3 : on importe le module Kandinsky qui sera utile pour dessiner pixel par pixel l’ensemble de Mandelbrot
- Ligne 4 : on définit la fonction avec l’argument N_iteration qui représente ici le degré de précision du dessin, plus il est grand plus la fractale sera précise.
- Ligne 5 et 6 : on crée deux boucles « for » qui vont faire en sorte de « peindre » sur tout le format de l’écran
- Ligne 8 : on définit la variable z par un nombre complexe qui est ici (0,0)
- Ligne 10 : on crée la variable c qui prend comme valeur un nombre complexe qui correspond au format de l’écran
- Ligne 11 : on crée la variable i, on lui donne la valeur 0
- Ligne 12 : on commence à peindre le Mandelbrot à partir d’une boucle while qui se répète tant que i est plus petit que l’argument N_iteration et que la valeur absolue de z est plus petite que 2
- Ligne 13 : on incrémente 1 a i pour que la boucle ne soit pas infinie
- Ligne 14 : on calcule la suite qui définit le Mandelbrot : z*z+c
- Ligne 16 : on crée la variable rgb qui est l’integer de 255 fois i divisé par N_iteration
- Ligne 17 : on crée la variable col qui choisit la couleur générale de la fractale
- Ligne 19 : on pose le pixel à l’abscisse x l’ordonnée y la couleur col
Explication des modifications possibles et simples du script :
La couleur :
Maintenant que l’on a compris le script, on peut commencer par modifier très simplement la couleur du Mandelbrot. On ne peut pas vraiment changer le fond, mais la couleur de la fractale. Par défaut, elle est orange-jaune, mais peut être changée si on modifie les valeurs de la ligne 17 au niveau des endroits où il y a marqué rgb*une_valeur.
Si on modifie cette valeur, on va modifier la couleur du Mandelbrot. Il y a trois endroits avec rgb*une_valeur qui définissent donc le code RGB de la fractale, la première fois que l’on a l’opération, elle représente le rouge puis le vert puis le bleu. Ainsi avec ceci en tête, on peut faire une fractale de la couleur que l’on veut. On peut sinon essayer de saturer les couleurs par exemple en mettant des valeurs supérieures à 1.
Ici par exemple en mettant 98 à chaque valeur on obtient cela :

La forme :
Si on veut modifier la forme, la tâche n’est pas beaucoup plus dure. Il faut modifier le calcul de la suite à la ligne 14, par exemple de base, on a z*z+c, mais on peut y mettre ce que l’on veut, par exemple z**42+c le plus important est de garder au moins un c et un z, car sinon la calculatrice n’affichera que le font.
Et voila quelques exemple de forme et de couleur jolies :
La fractale parfaite :
- Ligne 14 :
z = z**42+c
- Ligne 17 :
col = kandinsky.color(int(rgb*0.95),int(rgb*0.2),int(rgb*0.2))
Et voila le résultat :

Le flocon de neige :
- Ligne 14 :
:z = z**7+c
- Ligne 17 :
col = kandinsky.color(int(rgb*0.75),int(rgb*0.75),int(rgb*0.98))
Et voilà le résultat :

Et voilà, je trouve ça mieux qu’un flocon de Koch personnellement. Maintenant libre à vous de créer votre fractale !
Explication possible mais complexe de modification du script :
En fin d’année scolaire 2022, M. Robert, professeur de mathématiques de seconde nous a proposé de faire un devoir maison nommé « les mathématiques sont belles« , le but : créer de la beauté via des maths sous forme de fonction ou de script python en turtle. Personnellement, j’avais découvert le script Mandelbrot de la calculatrice et je voulais le réutiliser, j’ai donc modifié sa couleur (et pas sa forme, ça m’aurait valu un 20, mais bon) et surtout, j’ai modifié la prise de vue de la fractale :

Pour réaliser cette fractale, j’ai dû être aidé, car de base en tant qu’élève de seconde, je ne connaissais pas grand choses au nombre complexe, mon père m’a donc aidé et nous avons réussi à modifier la prise de vue du Mandelbrot.
Tout d’abord, on rajoute avant les deux boucles 4 variables qui vont delimiter le cadre de la vue que l’on veut. Mais il faut faire attention à incrémenter des valeurs qui feront un cadre proportionnel au format de l’écran de la calculatrice. Ci-dessous les valeurs que j’ai personnellement utilisées :
- Xmax = -0.635
- Xmin = -1.905
- Ymax = 0.491
- Ymin = 0.488

Ensuite On modifie la ligne 10 on l’écrit comme cela :
c = complex(Xmin+(Xmax-Xmin)*x/319,Ymin+(Ymax-Ymin)*y/221)
Et voilà, pour l’instant avec les valeurs inscrites dans les quatre nouvelles variables, on a juste zoomé légèrement sur l’avant du Mandelbrot, mais vous pouvez modifier à souhait les valeurs pour voir le Mandelbrot sous d’autres angles. Pour rechercher les coordonnées que vous voulez, vous pouvez rechercher des « Mandelbrot explorer » comme sur le site Science démos.
Conclusion :
En conclusion, avec tout ce qui vous est proposé dans ce tutoriel, vous pouvez modifier : la couleur, la forme et la prise de vue de votre fractale. À vous de créer votre œuvre d’art !
Étudiant en spécialité NSI en classe de 1ère en 2022,
Streamer occasionnel.