Les fractales: comprendre et mettre en œuvre

Bon, vous vous doutez bien que ce n’est pas en un arti­cle que nous allons faire le tour des frac­tales. Mon objec­tif, c’est de vous expli­quer ce qu’est une frac­tale et com­ment on peut la dessin­er en pro­gram­ma­tion.  Après, c’est un domaine vaste et pas­sion­nant qui peut être util­isé dans de nom­breux domaines — et nous y revien­drons! Mais pour l’instant, con­tentons nous de décou­vrir les math­é­ma­tiques der­rières les frac­tales et leur représen­ta­tion graphique.

Voici un vidéo excep­tion­nelle telle­ment qu’elle est bien faite ! 😉 Non, sérieuse­ment, penchez-vous 9 min­utes là dessus et vous allez tout com­pren­dre, même si vous n’êtes pas bon en math:

D’ailleurs, j’en prof­ite pour vous gliss­er un petit mot sur cette chaine “El Jj” — plus con­nu sous le nom de “choux romanesco” (on com­prend qu’il s’intéresse aux frac­tales) qui pro­pose un con­tenu très intéres­sant pour ceux qui s’intéressent un peu aux maths, mais qui n’ont pas eu la chance de faire un doc­tor­at dans le domaine 😉

Bon grâce à cette vidéo (ou votre expéri­ence) vous com­prenez ici com­ment on des­sine une frac­tale. Que vous soyez fam­i­li­er ou non de python, je vous pro­pose un petit exem­ple tout sim­ple:

Capture d'écran 2016-05-20 09.47.04

On peut dif­fi­cile­ment faire plus sim­ple non ? Pour le tester, il suf­fit de met­tre ce code dans un fichi­er mandelbrot.py par exem­ple, d’installer python, et de lancer la com­mande “python mandelbrot.py”. Vous pou­vez télécharg­er le script ici.

Voici ce que cela donne:

Capture d'écran 2016-05-20 09.49.06

Expliquons main­tenant ce que nous venons de faire:

Dans un pre­mier temps,nous util­isons la librairie Tk pour créer une fenêtre graphique de 600x600 et nous traçons des lignes (on aurait même pu s’en pass­er).

Puis pour chaque pix­el (point de l’image) :

  1. nous définis­sons un réel qui va aller de -1.5 à 1.5 (représen­té en x) et un imag­i­naire entre -1.5 et 1.5 égale­ment (représen­té en y).
  2. Nous créons un nom­bre com­plexe c à par­tir de ces deux valeurs
  3. Nous appelons une fonc­tion man­del() en pas­sant ce nom­bre com­plexe qui va véri­fi­er si ce nom­bre génère une suite bornée ou non (voir vidéo).
  4. Si la suite est bornée alors on trace le point (ne vous inquiétez pas pour ce create_line, c’est juste qu’on ne peut pas trac­er un point autrement sous Tk — c’est con mais c’est comme ça).

Com­ment fonc­tionne man­del() ?

Elle prend un com­plexe en paramètre d’entrée.Elle réalise un petit cal­cul tout sim­ple en par­tant de z = 0,  elle applique z = z² + c . Pour véri­fi­er si la suite est bornée ou non, elle répète l’opération 20 fois : ici, cela suf­fit large­ment. Si on s’éloigne de (-2;2), on con­sid­ère que la suite est non-bornée.

Voilà, ce n’est pas plus com­pliqué et cela des­sine ce que nous avons vu précédem­ment. Avec quelques amélio­ra­tions, mais très peu, on arrive à cela:

Ne trou­vez-vous pas tout cela extra­or­di­naire ? N’êtes-vous pas fasciné comme moi par ce que nous décou­vrons ici.. un univers qui sem­ble hyper-riche… et pour­tant basé sur une for­mule des plus sim­ples: z = z² + c  !

Dans ce blog, nous pour­suiv­rons l’étude des frac­tales, mais pas juste pour faire joli… nous les explorerons en 3D dans un pre­mier temps, mais ensuite, nous ver­rons com­ment s’en servir pour trou­ver des solu­tions à des phénomènes com­plex­es (sans jeu de mot). Su vous n’avez pas lu mon arti­cle sur l’utilisation des frac­tales en bourse et si vous avez une heure à tuer, c’est ici.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.