★ APPLICATIONS ★ CREATION GRAPHIQUE ★ CHAOS FRACTAL SUR AMSTRAD CPC ★ |
Ensembles de Mandelbrot et de Julia (Micro-Systemes) | Applications Creation Graphique |
Qu'est-ce que le chaos ? Comment un écoulement d'air, régulier et laminaire, devient-il turbulent et chaotique ? Pourquoi est-il si difficile de faire des prévisions météorologiques à long terme, alors qu'apparemment toutes les lois physiques fondamentales nous sont connues ? Y a-t-il un ordre dans le chaos, existe-il une manière de prévoir le désordre ?n fait, le chaos n'apparaît pas seulement en physique, où l'on peut toujours se dire qu'il est dû à des impondérables, au hasard, à l'inévitable imperfection des phénomènes naturels. On le trouve aussi dans le domaine à la pureté sans faille des mathématiques, où certaines fonctions très simples et complè-tement déterministes engendrent des structures chaotiques à la complexité sans limite, semblant échapper à la toute-puissance de l'analyse. C'est le cas notamment de la fonction : f(x) = x2 + C, qui met x au carré et lui additionne une constante C. Si l'on itère cette fonction, on forme une suite récurrente comme par exemple celle-ci : — 2 ; — 22 — 1 = 3 ; 32 - 1 = 8 ; 82 — 1 = 63 ; 632 — 1 = 3 968 ; etc. En appelant Un le nième terme de cette suite, on a : Un + 1 = (Un)2 + C. Dans cet exemple, Uo = - 2 et C = - 1. On obtient une infinité de suites différentes en faisant varier Uo et C. Certaines sont amusantes : (C = - 2 et Uo = 0) engendre 0 ; - 2 ; 2 ; 2 ; puis toujours 2 ; (C = 0 et Uo = 1) engendre une suite de 1 ; (C = - 3 et Uo = 2) génère 2 ; 1 ; — 2; 1 ; — 2; 1 ; — 2; etc. Comment savoir à l'avance le comportement d'une suite donnée, tel va être le problème. Précisons la question : quel est I ensemble des couples de nombres (C et Uo) qui engendrent des suites ne tendant pas vers l'infini, quel que soit le nombre d'itérations ? Ne pensez pas que nous allons vous le dire, car personne ne le sait actuellement ! Bien sûr, quelques cas particuliers sont connus, tels ceux cités précédemment. Cette question devient encore plus intéressante si on laisse les variables Uo et C s'échapper de l'ensemble des réels et parcourir le plan complexe (voir article sur les complexes, in fine). Si vous vous attaquez au problème analytiquement, vous serez très vite confronté à des équations inextricables. C'est à partir de là qu'il faut raisonner géométriquement. Le raisonnement géométrique Si nous attribuons un point de l'espace à chaque couple de nombres (C, Uo), étant donné que C et Uo peuvent parcourir le plan complexe indépendamment l'un de l'autre, soit deux dimensions chacun, alors le couple de ces deux nombres parcourt un espace à quatre dimensions. Pour voir l'ensemble de ces points, il suffit de faire des coupes à travers cet espace, en fixant un ou deux des quatre paramètres (les parties réelles et imaginaires de chacun des deux nombres complexes). On obtient alors un volume à trois dimensions ou un plan exactement comme on obtient un plan en coupant un bâtiment à une certaine hauteur. Le premier à effectuer cette démarche fut M. Julia, au début du siècle. Il fixait le paramètre C, et observait les courbes obtenues en faisant varier Uo dans le plan complexe. Pour obtenir une image, il faut faire un balayage : diviser une partie du plan en lignes et colonnes, puis faire parcourir à Uo le centre de chaque petit carré, intersection d'une ligne et d'une colonne. Pour obtenir une image de bonne qualité, il faut une quantité énorme de calculs : on conçoit ici l'intérêt de l'ordinateur. C'est avec lui, utilisé un peu comme un moyen de perception, que Benoît Man-delbrot a produit le premier des images de l'ensemble de nombres qui porte son nom : il a fixé le nombre de départ Uo = 0, et a fait varier la constante. Il a donc coupé notre espace quadridimen-sionnel selon un plan totalement indépendant du plan de coupe de Julia (les ensembles de Julia sont dans plusieurs plans de coupes, mais ils sont tous parallèles). La méthode employée est très simple : pour chaque point, on calcule les termes de la suite les uns après les autres. Dès que l'un de ces termes dépasse le module 2, on compte le nombre d'itérations effectuées et on affecte une couleur à ce point en fonction de ce nombre, car il a été prouvé que si un terme de la suite dépasse 2, alors elle tend vers l'infini. Si l'on n'atteint pas 2 au bout d'un grand nombre d'itérations (« grand » peut aller de 100 à 1000, en fonction de l'échelle de représentation), on considère que le nombre appartient à l'ensemble de Mandelbrot (ou de Julia). Ainsi, les limites entre différentes couleurs correspondent à des « courbes de niveau ». Pour les ensembles de Julia, ces courbes vont même jusqu'à correspondre exactement aux lignes équipotentielles qu'on obtiendrait si l'ensemble était chargé électriquement, ce qui est extraordinaire si l'on sait que ces lignes sont presque impossibles à calculer pour les formes géométriques simples. Contrairement aux ensembles de Julia, l'ensemble de Mandelbrot n'est pas autosimilaire. On y observe même une diversité et une prolifération de formes qui nous font penser à ce qu'on verrait si l'on faisait une coupe du globe terrestre : une augmentation progressive de la richesse, de la turbulence, de la vie au fur et à mesure que l'on s'approche de la surface. La surface même de l'ensemble de Mandelbrot est inaccessible et nous sommes condamnés à n'en voir que des courbes de niveau qui l'entourent. Le mode d'emploi Le programme (listing) permet de s'enfoncer dans l'infiniment petit, en agrandissant la parcelle de votre choix dans une image précédemment créée et sauvegardée sur disquette. Il y a peu de choses à dire sur le mode d'emploi, tout étant expliqué au fur et à mesure. Voici tout de même ses fonctionnalités principales :
L. Fournier. Les nombres complexes x2 = -1 ? Impossible, un carré n'est jamais négatif ! Mais si, puisqu'on peut l'écrire, répondent Coudan, Bombelli et Tartagtia, les algébristes italiens de la Renaissance. A partir du moment où l'on pose une équation, on accepte difficilement qu'elle n'ait pas de solutions. Alors on en invente des « imaginaires », faute de « réelles ». Et l'on s'aperçoit que ces nombres n'ont d'imaginaire que le nom, alors tous les nombres, même 1 et - 2, sont imaginaires ! Appelions « i » la racine carrée de - 1. En la multipliant par un nombre réel, c'est-à-dire qui n'est pas complexe, on obtient la racine du réel négatif que l'on veut. Pour obtenir la solution de n'importe quelle équation du second degré (où l'inconnue est un carré), il suffit d'additionner à l'une de ces racines imaginaires un réel. Un nombre complexe est donc la somme de la racine d'un réel négatif, la « partie imaginaire », et d'un réel, la « partie réelle ». Ensuite, rien ne vous empêche d'additionner et de multiplier ces nombres, entre eux et avec des réels. Il n'y a que deux conditions à respecter : la partie imaginaire et la partie réelle ne peuvent pas se mélanger, et se souvenir que i2 = - 1 ! On note un complexe ainsi : z = a + i * b (a et b étant réels). Si la partie imaginaire, b * i, est nulle, alors z = a, qui est un réel. Les réels ne sont donc que des nombres complexes particuliers. On situe ces derniers dans un plan à l'aide d'un repère cartésien : le point représentatif du nombre z a pour abscisse a, et pour ordonnée b. Cette représentation nous permet de définir la « grandeur » d'un nombre complexe, ou son module : c'est la distance qui le sépare du point O. Voici les deux seules formules que nous utilisons dans le programme à propos des complexes : - module de z z = a + i * b |z| = √a2 + b2 (par le théorème de Pythagore) - mise au carré z2 = (a + i * b) * (a + i * b) z2 = a2 + 2ab * i + b * i2 z2 = (a2-b2) + i * (2ab) car i2 = - 1 Pour la suite récurrente qui nous intéresse, nous avons plus précisément : Zn = Zn-12 + C an + i * bn = (an-i + i * bn-1)2 + ac + i * bc an = (an-12 — bn-12) + ac bn = (2 * an-1 * bn-1) + bc Les deux composantes sont calculées séparément, sans faire apparaître le nombre i.
|