Fractales

Avant propos

Cet article est juste la retranscription d’ un exposé réalisé en 1997 avec 2 collègues étudiants de ma promo (Fabien Jobin et Frédéric Gautier) pour un petit travail de recherche de l’ option Image Numérique de la Maîtrise informatique de Bordeaux I. J’ ai repris l’ intégralité du texte et l’ ai copié ici en le modifiant légèrement. Cet exposé n’ a jamais été finalisé et de nombreux manques peuvent lui être reprochés. Peut-être que je prendrais le temps de le compléter un jour…

Introduction

L’essence des fractales est illustrée dans la figure ci-dessous par des vues successivement rapprochées d’ une planète fractale imaginaire:

Figure-1: Surface d' une planète fractale

Figure-1: Surface d’ une planète fractale

L’ image initiale est en haut à gauche. La suivante, en haut, au milieu, représente la portion encadrée de la première, agrandie 4 fois. De façon similaire, chaque image successive représente un agrandissement d’ une portion sélectionnée de la précédente image. Ainsi, on arrive à la dernière image, en bas, au centre qui est un agrandissement de plus de 10^7 de l’ image initiale. Cet agrandissement peut être comparé à l’image initiale, qui est reportée en bas à droite. On constate qu’ alors que ces deux images diffèrent d’ un facteur de plus de 10^7, et qu’ elles ne sont pas identiques, elles semblent partager de nombreuses caractéristiques, si bien qu’ il est difficile de croire qu’ elles ne sont pas différentes sections du même paysage à la même échelle. Cette propriété que certains objets ressemblent ou soient identiques à des portions d’ eux-même, est connue sous le nom d’ auto-similarité. C’ est une des caractéristiques des fractales et c’ est ce qui les différencie des objets de la géométrie Euclidienne traditionnelle.

Monstres mathématiques: l’ héritage fractal

La fin du siècle coïncide avec une augmentation du niveau des mathématiques. Des cerveaux ont conçus des monstres mathématiques étranges sans contrepartie dans la nature, tel les ensembles de Cantor, les courbes de Peano, etc. Après avoir découvert ces monstres, les mathématiciens les bannirent dans un zoo mathématique. Ils n’ y virent aucune utilité pour des scientifiques habituels. Comme cela l’ a été montré par Mandelbrot, la plupart de ces monstres ont pourtant une correspondance avec le monde réel. Aidés par l’ image numérique, ils reconnurent finalement des structures élémentaires dans le langage des formes irrégulières de la nature: la géométrie fractale de la nature.

Le domaine des fractales (un mot inventé par Mandelbrot en 1975) s’ est considérablement étendu ces dernières années et à aidé a réunir les domaines des mathématiques pures à ceux des sciences naturelles et des ordinateurs. Ces 10 dernières années, la géométrie fractale et ses concepts sont devenus des outils indispensables dans la plupart des sciences naturelles: physique, chimie, biologie, géologie, météorologie, et physique des matériaux. Au même moment, les fractales deviennent le centre d’ intérêt des graphistes et des réalisateurs de films pour leurs facultés a créer de nouveaux paysages excitants et artificiels mais très réalistes. Les images fractales peuvent paraître complexes, pourtant elles sont décrites par des règles simples. L’ imagerie numérique a joué un rôle important dans le développement et l’ acceptation de la géométrie fractale en tant qu’ une nouvelle discipline valide. Les paysages fractals obtenus par ordinateurs ne laissent aucun doute quand à leur qualité à imiter la nature. Aujourd’ hui, la géométrie fractale joue un rôle central dans la modélisation et la simulation de phénomènes naturels sur ordinateur.

Fractales et auto-similarité

Que sont donc les fractales? De quoi sont elles différentes des habituelles formes euclidienne?

  • La première différence vient du fait que les formes fractales sont une invention moderne.
  • La seconde est que les formes euclidiennes possèdent quelques caractéristiques de taille ou d’ échelle, alors que les fractales ne possèdent aucune caractéristique de taille. Les formes fractales sont dites être auto-similaires et indépendantes de l’ échelle ou de l’ agrandissement.
  • Troisièmement, la géométrie euclidienne fournit des descriptions concises d’ objets créés par des humains mais est inappropriée pour représenter des formes de la nature. Par contre, les fractales, permettent une excellente description de nombreuses formes dans la nature et ont déjà donné à l’ imagerie numérique une crédibilité quand à leur facultés à imiter la nature.
  • Enfin, alors que les formes euclidiennes sont habituellement décrites par une simple formule algébrique (ex. r^2=x^2+y^2 définit un cercle de rayon r), les fractales, en général, sont le résultat d’ une procédure de construction, ou d’ un algorithme qui est souvent récursif et qui convient très bien aux langages informatiques.

 

Différences entre géométrie Euclidienne et géométrie fractale
Euclidienne Fractale
   
Traditionnelle (> 2000 ans) Monstres modernes (~ 10 ans)
Basée sur des caractéristiques de taille ou d’échelle Pas de taille ou d’échelle spécifique
Correspond à des objets créés par des humains Approprié a des formes de la nature
Décrites par des formules Décrites par des algorithmes (récursifs)

 

Un des premiers monstres: le flocon de von Koch

Ces différences peuvent être illustrées par un des tout premiers de ces monstres mathématiques: le flocon de von Koch (1904). La figure ci-dessous montre la procédure à suivre pour construire cette courbe fractale.

Figure-2: Le flocon de Von Koch

Figure-2: Le flocon de Von Koch

Un segment est divisé en trois partie égales et le segment du milieu est remplacé par deux segments (chacun étant de même longueur que le segment supprimé), de manière à former les deux côtés d’ un triangle équilatéral. A l’ étape suivante de la construction, on effectue la même opération sur chacun de ces 4 nouveaux segments. Et ainsi de suite… On obtient alors quelque chose qui commence à ressembler à un flocon de neige.

Cela démontre qu’ une construction extrêmement simple peut pourtant avoir des propriétés étonnantes. En effet, si on continue l’ opération ci-dessus indéfiniment, la longueur de la courbe obtenue tend vers l’ infini car à chaque étape de la construction la courbe obtenue augmente d’ un facteur de 4/3. Donc, la courbe à tendance à remplir une surface infinie sur une portion de plan finie (entre les deux points formant notre segment initial) sans jamais se couper elle-même. L’ autre propriété étonnante est que cette courbe possède une exacte auto-similarité. Chaque petite portion, une fois agrandie, reproduit exactement une portion plus grande. La courbe est dite invariante à des changements d’ échelle. Finalement, bien que cet algorithme de génération du flocon de von Koch soit concis, simple à décrire et facilement programmable, aucune formule algébrique n’ est nécessaire.

Auto-similarité et dimension

La propriété d’ auto-similarité, comme nous l’ avons vu pour le flocon de von Koch, est le concept principal de la géométrie fractale. Ce concept est étroitement lié à notre notion intuitive de dimension.

Figure-3: Calcul de la dimension fractale d' un objet

Figure-3: Calcul de la dimension fractale d’ un objet

Un objet à une dimension, un segment par exemple, possède aussi cette propriété. Il peut être divisé en N morceaux identiques, chacun étant réduit d’ un facteur r=1/N par rapport à celui de départ. De manière similaire, un objet en deux dimensions, comme un carré, peut être divisé en N parties, chacune étant réduite d’ un facteur r=1/\sqrt{N}. Un objet de trois dimensions, comme un cube, peut être divisé en N petits cubes, chacun réduit d’ un facteur r=1/\sqrt[3]{N}. Avec l’ auto-similarité, on peut généraliser ce principe aux dimensions fractales. Un objet auto-similaire de D dimensions peut être divisé en N petites copies de lui-même, chacune étant réduite d’ un facteur r=1/\sqrt[D]{N}, ou N=1/r^D.

De manière identique, un objet auto-similaire de N parties réduit d’ un facteur r, possédera une fractale ou dimension de similarité donnée par D=log(N)/log(1/r).
La dimension fractale, contrairement à la notion plus familière de dimension Euclidienne, n’ est pas forcément un nombre entier. Chaque segment du flocon de Von Koch est composé de 4 sous-segments, chacun réduit d’ un facteur 1/3 par rapport au segment parent. Sa dimension fractale est D=log(4)/log(3), soit environ 1,26… Cette dimension non entière, plus grande que un mais plus petite que deux, reflète les propriétés inhabituelles de la courbe. Elle a tendance à remplir plus d’ espace qu’ une simple ligne (pour laquelle D=1), mais moins qu’ un plan (pour lequel D=2). Mandelbrot a donné de nombreuses variations à la construction de Von Koch, dont deux sont représentées sur la figure ci-dessous:

Figure-4: Variations du flocon de Von Koch

Figure-4: Variations du flocon de Von Koch

Dans la partie centrale, un segment est remplacé par 8 nouveaux segments, chacun réduit d’ un facteur 1/4 par rapport au segment de départ, sa dimension est donc D=log(8)/log(4)=1.5. Dans la partie inférieure, chaque segment est remplacé par 9 nouveaux segments, chacun réduit d’ un facteur 1/3 par rapport à l’ original, ce qui donne une dimension de D=log(9)/log(3)=2.

Lorsque la dimension D augmente de 1 vers 2, la courbe résultante passe d’ une simple ligne à un plan.

Auto-similarité statistique

La courbe de Von Koch parfaitement auto-similaire peut être considérée comme un modèle pour un paysage côtier, mais elle diffère du paysage côtier en un aspect essentiel. A chaque agrandissement des segments de la ligne de côte, on obtient des segments ressemblants, mais jamais exactement les mêmes. Le concept de dimension fractale, cependant, peut également s’ appliquer à de tels objets statistiquement auto-similaires. Lors de la mesure d’ une ligne de côte, plus on essaiera de mesurer les petits détails, plus la longueur totale augmentera. Chaque petite portion d’ une côte ressemble (mais pas tout à fait) à une portion plus grande. Lorsqu’ on utilise une règle de longueur r pour mesurer la longueur d’ une côte, la longueur totale est égale à la règle de longueur r multipliée par le nombre de pas de taille r, N(r), pris lors du tracé de la côte: Longueur = r.N(r).
Comme avec le flocon de neige, N(r) varie en moyenne de 1/r^D et Longueur \approx r.1/r^D = 1/r^{D-1}.
Avec D > 1, lorsque la longueur de la règle utilisée pour mesurer la côte décroit, sa longueur croit. La variation apparente de la longueur d’ une côte avec une règle d’ une certaine taille a été étudiée par Richardson. Les côtes réelles peuvent, en fait, être caractérisées par des dimensions fractales D entre 1,15 et 1,25, ce qui s’ approche de log(4)/log(3) de la courbe de Von Koch.
La propriété que des objets peuvent apparaître comme statistiquement auto-similaires alors qu’ ils sont en même temps différent dans les détails à différentes échelles, est la caractéristique principale des fractales dans la nature. La Figure-1 est aléatoire dans le sens que une large échelle est insuffisante pour prédire exactement les détails d’ une vue rapprochée. La manière avec laquelle les détails varient lorsqu’ on change d’ échelle, est encore une fois caractérisée par une dimension fractale. Une surface fractale irrégulière est plus qu’ une simple surface (D=2 et la surface de la Figure-1 a une dimension D=2,2. La dimension fractale d’ une ligne côtière est plus petite que celle de la surface elle-même. Dans notre cas D=1,2.

Paysages de Mandelbrot

Dans le paysage fractal idéal de la Figure-1 l’ autosimilarité statistique s’ étend d’ une échelle arbitrairement grande à une échelle arbitrairement petite. D’ un autre côté, les paysages actuels, peuvent être statistiquement auto-similaires sur un intervalle de distances fini. Les plus grandes variations peuvent être limitées par la taille de la planète ou par la force de gravité (les matériaux ne peuvent pas être suffisamment solides pour supporter des montagnes arbitrairement hautes). Les échelles les plus petites peuvent être limitées par l’ érosion, la taille d’un grain de sable élémentaire, et dans le cas le plus extrême, par la nature atomique des particules. L’ idéal mathématique est une approximation du monde réél (ou vice versa pour certains mathématiciens). Cependant, la géométrie fractale de Mandelbrot, semble être de loin la meilleure approximation, et encore aujourd’ hui le modèle mathématique le plus largement utilisé.
La plupart des algorithmes générant des paysages fractals ajoutent des irrégularités à la surface à toutes les échelles; comme si on ajoutait à des échelles de plus en plus petites des segments à la courbe de Von Koch. Une fois encore, la dimension fractale détermine la quantité relative de détails. Plus la dimension D de la surface augmente, plus celle-ci parait abrupte, déchirée. Une valeur de 2,15 est appropriée pour des surfaces terrestres.

Cratères fractals

Dans le but de donner l’impression d’ un paysage lunaire, il est nécessaire d’ ajouter des cratères au paysage fractale vierge. Chaque cratère est circulaire avec un profil similaire à l’ effet de billes tombant dans un liquide. Le truc pour que le résultat soit réaliste est d’ utiliser la bonne loi de distribution de la taille des cratères. Pour la lune, la distribution est fractale ou suit une fonction puissance, avec beaucoup plus de petits cratères que de gros. Plus précisément, le nombre de cratères possède une aire a, plus grande qu’ un nombre A, N(a > A) varie comme 1/A.

Planète fractale

On peut créer des planètes fractales en appliquant une généralisation d’ un bruitage Brownien sur une sphère. Dans un ordinateur la surface de la sphère est projetée sur une surface rectangulaire, comme la terre l’ est sur une carte. Une fois que la dimension fractale est dans un intervalle approprié, les modèles mathématiques échouent rarement pour  évoquer des paysages naturels.

Motifs fractals dans les systèmes dynamiques complexes

Les fractales sont partout. Ce n’ est pas un accident, car même les plus simples expressions mathématiques, exprimées comme systèmes dynamiques, donnent des fractales. Le but de ce chapitre est de préciser cet état de fait. Nous allons survoler un champ des mathématiques connu sous le nom de systèmes dynamiques et montrer comment les fractales apparaissent assez naturellement dans ce contexte. Nous allons aussi présenter quelques algorithmes pour générer ces fractales.

Ce chapitre ne nécessite pas de connaissances particulières en mathématiques. Certains des sujets traités ici sont à la pointe de recherches actuelles en mathématiques. En fait certains points présentés ici, ne sont pas encore totalement expliqués. Néanmoins, la formulation de ces problèmes est assez simple et l’ expérimentation lie à ces problèmes est accessible a tous.

L’ approche de ces problèmes sera une combinaison de technique mathématique et d’ informatique graphique. Comme vous devez le savoir, beaucoup d’ images fractales générées par les systèmes dynamiques sont intéressantes et attirantes. Enfin, le fait que ces images soient générées par de simples systèmes tels que z^2 + c ou e^{z} ou \sin(z) avec z, c des nombres complexes,  rend les fractales accessibles à tous.

Les systèmes dynamiques

Qu’est ce qu’un système dynamique? Simplement, tout processus qui évolue dans le temps est un système dynamique. Ces systèmes apparaissent dans toutes les branches de la science et, virtuellement, dans chaque aspect de notre vie. La détermination du temps est un grand exemple de système dynamique: la température, la pression, la direction du vent, sa vitesse et le nombre de précipitations sont des variables qui changent dans le temps dans ce système. La bourse avec la montée et la descente du Dow Jones ou du CAC40 est un exemple simple des fluctuations dans le temps de ce système.

Les systèmes dynamiques évoluent ainsi et avec beaucoup d’ autres processus physiques et mathématiques. Le principal but est de prédire le résultat du processus évoluant. C’ est à dire que si nous connaissons en détail le passé d’ un processus, pouvons nous prédire ce qu’ il va devenir dans le futur? En particulier, peut-on déduire le long terme ou le comportement asymptotique de ce système?

La réponse à cette question est parfois oui et parfois non. Evidemment, les prédictions du temps et les fluctuations du marché, ne peuvent être déterminés à long terme. D’ un autre côté, nous sommes (presque) certain que le soleil brillera demain matin et qu’ aucune réaction chimique inconnue ne se produira lorsqu’ on versera du lait dans notre café. Donc certains systèmes sont déductibles et d’ autres non.

Qu’ est ce qui fait que certains systèmes sont prévisibles et pas d’autres? L’ exemple ci-dessus, voudrait montrer que les systèmes contenant de nombreuses variables, tel que la prédiction du temps ou de la bourse, ne sont pas prévisibles et que les systèmes avec peu de variables sont plus faciles à comprendre. Malgré le fait que ce soit vrai dans certain cas, on ne peut en faire une généralité. Même un système à une seule variable peut être complètement imprévisible et avoir un comportement aléatoire. La raison de cela est liée à la notion de chaos, qui peut se cacher même dans le plus simple des systèmes dynamiques.

Dans les sections suivantes, vous trouverez des exemples de systèmes chaotiques. Ils ont tous un point commun: ils dépendent simplement d’ une ou deux variables.

Un exemple tiré de l’ écologie

Illustrons le fait que les systèmes peuvent être imprévisibles en décrivant un simple système dynamique qui vient de l’ écologie.

Supposez qu’ il n’ y ait qu’ une seule espèce dont la population augmente et diminue dans le temps dans un environnement contrôlé. Les écologistes ont suggéré des modèles mathématiques pour prédire le comportement à long terme de cette population. Voici un des modèles les plus simples.

Supposez que nous mesurons la population de l’ espèce à la fin de chaque génération. Plutôt que de prendre le nombre actuel d’ individus dans la colonie, supposez que nous mesurons le pourcentage du nombre limitant ou la population maximale. Soit P_n le pourcentage de population après la génération n. La simple suite ci-dessous peut être utilisée pour modéliser la croissance de la population:

P_{n+1} = k P_n (1 - P_n)

k est une constante qui dépend des conditions écologiques telle que la nourriture disponible. En itérant cette suite, nous pouvons déduire la prochaine population en se basant uniquement sur la population précédente et sur la constante k.

Notez combien cette suite est triviale. C’ est une simple formule quadratique sur la variable P_n. En donnant P_n et k, on peut calculer la valeur exacte P_{n+1}. Dans la table qui suit, nous avons calculé la prédiction de la population en utilisant cette formule, avec différentes valeurs de k. Quand k est petit, le destin de la population semble assez prévisible. Avec k=0,5, la population meurs, tandis que pour les valeurs 1,2; 2; 2,7, la population tend à se stabiliser vers une valeurs limite. Au dessus de 3, les valeurs donnent des résultats tout à fait différents.

Pour k=3,1, les valeurs limites oscillent entre 2 valeurs. Pour k=3,4, les valeurs limites oscillent entre 4 valeurs. Et pour k=4, on ne peut voir aucun schéma reproductible. Avec une valeur initiale P_0=0,5, l’ espèce disparaît après 2 générations, tandis qu’ avec P_0=0,4, on a un comportement qui semble complètement aléatoire.

 

Valeurs de Pn pour différentes valeurs de k.
Pn+1 = kPn(1 – Pn)
k
0.5 1.2 2.0 2.7 3.1 3.4 4.0
.500 .500 .500 .500 .500 .500 .400
.125 .300 .500 .750 .775 .850 .960
.055 .252 .500 .563 .540 .434 .154
.026 .226 .500 .738 .770 .835 .520
.013 .210 .500 .580 .549 .469 .998
.006 .199 .500 .731 .768 .847 .006
.003 .191 .500 .590 .553 .441 .025
.002 .186 .500 .726 .766 .838 .099
.001 .181 .500 .597 .555 .461 .358
.000 .178 .500 .722 .766 .845 .919
.000 .176 .500 .603 .556 .446 .298
.000 .174 .500 .718 .765 .840 .837
.000 .172 .500 .607 .557 .447 .547
.000 .171 .500 .716 .765 .844 .991

 

On découvre la nature imprévisible de ce processus. Certaines valeurs de k laissent apparaître des résultats assez prévisibles avec une valeur fixe ou des répétitions périodiques. Par contre d’ autres valeurs semblent complètement aléatoires.

Itérations

Le principal élément dans la formulation mathématique de l’ exemple de l’ écologie était l’ itération. Itération veut dire répéter un processus encore et encore. C’ est ce qui a été fait pour générer la liste de population. Formulons le problème d’ une autre façon.

Considérons la fonction F(x) = kx(1 - x). Cette fonction associe à chaque x une nouvelle valeur, l’ image de x, qui est F(x). Comme toujours avec les fonctions mathématiques, F donne une règle pour « convertir » x en une nouvelle valeur, dans notre cas F(x), ou plutôt kx(1 - x).

Nous devons répéter le processus en calculant F( F(x) ). Ce qui veut dire que l’on calcule successivement:

    \[ F(x) = kx(1 - x) \]

    \[ F(F(x)) = k(kx(1 - x))(1 - kx(1 - x) ) \]

Et nous pouvons continuer à itérer, pour trouver ensuite:

    \[ F( F( F(x) ) ) = F( k(kx(1 - x))(1 - kx(1 - x) ) ) \]

    \[ = k(k(kx(1 - x))(1 - (kx(1 - x))))(1 - k(kx(1 - x))(1 - (kx(1 - x))) ) \]

Et ainsi de suite. Si x représente notre population de départ P_0 de l’ exemple précédent, alors nous avons:
P_1 = F(x)
P_2 = F( F(x) )
P_3 = F( F( F(x) ) )

Et ainsi de suite. Pour simplifier la lisibilité, introduisons la notation F^n(x), qui signifie la n-ième itération de F:

F^1(x) = F(x): première itération,
F^2(x) = F( F(x) ): seconde itération,
F^3(x) = F( F( F(x) ) ), etc.

Notez bien ici que F^2 ne signifie donc pas (F(x))^2 = F(x) * F(x), mais la deuxième itération de l’ expression F.

Orbites

La liste des itérations successives à partir d’ un point (ou d’ un nombre) est appelée orbite de ce point (ou de ce nombre). Utilisons une calculatrice pour calculer des orbites. Par exemple prenons la fonction \sin(x) et calculons les orbites d’ un point de départ. Si nous prenons S(x) = \sin(x) et comme valeur initiale x = 123, nous obtenons:

S^1(x) = -0,459\dots
S^2(x) = -0,443\dots
S^3(x) = -0,429\dots
S^4(x) = -0,416\dots
\dots
S^{18}(x) = -0,307\dots
S^{19}(x) = -0,302\dots
S^{20}(x) = -0,298\dots

Doucement, tout doucement, les itérations de \sin(x) convergent vers 0:
S^{73}(x) = -0,185\dots
S^{74}(x) = -0,184\dots
S^{75}(x) = -0,183\dots
\dots
S^{148}(x) = -0,135\dots
S^{149}(x) = -0,135\dots
S^{150}(x) = -0,134\dots
\dots
S^{298}(x) = -0,098049\dots
S^{299}(x) = -0,097892\dots
S^{300}(x) = -0,097580\dots
\dots

Donc l’orbite de x = 123 est la série des nombres 123, -0,459.., -0,443…, -0,429… et nous avons

    \[ \lim_{n \rightarrow +\infty} S^n(123) = 0 \]

L’orbite de 123 tend asymptotiquement vers 0. Nous vous laissons le plaisir d’ expérimenter que ça marche pour n’ importe quelle valeur initiale. Donc on a

    \[ \forall x, \lim_{n \rightarrow +\infty} S^n(x)=0 \]

Ce qui nous ramène à la question fondamentale sur les systèmes dynamiques: pouvons-nous prédire le destin des orbites dans les itérations? Cela est très similaire à la question que l’ on s’ était posé au départ: pouvons-nous prédire le temps ou pouvons-nous prédire l’ évolution du Dow Jones?
Pour les fonctions que nous trouvons sur une calculatrice telles que la racine carre, le sinus, etc. , la réponse est oui. Prenons une autre fonction dont le destin des orbites est décidable, \cos(x),mais dont le destin n’ est pas évident à prédire. Soit C(x) = \cos(x) et x = 123 comme valeur initiale:
C^1(123) = -0,887\dots
C^2(123) = +0,630\dots
C^3(123) = +0,807\dots
C^4(123) = +0,691\dots
C^5(123) = +0,770\dots
\dots
C^{99}(123) = +0,739085\dots
C^{100}(123) = +0,739085\dots
C^{101}(123) = +0,739085\dots

Donc l’orbite de 123 est une série de nombres qui tendent vers 0,739085… Encore une fois cela arrive quelque soit la valeur de départ, mais ce résultat est plutôt difficile à deviner. Néanmoins, une fois que l’on a vu quelques exemples d’ itérations de la fonction \cos, on peut conclure expérimentalement que ses orbites tendent vers 0,739085… ou, pour introduire un terme technique, que toutes les orbites de la fonction \cos sont stables. Plus précisément, une orbite stable a la propriété de toujours avoir la même similarité même si on change la valeur initiale. Cela arrive pour S(x) = \sqrt(x), qui tend vers 1. Cela arrive pour T(x) = x^2, aussi longtemps que 0 < x \neq 1, les orbites de x < 1 tendent vers 0 alors que les orbites de x > 1 tendent vers l’ infini.

On pourrait penser que les orbites stables sont de « bonnes orbites ». Supposons que notre système représente un processus physique que l’ on veut prédire. En prenant le modèle physique, on va sans doute faire des erreurs dans l’ expérimentation pour prendre une valeur initiale. Si le résultat de l’ orbite est stable, les petites erreurs que l’ on a faite ne vont pas intervenir dans le système et les prévisions seront plus ou moins précises.

Une autre raison pour laquelle les orbites stables sont de bonnes orbites concerne les erreurs d’arrondi. En effet lorsqu’ on utilise un ordinateur pour itérer le système, le programme fait des approximations successives pour calculer la prochaine valeur. Ce qui fait que l’ orbite calculée est très légèrement différente de la vraie. Mais si l’ orbite est stable alors cela n’ a pas d’ influence. Les petits changement introduits à chaque étape ne changent pas complètement le résultat final.

Systèmes dynamiques chaotiques

Instabilité: l’ensemble chaotique

Malheureusement toutes les orbites des systèmes dynamiques ne sont pas stables. Il est même frustrant de voir que des systèmes très simples sont loin d’ être stables. Nous appelons leurs orbites, des orbites instables. Une orbite instable est une orbite pour laquelle, arbitrairement proche de la valeur initiale, il y a une autre valeur possible dont l’ orbite est complètement différente de l’ orbite originale.

Les orbites imprévisibles de F(x) = k.x(1 - x), qui paraissent être aléatoires, sont un exemple d’ orbites instables. Mais il y en a d’ autres, des orbites plus simples qui pourraient être appelés instables. Par exemple, considérons la fonction carré:

    \[ T(x) = x^2 \]

L’ orbite de 1 est assez simple: T(1) = 1 donc \forall n, T^n(1) = 1. C’ est un exemple d’ un point  fixe pour un système dynamique. Mais cette simple orbite est instable. En effet, supposons que nous faisons une petite erreur en calculant la valeur initiale 1. Alors notre entrée est x \neq 1, et, comme nous l’ avons déjà vu, si x > 1 alors \lim T^n(x) = +\infty alors que pour 0 < x < 1, \lim T^n(x) = 0. Donc en fonction des conditions initiales, on obtient des orbites très différentes, certaines tendent vers 0, d’ autres vers l’ infini.

Il est très important de comprendre l’ ensemble de tous les points dans un système dynamique dont les orbites sont  instables. Est ce que l’ensemble des orbites instables est grand, indiquant un haut degré d’ instabilité ou d’ imprevisibilité dans le système? Ou est-il petit, suggérant que le système que nous utilisons possède une grande probabilité pour  produire de bon résultats? Malheureusement beaucoup de systèmes simples ont des ensembles de conditions initiales dont les orbites sont instables. Nous appellerons l’ ensemble de tous les points dont l’ orbite est instable l’ ensemble  chaotique.

Comme nous le verrons, de petits changements de paramètres modifieront radicalement l’ ensemble chaotique. Néanmoins, pour les mathématiciens, la question importante est: à quoi ressemble cet ensemble? Est il grand ou petit? Est ce un ensemble simple ou compliqué? Et comment varie t-il quand le système dynamique change?

C’ est ici que les fractales entrent dans le champ des systèmes dynamiques. Très souvent, l’ ensemble des points dont les orbites sont instables forme une fractale. Donc ces fractales sont données par une règle précise: elle sont simplement l’ ensemble chaotique d’ un système dynamique.

Un ensemble chaotique dans le plan

Jusqu’ à maintenant, tous nos exemples de systèmes dynamiques étaient à une seule dimension. Mais la plupart des phénomènes dans la nature dépendent de plus d’ une variable (souvent d’ un très grand nombre de variables), donc il est bien d’ étudier des systèmes dynamiques de grandes dimensions. Nous allons considérer des systèmes à deux dimensions, et cela pour deux raison:

  • premièrement, mathématiquement parlant, la plupart des choses qui arrivent dans les systèmes dynamiques de dimension un, sont assez bien (mais pas complètement!) compris. D’ un autre côté, les systèmes à deux dimensions présentent un ensemble complètement différent de possibilités qui, à ce jour, ne sont pas résolues.
  • deuxièmement, comme vous pouvez l’ imaginer, les dynamiques à deux dimensions sont étudiées en utilisant les ordinateurs graphiques, qui ont un écran à deux dimensions.

Commençons par un système assez simple connu: la carte de Henon, nommé par l’ astronaute Français M. Henon qui a été le premier a parler de cette carte en 1974. Ce système dynamique possède deux variables X_n, Y_n, qui évoluent selon les  règles suivantes:

    \[ \left\{ \begin{array}{ll} X_{n+1} = 1 + Y_n - A.X_n^2 \\ Y_{n+1} = B.Y_n \end{array} \]

A et B sont deux paramètres que nous allons fixer à A = 1,4, B = 0,3. Beaucoup de phénomènes différents peuvent être observés en modifiant les valeurs de A et B, mais nous vous laissons le soin de le faire vous même. Nous utiliserons donc le système suivant:

    \[ \left\{ \begin{array}{ll} X_{n+1} = 1 + Y_n - 1,4.X_n^2 \\ Y_{n+1} = 0,3.Y_n \end{array} \]

Ce système dynamique possède un attracteur étrange, un objet mathématique qui, même aujourd’ hui, défie l’ analyse mathématique. Itérons la carte de Henon en utilisant différentes valeurs initiales X_0,Y_0 et représentons graphiquement les itérations successives avec un programme informatique de notre conception. La figure ci-dessous à gauche montre le résultat pour 100 000 itérations de la valeur initiale (0,0). La figure ci-dessous à droite montre la même chose, mais pour la valeur initiale (-1,0). En fait, si vous expérimentez avec différentes valeurs initiales, vous trouverez que l’ orbite tend vers la figure 1.1 ou bien l’ orbite tend vers l’infini. Ce sont les seules possibilités, comme l’ a démontré Henon.

Que s’est il passé? Beaucoup d’ orbites tendent vers un même ensemble E comme on peut le voir sur les figures ci-dessus. E est appelé un attracteur parce que toutes les orbites convergent vers lui. E est un étrange attracteur parce qu’ il n’ est pas un « simple » objet comme un point ou un cycle de points (une « orbite périodique »). En fait, E a tous les attributs d’ une fractale, comme le laisse penser la figure ci-dessous. Cette figure montre différents agrandissements qui tendent à séparer des bandes dans E, dont une occurrence typique sont les ensembles de Cantor.

Nous vous faisons remarquer encore que la structure exacte de E n’ est pas comprise et est un important sujet de recherches en mathématiques. Nous vous encourageons aussi à expérimenter les cartes de Henon avec différentes valeurs pour les paramètres A et B. Une vaste collection de phénomènes fractales se produisent en fonction des valeurs différentes des paramètres.
Ou est le chaos? Les dynamiques chaotiques arrivent sur l’ attracteur E lui-même. Voici une expérimentation simple pour le voir. Prenez deux conditions initiales qui sont proches l’ une de l’ autre et dont les orbites tendent vers E. Listez les 100 premières itérations de chaque point; écrivez les, ne les dessinez pas. Vous allez voir que, après très peu d’ itérations, les listes des points successifs sur les orbites n’ ont rien à voir entre elles. Les orbites sont assez distinctes. Néanmoins, si vous les dessinez, vous obtenez le même dessin.

Un « homme en pain d’ épices » chaotique

Voici un autre exemple d’ un ensemble chaotique dans le plan. Considérez le système dynamique suivant:

    \[ \left\{ \begin{array}{ll} X_{n+1} = 1 - Y_n + |X_n| \\ Y_{n+1} = X_n \end{array} \]

C’est une cartographie (un mapping) linéaire du plan qui est chaotique dans certaines régions et stable dans d’ autres. Par exemple, le point (1,1) est un point fixe, et tous les autres points dans la région hexagonale H dont les arrêtes sont (0,0), (1,0), (2,1), (2,2), (1,2), et (0,1) sont périodiques de période 6. Néanmoins, cette région est située dans la moitié du plan droit où le système dynamique est la simple transformation affine suivante:

    \[ \left\{ \begin{array}{ll} X_{n+1} = 1 - Y_n + X_n \\ Y_{n+1} = X_n \end{array} \]

Un homme pain d’ épices…

qui est une rotation périodique de période 6 autour de (1,1). Donc l’ orbite de n’ importe quel point qui reste dans H (excepté (1,1), est un ensemble fini de 6 points. Cela peut être contrasté avec l’orbite d’ un point juste à l’ extérieur de cette région: la figure ci-contre, obtenue avec un programme informatique de notre conception, représente les 100 000 premières itérations de (-0.1,0). Cette orbite ressemble à un « homme en pain d’ épice ». La région hexagonale stable H forme le ventre et cinq autres régions autour forment les jambes, les bras, et la tête de l’ homme en pain d’ épice. Dans ces  cinq régions il y a une orbite unique de période 5, et tous les autres points ont une période de 5 * 6 = 30.
Ces points sont, bien sûr, des points avec des orbites stables. L’ orbite qui donne ombrée dans la figure ci-contre apparemment entre dans chaque petite région excepté H et la période 5 des hexagones. Néanmoins, il peut être prouvé de façon indiscutable qu’ il y a une orbite qui erre autour de l’ homme en pain d’ épices, venant arbitrairement proche de n’ importe quel point déjà assigné.

Sur un agrandissement d’ une portion de la figure ci-dessus, on remarque combien l’ orbite choisie est uniformément distribuée:

…et un agrandissement

Toutes les orbites dans l’ homme en pain d’ épices ont cette propriété. Actuellement, ce n’ est pas tout a fait vrai. Il peut être prouvé qu’ il existe une infinité d’ orbites périodiques distinctes qui ont une large période. En fait, dans chaque région, quelle que soit sa taille, il existe une infinité de points qui sont positionnés sur les orbites périodiques! Comme conséquence, tout l’ homme en pain d’ épices, moins les régions stables au-dessus, consiste en des orbites instables. Cela montre que tous les points sur la limite de l’ homme en pain d’ épices sont périodiques; ces points forment la « peau » polygonale de l’ homme en pain d’ épices.

Mais juste de l’ autre cote de la position de ce polygone on découvre une autre région chaotique:  En fait, il y a une succession de régions chaotiques, séparées les unes des autres par des polygones. Comme nous pouvons le voir, les régions chaotiques peuvent remplir l’ espace, comme dans cet exemple, aussi bien avec des formes fractales, comme dans l’ exemple précédent. Un autre homme en pain d’ épices et un agrandissement:

Systèmes dynamiques complexes

Les cartes complexes

Maintenant nous entrons dans une des plus séduisantes parties des systèmes dynamiques: l’ étude des dynamiques des cartes complexes. Cette étude a été initiée par P. Fatou et G. Julia au début du XX siècle. Après une brève période d’ intenses recherches entre 1910 et 1925, les recherches se sont interrompues une dizaine d’ année. Puis, grâce à la découverte de Mandelbrot de l’ ensemble qui porte son nom, ainsi qu’ avec les images spectaculaires qui accompagnent ces systèmes dynamiques, les recherches ont repris.
Nous allons discuter des ensembles de Julia de cartes complexes. L’ensemble de Mandelbrot se sera pas abordé ici. Le but est de décrire les ensembles de Julia en terme de dynamique chaotique vue plus haut. Nous présenterons un algorithme pour le calcul de différents ensembles de Julia.
Nous commençons par un système simple, F(z) = z^2, avec z un nombre complexe. Regardons ce qui se passe si nous itérons. Supposons que nous partons du point z_0 = x_0 + i  y_0 avec |z0| < 1.

|F(z_0)| = |x_0^2 - y_0^2 + i  2 x_0 y_0| = \sqrt{x_0^4 + y_0^4 - 2 x_0^2 y_0^2 + 4 x_0^2 y_0^2} = \sqrt{ (x_0^2 + y_0^2)^2} = |z_0|^2

D’ où |F(z_0)| < |z_0| tant que 0 < |z_0| < 1. Cela montre qu’ une itération de F rapproche z_0 de 0. En continuant ce processus nous voyons que quelque soit z_0 (toujours avec |z_0| < 1) on a une orbite qui tend vers 0. Donc tous ces orbites sont stables. La même méthode montre que si |z_0| > 1, l’orbite de z_0 tend vers l’ infini. D’ où, tout point z_0 tel que |z_0| \neq 1 a des orbites stables. Mais qu’ en est-il pour les points pour lesquels |z_0| = 1? Il s’agit des points qui sont situés sur le cercle unité dans le plan complexe. Clairement, ces points sont dans l’ensemble chaotique, tandis que les points juste à l’ extérieur du cercle ont des orbites qui tendent vers l’ infini et les points juste a l’ intérieur du cercle ont des orbites qui tendent vers 0.
Donc nous voyons que le plan complexe se décompose en deux régions: l’ensemble stable qui est représenté par les points dont les orbites tendent vers 0 ou l’infini, et l’ensemble chaotique qui est le cercle unité. L’ensemble chaotique est appelé l’ ensemble de Julia car c’est le mathématicien français Gaston Julia qui, le premier, étudia cet ensemble au début du XXème siècle.

L’ensemble de Julia

Comment utiliser un ordinateur pour dessiner l’ensemble de Julia? La méthode la plus facile à programmer, est

Coordonnées polaires d’ un nombre complexe

celle des itérations inverses (voir algo. plus loin). Cette méthode fonctionne comme suit. Travaillons avec F(z) = z^2 pour le moment. Donnant z_0, nous nous demandons quels points donnent z_0 sous F. Naturellement, ces points sont les racines carrées de z_0. Pour calculer cette racine, nous utiliserons la représentation polaire. Comme d’ habitude avec les nombres complexes, on notera \theta_0 l’ angle polaire de z_0, et le rayon de z_0 correspond à son module r_0 = |z_0|.

Comment calculer \sqrt{z_0}? Les deux racines carrées sont données dans les termes de la représentation polaire (r_0, \theta_0) de z_0. Le nouveau rayon polaire est simplement \sqrt{r_0} (où l’on  prend la racine positive) et les deux nouveaux angles sont \theta_0/2 et \pi + \theta_0/2.
Pour calculer l’orbite inverse de z_0, on prend simplement des racines carrées successives. A chaque étape nous sommes libres de prendre un des deux angles. Il y a donc beaucoup de possibilités pour calculer l’orbite de z_0. L’ étonnant est que n’ importe lequel d’ entre eux converge vers l’ ensemble de Julia de F! Ce qui, si nous dessinons les racines carrées successives de z_0 \neq 0, omettant les premiers points de l’orbite inverse, nous produit l’ ensemble des orbites instables qui, dans ce cas, est le cercle unité.

L’ ensemble de Julia pour n’ importe quelle fonction de la forme F(z) = z^2 + c peut être obtenu de la même manière. L’ algorithme JuliaIIM() est un programme simple pour dessiner l’ ensemble de Julia de la forme z^2 + c pour différentes valeurs de c. La valeur c peut être complexe et la fenêtre est dans le plan donné par |x| <= 2, |y| <= 2. On peut noter que suivant les valeurs de c, on obtient des formes totalement différentes comme on peut le voir sur les figures en fin de page obtenues avec un programme informatique de notre conception.

Algorithme JuliaIIM(): calcule et dessine un ensemble de Julia par itérations inverses

En entrée: cx, cy les parties réelles et imaginaires de c,
           et x et y les valeurs de la zone à dessiner
FOR i=1 to 6000
wx = x - cx
wy = y - cy
IF wx > 0 THEN theta = ATN( wy / wx )
IF wx < 0 THEN theta = 3.14159 + ATN( wy / wx )
IF wx = 0 THEN theta = 1.57079
theta = theta / 2
r = SQR( wx * wx + wy * wy )
IF RND > 0.5 THEN r = -SQR(r) ELSE r = SQR(r)
x = r * COS(theta)
y = r * SIN(theta)
m = -5 + (x + 4) * 500 / 8
n = (2 - y) * 250 / 4
CALL MOVETO(m,n)
CALL LINE(0,0)
NEXT i

Les ensembles de Julia comme limite

Une autre méthode permet de dessiner les ensembles de Julia. Cette méthode dessine tous les points qui ne tendent pas vers l’infini. C’ est la limite ou la frontière de cet ensemble de points qui ne « s’ échappe » pas qui forme l’ ensemble de Julia. On se limite à une zone telle que |x|, |y| < 2. Nous itérons le calcul de F(z) = z^2 + c, jusqu’ à une limite fixée qui correspond au nombre d’ itérations (disons de 30). Si on a |F(x+iy)|>3 à partir d’ une certaine itération, alors le point a une orbite qui tend vers l’ infini. Ce point n’ appartient pas à l’ ensemble de Julia et on le colore, disons en blanc. Si après le nombre maximum d’ itérations (30 dans notre cas), le point est toujours dans le cercle de rayon 3 alors on le colorie en noir. La frontière entre le noir et le blanc constitue l’ ensemble de Julia.

Algorithme JuliaITER(): calcule et dessine un ensemble de Julia par itérations

En entrée: cx, cy les parties réelles et imaginaires de c et le nombre d'itérations max
En variable: les valeurs height et width qui correspondent aux hauteur et largeur de la 
             zone à dessiner
FOR x_ecran = 0 TO width
  FOR y_ecran = 0 TO height
    x = (x_ecran * 4 / width) - 2
    y = (y_ecran * 4 / height) - 2
    z = 0
    n = 0
    zx = x
    zy = y
    WHILE (max_iterations > n++ AND 3 > z)
      zxx = zx * zx - zy * zy + cx
      zyy = 2 * zx * zy + cy
      z = sqr(zxx * zxx + zyy * zyy)
      zx = zxx
      zy = zyy
    ENDWHILE
    IF n >= max_iterations
      PLOT xe, height-ye, NOIR
    ELSE
      PLOT xe, height-ye, BLANC
    ENDIF
  ENDFOR y_ecran
ENDFOR x_ecran
END

Ensemble de Julia obtenu avec z^2-0.9+0.12i

Ensemble de Julia obtenu avec z^2-0.3

 

 

 

 

 

 

 

 

 

 

Ensemble de Julia obtenu avec z^2+0.25

Ensemble de Julia obtenu avec z^2-1

 

 

 

 

 

 

 

 

Fractales déterministes

Dans ce chapitre, qui concerne les fractales déterministes, et plus précisément la famille quadratique, nous ne parlerons que de l’ ensemble de Mandelbrot.

L’ensemble de Mandelbrot

Plan complexe

L’ ensemble de Mandelbrot (découvert par B.B. Mandelbrot en 1980) est une figure du plan complexe. Cela signifie que les nombres manipulés sont des nombres complexes. Les nombres complexes sont de la forme a+ib avec a, la partie réelle, et b, la partie dite imaginaire. Les coordonnées des points sont donc fournies par les parties réelles et imaginaires des nombres que l’ on manipule et réciproquement, tout nombre complexe peut être représenté graphiquement dans le plan complexe.

On appelle module, la distance du point à l’ origine du repère. Le théorême de Pythagore donne immédiatement pour un nombre z=a+ib, son module, que l’ on note |z| et qui vaut donc \sqrt{a^2+b^2}.

Nous pouvons maintenant définir le processus itératif qui fournit l’ensemble de Mandelbrot à partir de la simple suite suivante:

    \[ \left\{ \begin{array}{ll} z_0=a+ib \\ z_{n+1} = z_n^2+c \end{array} \]

En fonction des valeurs initialement fixée pour z_0 et c, on obtient des résultats totalement différents.

Détaillons les calculs. A la première itération, on calcule z_1:

    \[ \begin{array}{ll} z_1=z_0^2+c \\ z_1=(a+ib)^2+c \\ z_1=a^2-b^2+2iab+c \end{array} \]

puis, on itère une seconde fois pour obtenir z_2:

    \[ \begin{array}{ll} z_2=z_1^2+c \\ z_2=(a^2-b^2+2iab+c)^2+c \\ \dots \end{array} \]

Et on pourrait poursuivre ces itérations indéfiniment, mais pour obtenir une image, il faut bien choisir un nombre maximum d’ itérations au-delà duquel s’ arrêter. Mandelbrot constata que la selon la valeur initiale choisie pour c, la suite des z ainsi obtenue pouvait soit tendre très rapidement vers l’ infini, soit tendre vers une limite finie quel que soit le nombre d’ itérations.

Considérons par exemple les premières itérations à partir de la valeur initiale c = 1 + i et z_0=0:

 
itération z |z|
1 1+3i 3,16227…
2 -7+7i 9,89949…
3 1-97i 97,00515…
4 -9407-193i 9408,97965…

 

On constate que le module de z_n, peut grandir excessivement vite; à tel point que quelques itérations peuvent suffire pour provoquer un dépassement de la capacité de calcul du système informatique utilisé.

Considérons maintenant les valeurs initiales c = -0.5 + 0.5i et z_0=0:

 
itération z |z|
1 -0,5 0,5
2 -0,25+0,5i 0,55902…
3 -0,6875+0,25i 0,73154…

 

à partir de la 80-ième itération on obtient toujours z=-0,40868+0,27513i dont le module vaut 0,49266… Cela signifie que le module de z restera fini quel que soit le nombre d’ itéations calculées. L’ ensemble de Mandelbrot est constitué par tous les nombres complexes c pour lesquels z^2+c reste fini quel que soit le nombre d’ itérations. Si on décide de montrer en blanc tous les points qui s’ échappent vers l’ infini et en noir, les autres, alors l’ ensemble de Mandelbrot est la région noire de l’ image suivante:

Relation entre l’ensemble de Mandelbrot et ceux de Julia

Si on adopte la règle qui consiste à fixer la valeur du nombre c et à faire varier la valeur initiale du nombre >z, on définit un ensemble différent de l’ ensemble de Mandelbrot: c’ est l’ ensemble de Julia. Chaque nouvelle valeur de c injectée dans la formule d’ itérations engendrera un nouvel ensemble de Julia: il y a donc une infinité d’ ensembles de Julia.

Il existe donc une relation entre l’ ensemble de Mandelbrot et les ensembles de Julia: l’ ensemble de Mandelbrot est l’ ensemble de tous les points c pour lesquels l’ ensemble de Julia correspondant est connexe, c’ est-à-dire d’ un seul tenant.

Pour clore ce chapitre, nous citons H.O. Peitgen: « l’ensemble de Mandelbrot est comme un vaste recueil dont chaque page serait un ensemble de Julia ».

Quelques champs d’ application

Approximation de la nature

Nous avons vu dans les parties précédentes à quel point les fractales pouvaient être pertinentes dans le cas d’ imitations de la nature. En particulier nous avons vu leurs propriétés à imiter des nuages, des arbres, des feuilles, des reliefs montagneux, des paysages lunaires, etc. Imagerie C’ est principalement dans les domaines de l’ image de synthèse et des effets spéciaux vidéo que les qualités d’ approximations de la nature des fractales sont appréciées. Les images de synthèses sont ensuite utilisées dans des domaines extrêmement variés:

  • films
  • publicité
  • architecture
  • imagerie médicale
  • etc.

Compression de données

Les fractales sont aujourd’hui utilisées dans la compression de données et plus particulièrement dans la compression d’ images.

Simulation de systèmes dynamiques

Les fractales sont utilisées dans la simulation de systèmes dynamiques, comme l’ écoulement de fluides, les mouvement d’ objets stellaires dans des modèles cosmologiques.

Musique

Les fractales sont parfois utilisées pour générer des musiques aléatoirement contrôlées dont l’ effet est parfois saisissant.

Physique élémentaire

Dans l étude des particules élémentaires constituant la matière, les physiciens découvrent, ou sont obligés d’ admettre l’ existence de nouvelles particules presqu’ à chaque fois qu’ ils diminuent leur échelle d’ études. Par exemple, à une époque pas si lointaine que cela, on pensait que l’ atome était la particule élémentaire, insécable constituant toute matière (d’ où son nom, atome signifiant insécable en grec). Mais, les physiciens ont découvert depuis, que les atomes sont composés d’ électrons, de protons et de neutrons, puis ils ont découverts que ces trois nouvelles particules sont en fait composés de quarks, qui eux-meme… Ainsi, certains physiciens commencent à penser qu’ il n’ existe pas de particules élémentaires, ils pensent qu’ à chaque fois qu’ ils croieront s’ en rapprocher, en fait ils découvriront de nouvelles particules exotiques. C’ est pour cela qu’ une théorie fractale de la physique élémentaire à vu le jour.

Annexes

Traçage d’ ensemble de Mandelbrot et de Julia sur ordinateur

Généralités

Nous allons nous intéresser seulement aux ensembles de la famille quadratique. Les ensembles de Mandelbrot et de Julia font partie d’ un ensemble à 4 dimensions plus général que nous appellerons E. Cet ensemble constitue la famille quadratique. Selon les plans de coupe en fonction desquels on regarde E, on obtient soit un ensemble de Julia, soit de Mandelbrot, soit de Mandelbrot incomplet. La raison de ce phénomène est que l’ ensemble quadratique général est défini par une fonction quadratique N(z, c)z et c sont des complexes ayant déjà chacun 2 dimensions, donc, la combinaison de z et c permet d’ obtenir 4 dimensions. On a donc 6 plans de coupes possibles:

  • Zx et Zy constants: Mandelbrot et Mandelbrot incomplet type 1
  • Cx et Cy constants: Julia
  • Cx et Zx constants: Mandelbrot incomplet type 2
  • Cy et Zy constants: Mandelbrot incomplet type 3
  • Cx et Zy constants: Mandelbrot incomplet type 4
  • Cy et Zx constants: Mandelbrot incomplet type 5

C’ est la raison pour laquelle les ensembles de Julia ressemblent beaucoup aux régions de l’ ensemble de Mandelbrot autour des points sources correspondants. La famille quadratique est définie par la suite complexe (Z_n) suivante:

    \[ (Z_n) : Z_{n+1} = Z_n^2 + c \]

La fonction N(z, c) définissant E est obtenue de la façon suivante: on s’ intéresse aux attracteurs de la suite. Pour cela on peut choisir de fixer arbitrairement Z_0=0. Une étude de quelques termes pour quelques valeurs de c montre que ces attracteurs sont très compliqués et nombreux. On peut classer les attracteurs en deux catégories: l’ attracteur infini et tous les attracteurs finis. L’ ensemble E étant défini comme le bassin d’ attraction de l’ ensemble des attracteurs finis, nous allons donc calculer les termes de la suite (Z_n) et observer son comportement asymptotique.

Comme un nombre complexe peut se représenter par un point dans un plan, nous représenterons les deux bassins d’ attraction sur notre écran d’ ordinateur, chaque pixel correspondant ainsi à une valeur de c. Nous utiliserons un code de couleurs: un point appartenant au bassin des attracteurs finis sera colorié différemment d’ un point du bassin de l’ attracteur infini. Nous aurons ainsi à la fin de notre calcul sur notre écran les deux bassins d’ attraction. Mais parler d’ infini pour les nombres complexes est délicat car il est mathématiquement impossible de définir d’ ordre dans les nombres complexes: nous allons alors raisonner non pas sur (Z_n) directement, mais sur son module |Z_n| qui, lui, est un nombre réel. Pour ne pas ralentir inutilement les calculs, nous allons raisonner sur |Z_n|^2 afin d’ éviter d’ avoir à calculer la racine carrée du module. Evidemment, tout cela n’ est possible que si cela ne change pas les attracteurs, mais cela est justement le cas. Il y a un autre problème: nous ne pouvons pas calculer une infinité de termes et observer ensuite à quel attracteur le point appartient. On se limite aux calculs d’ un certain nombre de termes suffisamment grand. Ceci est tout-à-fait possible car les termes de la suite pour c appartenant au bassin des attracteurs finis restent assez proches de 2 ou 3.

Nous adoptons donc la procédure suivante: pour une valeur de c, on calcule les termes (Z_n) de 1 jusqu’ à un nombre k. Si pour un certain p<k on a Z_p > a^2 (a étant fixé pour tout le tracé) on arrête le calcul et on considère c comme appartenant au bassin de l’ attracteur infini. Si aucun des termes Z_1, Z_2, \dots, Z_k n’a dépassé a^2 au cours des calculs, on considère alors que c appartient au bassin de l’ attracteur fini. Dans les deux cas, on colorie le point en fonction du résultat. Le nombre k est appelé nombre maximal d’ itérations, c’ est lui qui détermine la précision avec laquelle on effectue le tracé. Plus k est grand, plus la figure est précise mais plus les calculs sont longs. Le nombre a est appelé valeur d’ échappement, il dépend des programmes. Certains programmes utilisent 2, d’ autres 3 et d’ autres \sqrt{10}.

Pour faire encore plus joli, car c’est tout de même ce qui nous intéresse, on ne trace pas d’ une seule couleur le bassin de l’ attracteur infini. Par exemple, en reprenant les notations précédentes, si p=2 on colorie d’ une couleur, si p=3 d’ une autre, etc. Si on n’ a plus de couleurs, on reprend celle du début. C’est particulièrement facile puisque les couleurs sont déjà codées sous forme de nombres. Ce mode de tracé permet une meilleure visualisation de la structure fractale. Les frontières ainsi obtenues entre les différentes couleurs dans le bassin de l’ attracteur infini sont appelées courbes de niveau.

Julia

Pour tracer un ensemble de Julia, il suffit d’ inverser les conventions fixées lors du tracé de l’ ensemble de Mandelbrot. Cela signifie que nous allons fixer c au départ de la procédure. Le point du plan considéré sera alors représenté par un terme de la suite (Z_n). Donc, en fonction de la valeur fixée pour c au départ, on obtiendra différents ensembles de Julia.

Mandelbrot

L’ ensemble de Mandelbrot est défini par l’ ensemble E décrit ci-dessus, pour lequel on prend c comme variable, c’ est-à-dire qu’ on associe c à un point du plan, c’ est-à-dire ici, à un pixel de l’ écran. L’ ensemble de Mandelbrot est un cas particulier d’ ensemble de Mandelbrot incomplet type 1. Le cas particulier vient du fait que l’ on fixe la graine (ou point source) Z_0=0.

Mandelbrot incomplet type 1

Ce type d’ensemble est exactement identique à l’ ensemble de Mandelbrot décrit ci-dessus, mais en prenant une graine Z_0 \neq 0.

Mandelbrot incomplet type 2

Ce type d’ensemble est obtenu en choisissant Cx et Zx constants.

Mandelbrot incomplet type 3

Ce type d’ensemble est obtenu en choisissant Cy et Zy constants.

Mandelbrot incomplet type 4

Ce type d’ensemble est obtenu en choisissant Cx et Zy constants.

Mandelbrot incomplet type 5

Ce type d’ensemble est obtenu en choisissant Cy et Zx constants.

Programme

Nous avons écrit en langage C un programme de tracé de tous ces ensembles pour le système Amiga. Nous en avons extrait le module concernant la partie purement fractales, que nous livrons ici à titre informatif:

  • fractales.h
  • fractales.c

Exemples

Ces exemples ont tous été calculés à l ‘aide de notre programme décrit ci-dessus. Les images ont une définition de 704×548 pixels, et un faible nombre de couleurs afin d’ éviter d’ occuper trop de bande passante:

 

Un exemple d’ image de synthèse produite par Persistence of Vision sur Amiga 1200 avec un source fourni par Amiga News n°55.

Un exemple d’ image de synthèse produite par Scenary Animator sur Amiga, trouvée sur l’ internet.

Quelques références

 

  • CD-ROM Amiga: The Beauty of Chaos Vol 1 & 2
  • Amiga Revue n° 67, 68, 69, 70, 71, 72
  • Amiga News n° 41
  • Atari Magazine nouvelle formule n° 1
  • Atari Magazine n° 20
  • L’ensemble de Mandelbrot
  • Livre « The science of fractal images » (Springer-Verlag)