TPE 2002 – 2003 Introduction aux fractales
Transcription
TPE 2002 – 2003 Introduction aux fractales
TPE 2002 – 2003 Introduction aux fractales Lycée La Fontaine, Paris. Franck ELMALEH Son NGUYEN Khanh-Dang NGUYEN THU-LAM Antoine WOITIER Table des matières 1 Les 1.1 1.2 1.3 fractales, notions élémentaires La naissance de la géométrie fractale . . . . . . . . . . . . . . La dimension fractale . . . . . . . . . . . . . . . . . . . . . . . Méthode de construction de certaines fractales . . . . . . . . . 2 Les fractales, exemples et applications 2.1 Quelques fractales déterministes . . . . . . 2.1.1 L’ensemble de Mandelbrot . . . . . . 2.1.2 Le triangle de Sierpinski . . . . . . . 2.1.3 Le flocon de Von Koch . . . . . . . . 2.2 Les fractales et la nature . . . . . . . . . . . 2.2.1 L’universalité des fractales . . . . . . 2.2.2 Le mouvement brownien . . . . . . . 2.2.3 Etude des poumons par les fractales . 2.2.4 Les côtes marines . . . . . . . . . . . 2.2.5 Les L-Systèmes . . . . . . . . . . . . 2.3 Compression d’images . . . . . . . . . . . . 3 La 3.1 3.2 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 3 6 13 13 13 14 18 20 21 23 23 27 27 29 modélisation de l’arbre 35 Un modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Algorithme utilisé . . . . . . . . . . . . . . . . . . . . . . . . . 36 Implémentation de l’algorithme . . . . . . . . . . . . . . . . . 36 A Le programme de modélisation 40 A.1 Le fichier de données . . . . . . . . . . . . . . . . . . . . . . . 40 A.2 Lancement du programme . . . . . . . . . . . . . . . . . . . . 41 B Contenu du CD-ROM 42 1 Section 1 Les fractales, notions élémentaires 1.1 La naissance de la géométrie fractale En 1872, le mathématicien Weierstrass inventa une courbe continue, sans discontinuités, mais qui n’admettait de tangentes en aucun de ses points. Peu après, Peano définit une courbe (donc à une dimension) qui tendait à emplir tout le plan, ce qui en faisait un objet à deux dimensions (figure 1.5). Ces “monstres” ébranlèrent les mathématiques, qui pensaient que ces courbes n’étaient que des créations de la pensée. Mais dans les années 1970 que le mathématicien Benoı̂t Mandelbrot prit au sérieux ces courbes. Il inventa alors un mot pour désigner ces nouveaux objets. Ce mot, fractale, vient du latin fractus qui signifie brisé. Depuis l’Antiquité, la géométrie utilisée pour décrire le monde était la géométrie euclidienne. Cette géométrie décrit facilement les objets constitués de droites, de cercles, de sphères ou encore de cubes. Mais cette géométrie atteint ses limites quand il s’agit de décrire des objets très irréguliers, comme beaucoup d’objets de la nature. Par exemple, il serait extrêmement simpliste de considérer une montagne comme étant un simple cône. La géométrie fractale prend le relais et permet d’étudier avec succès ces objets appelés objets fractals ou encore fractales. Un exemple probant est la mesure de la longueur d’une côte marine, comme la côte de Bretagne. Il est évident que la longueur mesurée dépend de l’unité de mesure utilisée. Si on mesure cette longueur avec une règle de 10 cm sur une carte géographique à l’échelle 1/200000, on trouvera une longueur beaucoup moindre que celle trouvée avec cette même règle de 10 cm mais sur le terrain réel, de telle sorte que la longueur mesurée avec un étalon de plus en plus petit tendra vers l’infini (figure 1.1). Cela est dû au fait qu’un petit étalon implique la mesure du moindre rocher, imperceptible sur une carte 2 Fig. 1.1 – La longueur de la Bretagne dépend de l’étalon utilisé au 200000e . Ces considérations ne sont cependant pas exactes puisque en dessous de l’échelle de l’atome, la côte ne présente plus de caractère fractal, à considérer que la côte puisse être définie à l’échelle de l’atome ; mais elles permettent de comprendre qualitativement la notion de fractale. Avec un objet euclidien, la longueur de dépend pas réellement de la longueur de l’étalon utilisé. Si l’étalon de mesure est assez petit, le périmètre mesuré d’un cercle tendra vers une valeur finie si on diminue la longueur de la baguette jusqu’à tendre vers zéro. C’est d’ailleurs cette méthode qu’utilisait Euclide pour trouver une approximation du nombre π. Une autre propriété des fractales est l’invariance d’échelle ou encore l’auto-similarité, ce qui veut dire qu’une fractale est semblable quelle que soit l’échelle à laquelle on la regarde. Pour reprendre l’exemple des côtes marines, une baie est semblable à elle-même quelle que soit l’altitude d’observation. 1.2 La dimension fractale Une des caractéristiques des courbes de la géométrie euclidienne est le périmètre, qui est fini et a pour valeur un nombre réel. Pour les fractales, ce n’est pas le cas puisque le périmètre est infini. Une fractale possède alors une caractéristique que nous allons définir ici. La géométrie euclidienne définit la notion de dimension. Tout le monde 3 Fig. 1.2 – Le “carré de Sierpinski” Fig. 1.3 – Deux ensembles de Julia 4 sait qu’une droite a une dimension, qu’un rectangle est bi-dimensionnel et qu’une sphère est en trois dimensions. Un des développements les plus remarquables de la seconde moitié du XXe siècle est l’extension par Mandelbrot de la notion de dimension qui peut alors être entière, pour les objets de la géométrie euclidienne ; mais aussi non entière pour les objets de la géométrie fractale. La notion de dimension non entière est une notion abstraite. Voici la définition mathématique de la dimension fractale : Appelons L(l) la longueur (l’aire ou le volume) mesurée avec un étalon de longueur (respectivement de surface ou de volume) l ; d la dimension fractale de l’objet étudié ; AB est la taille macroscopique de l’objet, c’est-à-dire la distance entre les deux bouts de l’objet. On a alors : d AB L(l) = l l Autrement dit, le nombre n d’éléments de taille l dans une fractale de taille globale L et de dimension d s’obtient avec : d L n= l d’où d= ln n ln Ll Vérification avec la dimension classique Si on prend un carré de côté c, alors ce carré se divise en 4 carrés de 2 longueur 2c . Si d est la dimension fractale du carré, alors on a n = ( cc )2 = 4, 2 ln 4 L = c et l = 2c . Selon la formule, d = ln , d’où d = 2. 2 De même, un cube de côté c se divise en 8 cubes de côté 2c . La dimension ln 8 est alors égale à ln , qui est égal à 3. 2 On retrouve bel et bien la dimension “classique” définie par Euclide. Interprétation qualitative de la dimension fractale Généralement, plus la dimension fractale d’un objet est élevée, plus l’objet est irrégulier. Un objet de dimension fractale comprise entre 1 et 2 est construit à partir d’une courbe à une dimension. Plus la dimension s’approche de 2, plus la fractale est irrégulière. Si la dimension est vraiment très proche de 2, alors la courbe est tellement irrégulière qu’elle remplit presque tout le plan — qui, rappelons-le, est bi-dimensionnel. C’est le cas de la courbe de Peano dont la dimension est égale à 2 (figure 1.5) 5 1.3 Méthode de construction de certaines fractales La courbe de Von Koch Pour construire cette courbe, il faut débuter avec deux formes géométriques : un initiateur et un générateur. Le générateur est une ligne brisée faite de n segments égaux de longueur r. En partant de l’initiateur, chaque étape de la construction consiste à remplacer chaque segment de la ligne brisée par une copie du générateur, réduite et placée de telle façon à ce que les deux points aux extrémités soient les points des extrémités du segment à remplacer. Une étape de la constuction va être appelée “itération”, puisque l’on répète la même opération un certain nombre de fois. La courbe de Von Koch la plus connue est construite comme décrit figure 1.6. Il existe d’autres variantes de la courbe de Von Koch dont la figure 1.7 est un exemple. Toutes les fractales ne sont pas construites à partir d’un initiateur et d’un générateur, mais par contre le terme “itération” va revenir souvent. IFS L’IFS (Iterated Function System) est un moyen de représenter les fractales. Il est défini par un espace métrique complet et un ensemble d’applications contractantes. L’ensemble recherché, qui peut être fractal est l’attracteur de l’IFS. Il est invariant selon toutes les applications qui composent l’IFS. Plus clairement, le mode de calcul des IFS consiste à itérer un certain nombre d’applications prédéfinies. Ces applications sont par exemples des réductions, suivies ou pas de translations, etc. . . Ces applications dans le plan associent à chaque point du plan un autre point, mais de telle sorte qu’avec un point de départ quelconque, on obtient toujours la même figure en répétant cette application sur le point obtenu par l’itération précédente. C’est en quelque sorte une suite définie par récurrence mais avec des points du plan. La compréhension des IFS dépasse le cadre de ce document. Les IFS utilisent le thérorème du point fixe et son corrolaire le théorème du collage. Nous aurons l’occasion d’entr’apercevoir une simplification du mode de calcul d’un IFS avec le triangle de Sierpinski (cf. section 2.1.2). 6 Fig. 1.4 – Les fractales sont également esthétiques. . . 7 Fig. 1.5 – Une courbe de Peano au bout de 5 itérations 8 Fig. 1.6 – Principe de la construction de la courbe de Von Koch 9 Fig. 1.7 – Variante de la courbe de Von Koch 10 Fig. 1.8 – Une fougère créée par un IFS 11 Fig. 1.9 – Un corail créé avec un IFS 12 Section 2 Les fractales, exemples et applications 2.1 Quelques fractales déterministes Les fractales déterministes sont les fractales dont la construction ne dépend pas du hasard. Elles sont souvent construites géométriquement ou avec des méthodes numériques. 2.1.1 L’ensemble de Mandelbrot L’ensemble de Mandelbrot est cité ici à titre historique. Cet ensemble est une représentation graphique de la vitesse de divergence d’une suite de nombres complexes. Pour chaque point du plan P du plan complexe d’affixe p, on étudie la suite suivante : Z0 = 0 (Zn )n∈N Zn+1 = Zn 2 + p Si la suite converge, le point P est noirci. Si la suite diverge, le point est en gris plus ou moins clair selon la vitesse de divergence. Pour savoir si la suite converge, on calcule les termes de la suite jusqu’à ce que |Zn | > 2, auquel cas on est sûr que la suite diverge. On peut aussi modifier la suite à étudier pour obtenir d’autres ensembles. Par exemple, les ensembles de Julia sont définis par la même suite sauf que le premier terme Z0 est l’affixe du point courant et c une constante propre à chaque ensemble de Julia. C’est l’algorithme cité ci-dessus que suit notre programme présent sur le CD-ROM et avec lequel nous avons obtenu la figure 2.1. 13 Fig. 2.1 – L’ensemble de Mandelbrot obtenu par notre programme 2.1.2 Le triangle de Sierpinski Nous allons maintenant étudier un objet fractal très célèbre : le triangle de Sierpinski aussi appelé tapis de Sierpinski. On part d’un triangle plein. A la première itération (n=1), on efface le triangle dont les sommets sont les milieux des segments du triangle initial. On obtient alors trois autres triangles pleins. On recommence l’opération une infinité de fois (voir figure 2.3). L’aire du triangle de Sierpinski Nous allons ici nous intéresser à l’aire de cet objet. Mais rappelons que le triangle de Sierpinski est avant tout défini avec un nombre d’itérations qui tend vers l’infini. 14 Fig. 2.2 – Le triangle de Sierpinski n=0 n=1 n=2 Fig. 2.3 – Construction du triangle de Sierpinski Appelons An l’aire de la figure à un niveau de récursivité n. A chaque itération, le triangle perd 41 de son aire. On a donc la relation An+1 = 43 An . On reconnaı̂t une suite géométrique de raison 34 et de premier terme A0 , qui est l’aire du triangle initial. On a donc : n 3 ∀n ∈ N, An = A0 4 Une suite géométrique de raison q tel que −1 < q < 1 converge vers 0, d’où : lim An = 0 n→+∞ L’aire du triangle de Sierpinski tend donc vers zéro, ce qui signifie que l’aire des triangles tend vers zéro. Comment peut-on voir une figure si son 15 aire peut être considérée comme nulle ? Premièrement, la figure que l’on voit n’est pas vraiment une fractale, car le nombre d’itérations n’est pas infini. Deuxièment, les côtés des triangles ne sont pas censés avoir d’épaisseur, ce qui n’est plus le cas sur un support quelconque qui a forcément une résolution limitée par l’unité qu’est le pixel. Ainsi, les segments tracés ont une épaisseur d’un pixel. Dimension fractale du triangle de Sierpinski A chaque itération, chaque triangle est divisé en trois triangles, ces triangles ayant un côté deux fois moindre. Le triangle de Sierpinski a donc pour 3 ≈ 1.58. dimension fractale ln ln 2 Le triangle de Sierpinski, un attracteur étrange Le triangle de Sierpinski peut également être tracé grâce aux attracteurs étranges. Fig. 2.4 – Un attracteur étrange Soit trois points A, B et C du plan. Prenons un autre point quelconque du plan appelé P0 . Choisissons maintenant au hasard un des points A, B ou C — admettons que le hasard désigne B. Nous allons tracer le point P1 , milieu du segment [P0 B]. Recommençons l’opération : si le hasard désigne A, nous allons tracer le point P2 milieu du segment [P1 A]. En recommançant le processus plusieurs milliers de fois, on obtient le triangle de Sierpinski. Ce processus fonctionne quel que soit le point de départ P0 choisi. En effet, au bout d’un certain nombre d’itérations, le point Pn fera inévitablement 16 partie de la figure théorique. A partir de là, tous les autres points calculés seront dans la figure théorique. C’est pourquoi on appelle cette figure un attracteur étrange, comme si tous les points étaient attirés vers les points de la figure. C’est cette méthode qui a été utilisée pour la figure 2.4, avec un nombre total de 30000 itérations. Avec le triangle de Pascal Le triangle de Sierpinski peut aussi être tracé à partir du triangle de Pascal. Mais rappelons tout d’abord ce qu’est le triangle de Pascal. Ce triangle sert entre autres à calculer les coefficients du polynôme issu du développement de (a + b)n . Au sommet du triangle, on place un 1. Puis, pour chaque ligne, on additionne deux à deux les nombres de la ligne du dessus (figure 2.5.a). Maintenant, enlevons tous les nombres pairs du triangle de Pascal. On obtient ainsi le triangle de Sierpinski. La figure 2.5.b montre le résultat, avec les nombres impairs restants remplacés par le chiffre 1. 1 1 1 1 1 1 1 2 3 1 1 1 1 1 3 1 1 1 1 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (a) Le triangle de Pascal (8 lignes) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (b) Le triangle de Sierpinski déduit du triangle de Pascal (16 lignes) Fig. 2.5 – Le triangle de Pascal et le triangle de Sierpinski Encore un exemple surprenant Le triangle de Sierpinski est assez étonnant dans la mesure où on le retrouve également sur la coquille d’un certain coquillage (figure 2.6). Selon les tracaux de H. Meinhardt, certaines réactions chimiques en présence de diffusion engendreraient des structures résultant d’une auto-organisation spatiale, comme c’est le cas ici. 17 1 Fig. 2.6 – Coquille de Cymbolia innexa REEVE 2.1.3 Le flocon de Von Koch Il s’agit ici d’une autre fractale appelée flocon de Von Koch. Cette fractale est construite exactement comme la courbe de Von Koch sauf que l’objet de départ n’est pas un segment mais un triangle équilatéral, ce qui aboutit à une courbe fermée (figure 2.7). n=0 n=1 n=2 Fig. 2.7 – Construction du flocon de Von Koch 18 n=4 L’aire du flocon de Von Koch Appelons An l’aire de la figure à un niveau de récursivité n (n ∈ N). A0 est l’aire du triangle initial. Prenons A0 = 1 pour simplifier les calculs. Appelons Cn le nombre de côtés du flocon au niveau de récursivité n. Remarquons que Cn est le nombre de triangles qui se rajouteront à l’itération n + 1. Nous avons C0 = 3 puisque le premier triangle possède 3 côtés. Pour chaque côté du flocon, il s’ajoute 3 côtés à chaque itération. On a alors la relation Cn+1 = Cn +3·Cn , soit Cn+1 = 4·Cn . Il s’agit de la suite géométrique de raison 4 et de premier terme C0 = 3. ∀n ∈ N, Cn = 3 · 4n n Les côtés du flocon ont pour longueur 31 fois le côté initial. Les aires sont proportionnelles au carré du côté du triangle. A0 = 1 donc l’aire Sn d’un n 2 . petit triangle est Sn = 13 L’aire du flocon est égale à l’aire du flocon à l’itération précédente, plus l’aire des petits triangles. De tout ce qui précède, on tire : An+1 = An + Cn Sn+1 2n+2 1 n = An + 3 · 4 · 3 n 4 = An + 3 ·32n n 1 4 = An + 3 9 Pour trouver la limite de An , il nous faut exprimer An en fonction de n. 0 1 4 A1 = A 0 + 3 9 1 1 4 A2 = A 1 + 3 9 .. . n 1 4 An+1 = An + 3 9 19 En exprimant dans la dernière ligne An en fonction de A0 , on a : " 1 n # 0 4 4 1 4 + +...+ An+1 = A0 + 3 9 9 9 n+1 1 1 − 49 = A0 + · 3 1 − 49 " n+1 # 3 4 = A0 + 1− 5 9 On a maintenant Sn+1 en fonction de n + 1. On a donc : n 3 4 1− An = A 0 + 5 9 Il faut maintenat calculer la limite de (Sn ). n 4 =0 lim n→+∞ 9 d’où lim An = n→+∞ 8 5 L’aire du flocon de Von Koch tend donc vers 8 5 fois l’aire initiale. La dimension fractale du flocon de Von Koch A chaque itération supplémentaire, chaque segment est divisé en 4 segments 3 fois plus petits. La dimension du flocon de Von Koch est donc égale ln 4 à ln ≈ 1.26. 3 2.2 Les fractales et la nature Par opposition aux fractales déterministes (section 2.1, page 13), il existe des fractales liées au hasard ou à des phénomènes aléatoires. C’est le cas des objets fractals de la nature, dans lesquels le hasard intervient. Ces fractales fabriquées par le hasard ont permis de mieux comprendre certains phénomènes, comme les fluctuations des cours de la Bourse, la structure des polymères ou encore le fonctionnement des poumons. 20 2.2.1 L’universalité des fractales La longueur d’une côte, le relief d’une montagne jeune ou d’une ı̂le montagneuse, un réseau fluvial, la forme des arbres, le réseau des veines et des artères, les lignes de fracture en métallurgie, la forme des nuages et leur répartition dans le ciel, celle des étoiles dans une galaxie, la surface des substances favorisant la catalyse, la répartition des mots dans un texte sont autant d’exemples d’objets fractals que l’on peut décrire quantitativement. C’est de l’observation de ces phénomènes qu’est née l’idée de l’“universalité des fractales”. Il est vrai que les exemples d’analogie entre une forme naturelle et une forme fractale sont aussi divers et nombreux que surprenants. Mais affirmer que tout objet nous entourant possède une structure fractale, semble, de prime abord, assez excessif. Il faut alors considérer le problème sous tous ses aspects. Tout d’abord, il faut remarquer qu’on observe des structures fractales dans le domaine de l’infiniment petit (agrégats atomiques, irrigation sanguine. . .) comme dans le domaine de l’infiniment grand (organisation des galaxies. . .). Donc, tout ce qui constitue le monde qui nous entoure et tout ce qu’il constitue est en rapport avec les fractales. On peut dès lors le considérer comme partie intégrante d’un tout gouverné par des structures fractales. D’autre part, comme l’a fait remarquer Mandelbrot, père des fractales, la géométrie naturelle est le plus souvent une géométrie des formes complexes, qu’il appelle géométrie fractale, tandis que la géométrie de la droite, du cercle, des objets réguliers est le plus souvent celle de la création humaine. En effet, il est difficile de considérer un pavé, une feuille, une sphère comme des objet fractals, puisqu’ils obéissent a des structures régulières. Mais il s’avère que ce sont des objets crées de la main de l’homme dans le but précis qu’il puisse maı̂triser cet objet. Sauf que, dans certains cas, il arrive qu’aucun modèle satisfaisant ne soit trouvé de cette manière, notamment lorsqu’on veut reproduire des formes naturelles. Déjà, Léonard de Vinci s’était intéressé au problème de l’écoulement des fluides en observant et en dessinant le cours de l’eau des ruisseaux. II était intrigué par les formes si particulières et pourtant reproductibles des tourbillons. Si l’eau du ruisseau se déplace de haut en bas, c’est bien à cause de la gravité dont on connaı̂t la loi universelle depuis que Newton l’a révélée à l’humanité. Mais, même en augmentant la précision des mesures, et en introduisant des facteurs de viscosité, de cisaillement et autres frottements, on n’obtient pas de modèle suffisamment ressemblant à ce que la nature nous laisse observer. Cela veut-il dire que l’eau des torrents n’est pas concernée par la gravité ? 21 Sûrement pas. Alors la conclusion que l’on donne généralement, c’est qu’il faudrait un modèle plus compliqué qui associe autour de la loi de gravité de nombreux facteurs perturbants évalués avec suffisamment de précision. Et d’ajouter que la résolution de ce modèle serait alors au delà de nos possibilités en termes de puissance de calcul ou de savoir-faire mathématique, ce qui explique que personne n’a pu le produire. Une autre solution serait d’affirmer que le hasard est à l’origine du décalage qui existe entre le parcours tourmenté de l’eau du ruisseau et la trajectoire rectiligne et régulière que produit l’équation de la gravité. Aucune de ces deux hypothèses n’est vraiment satisfaisante. Dès lors, on peut convenir que l’étude des fractales concerne tout ce que la nature a de quantifiable et non-couvert par la géométrie “traditionnelle”. Il y a donc bien une “universalité des fractales”, certes relative, mais néanmoins probante. Il en ressort que le domaine couvert par les systèmes fractals est immense et que, par conséquent, il convient de les grouper selon différents critères. Je citerai ici la classification effectuée par Bernard Sapoval, directeur de recherches au CNRS, qui me semble la plus claire puisqu’il associe les différents systèmes fractals selon les caractéristiques qui lui sont propres : 1. Les systèmes aléatoires : on observe un comportement qui semble incongru mais qui peut s’expliquer “après-coup” ou qui peuvent permettre une étude probabiliste du phénomène. En effet, elle associe au calcul des probabilités la géométrie, et les formes observés alors peuvent être caractéristiques et répétitives. C’est le chaos, rebaptisé alors chaos déterministe ; on y retrouve l’étude des cours de la Bourse, les perturbations dans les orbites planétaires, la météorologie. 2. Les phénomènes biologiques qui s’expriment sous forme de structures fractales pour des raisons bien précises. C’est le cas de l’irrigation sanguine dans certains organes, des alvéoles pulmonaires ou des racines d’une plante ? 3. Les systèmes fractals qui se comportent de façon prévisible : Ce sont les systèmes fractals les plus simples issus d’itérations tels ceux générés, par exemple, par l’Homme comme l’ensemble de Mandelbrot ou l’ensemble de Julia. Ici, la géométrie traditionnelle et fractale sont intimement liés, et forment ce que Sapoval appelle le chaos mathématique. Ces systèmes sont intéressantes parce qu’elles peuvent s’approcher de systèmes plus aléatoires. 4. Les phénomènes qui s’auto-organisent : ils suivent une évolution spontanée et plus ou moins prévisible selon la part de hasard qui l’accompagne. Citons l’exemple des côtes marines : l’érosion s’auto-amortit 22 par la perte d’énergie progressive de la force qui la provoque, ce qui explique son effet “fractal” qui reproduit le même motif indéfiniment à une échelle plus petite, mais il faut aussi tenir compte du type de matière concernée. C’est la où on retrouve la part aléatoire du phénomène. On s’aperçoit avec cette classification que les fractales sont un outil prépondérant pour comprendre le monde qui nous entoure. Les possibilités ouvertes par la découverte de ce type de structure sont énormes et aujourd’hui de plus en plus de chercheurs s’y intéressent. L’homme qui voulait a tout prix maı̂triser la nature, semble aujourd’hui disposé à la comprendre. 2.2.2 Le mouvement brownien Pour illustrer ce qu’est le mouvement brownien, considérons un mouvement à la fois simple et aléatoire. Ce mouvement est celui d’un point qui, à chaque instant, effectue un saut dans une direction quelconque dictée par le hasard, et à une distance également décidée par le hasard, en éliminant cependant tous les sauts de grande longueur. Pour simplifier encore plus, prenons comme longueur des sauts une longueur qui reste à peu près constante. Ce mouvement peut être celui d’un homme ivre. Supposons que cet homme puisse faire, avec une probabilité égale, un pas en avant, un pas en arrière, un pas à gauche, ou un pas à droite. Après un certain temps, la trajectoire de cet homme est, par nature, aléatoire. Supposons qu’on dessine la trajectoire de cet homme tous les pas, tous les 10 pas ou tous les 100 pas. On s’aperçoit alors que les trajectoires se ressemblent. Il se trouve que la dimension de cette trajectoire est égale à 2, ce qui veut dire qu’une trajectoire très longue (en nombre de pas) aura tendance à noircir tout le plan. Le mouvement de l’homme ivre cité ci-dessus est comparable au mouvement brownien. Les molécules d’un gaz sous agitation thermique ont un mouvement brownien : les molécules du gaz changent constamment leur trajectoire à la suite de collisions mutuelles. Ces collisions sont encore plus fréquentes dans un liquide, d’où le phénomène de diffusion. Ce phénomène uniformise la répartition de deux gaz ou liquides de même densité, ce qui les mélange. Le phénomène de diffusion est à la base de nombreux processus vitaux, comme la respiration, l’assimilation des nutriments, ou encore l’élimination des toxines. 2.2.3 Etude des poumons par les fractales Dans de nombreux processus biologiques, il y a transfert d’un flux de matière d’un milieu vers un autre, via une surface de séparation. Les plantes 23 Fig. 2.8 – Le mouvement brownien. En haut, fragment d’une trajectoire brownienne, telle qu’elle a été observée par Jean Perrin. A première vue, cette ligne brisée n’est pas fractale. En bas, une trajectoire brownienne sur 20000 pas, tracée par ordinateur. 24 Fig. 2.9 – Moulage d’un poumon humain. Les artères sont en rouges, les veines en bleu et les bronches en blanc. 25 échangent de l’eau et des sels minéraux avec le sol à travers la surface de leurs racines ; la paroi intestinale permet l’absorption des nutriments ; l’oxygène de l’air entre dans le sang à travers la surface des alvéoles pulmonaires. Tous ces processus sont indispensables à la vie. Nous allons étudier ici plus en détails le cas de nos poumons. Le poumon humain contient en permanence environ un demi-litre de sang. A chaque battement cardiaque, ce volume de sang veineux est apporté sur la surface d’échange puis retiré après enrichissement en dioxygène. Le sang devient alors du sang artériel. La surface d’échange est très grande. On l’estime à 140 m2 , ce qui fait un carré de 12 m de côté. Il faut un formidable système d’irrigation et de drainage pour répartir et récolter ensuite le sang sur une surface aussi grande et avec une telle vitesse. Mais il n’y a pas que le sang ; il faut aussi amener le dioxygène au contact du sang. Le poumon est ainsi formé d’un double réseau de vaisseaux sanguins et de bronches (figure 2.9). Ces canalisations se divisent successivement en deux. L’artère principale se divise en deux artères plus petites et ainsi de suite 23 fois. Au bout du réseau, il y a donc 223 soit environ 8 millions d’artérioles. Benoı̂t Mandelbrot a proposé un modèle pour les bronches, représenté sur la figure 2.10. Dans cette structure, tous les points terminaux se trouvent à la même distance de l’entrée et pourtant il remplissent l’espace uniformément. Pour que la surface d’échange soit maximale, il faut utiliser le volume de la cage thoracique de façon optimale. Nous savons que les alvéoles ont un diamètre moyen d’environ l = 0, 2 mm. Trouvons comment agencer les alvéoles pour que la surface totale soit 140 m2 . Représentons chaque alvéole par un cube de côté l ouvert sur une face puisque l’air doit y accéder. Dans chaque cube, il y a 5 faces utilisables, et la surface de chaque alvéole est alors de l’ordre de 5·(0.02)2 = 2·10−3 cm2 . On sait qu’il y a environ 216 acinus, soit environ 60000. La surface totale de chaque acinus est alors environ 140/60000 mètres carrés, soit environ 25 cm2 . Le volume de chaque acinus est environ 5 litres/60000 soit 0.1 cm2 , ce qui lui donne une taille L d’environ 5 mm. Dans chaque acinus, on veut empiler les alvéoles sur une fractale de dimension D et obtenir une surface totale par acinus d’environ 25 cm2 . D’après la définition mathématique de la dimension fractale (page 5), on a d = ln n/ ln (L/l). Ici, (L/l) = 5 mm/0,2 mm. Le nombre n de petits cubes de surface 2 · 10−3 cm2 tel que la surface par acinus soit 25 cm2 est (25/2 · 10−3 cm2 ) = 12500. On a donc d = ln 12500/ ln 25, soit 2,93. Du point de vue géométrique, la surface des alvéoles est de dimension 3 et non 2. On a ici un exemple de surface “remplissant l’espace”. 26 2.2.4 Les côtes marines Nous avons déjà évoqué la mesure de la côte de la Bretagne (section 1.1). Nous avons vu que les côtes marines peuvent être considérées comme des fractales et que, par conséquent, leur longueur est infinie. La dimension fractale est donc plus apte à caractériser une côte. L’américain Richardson a d’ailleurs consigné tous les résultats qu’il a obtenus dans un graphique (figure 2.13). De nos jours, grâce aux satellites et à la puissance de calcul dont nous disposons, des programmes peuvent effectuer les mesures nécessaires afin de calculer cette dimension. Il s’avère que la dimension fractale des côtes marines sur terre est comprise entre 1,1 et 1,5 avec une moyenne d’environ 1,3. Modélisation d’une côte Il existe deux façons générales pour créer de toutes pièces une côte qui semble réelle. La première méthode consiste à modéliser un terrain selon des méthodes que nous ne détaillerons pas ici. Ensuite, on fixe le niveau de l’eau et on calcule les points appartenant à la côte, c’est-à-dire les points qui se trouvent exactement au niveau de l’eau. Cette méthode est utilisée par le logiciel Terragen, un shareware destiné à fabriquer des images de paysage ultra-réalistes. La figure 2.11 montre une carte topographique créée à l’aide de ce programme. La deuxième méthode consiste à créer la côte à partir d’une courbe fractale. Cette courbe peut être une fractale déterministe comme par exemple le flocon de Von Koch, qu’on modifie par des lois probabilistes. Une autre solution est de partir du mouvement brownien qu’on modifie également afin d’obtenir une côte qui ne se recouvre pas. Vous pouvez comparer les résultats de la modélisation obtenue figure 2.12. On s’aperçoit clairement que les ı̂les obtenues les plus réalistes sont celles qui ont pour dimension 1.3, les autres étant soit trop lisses (d=1,1), soit trop irrégulières (d=1,3) voire carrément irréelles (d=1,9). 2.2.5 Les L-Systèmes Un L-Système est un groupe de règles et de symboles qui modélise un processus de croissance. Ces règles permettent de construire une chaı̂ne de symboles qui sera modifiée à chacune des étapes de la modélisation. Les L-Systèmes ont été inventés par Aristidd Lindenmayer en 1968. Ils sont l’aboutissement des travaux de ce biologiste qui étudiait la croissance végétale. En effet, il a remarqué que souvent à chaque étape de ce processus, 27 les mêmes phénomènes intervenaient et se généralisaient aux produits de l’étape précédente tout en restant valables pour les générations suivantes. Ils sont définis par un initiateur et un ou plusieurs générateurs (il faut aussi parfois préciser quelques facteurs qui peuvent intervenir dans le processus comme des angles par exemple). On observe ainsi des caractéristiques communes avec les suites mathématiques. Prenons l’exemple de la reproduction des lapins qui est un processus de croissance quantifiable. Il est défini ainsi : Initiateur : I Générateurs : I → P (I représente un lapin qui ne peut se reproduire, P est un lapin qui peut se reproduire) P → P I (P donne automatiquement naissance à un lapin PI) Au départ, nous avons I. La première génération sera donc P, la deuxième PI et ainsi de suite : PIP PIPPI PIPPIPIP. . . Ce L-Sysème est caractérisé par la suite de Fibonacci : F (n + 2) = F (n + 1) + F (n) On peut alors prévoir facilement le nombre de lapins présents à chaque génération : ce sont les nombres de Fibonacci. Mais la suite citée précédemment tend vers l’infini et la croissance est très rapide. Alors pourquoi le monde n’est-il pas envahi de lapins ? Il faut remarquer que dans cet exemple, on a négligé les paramètres de mortalité, de natalité, de fécondité. . . Il en va de même pour tout L-Système, ils représentent une croissance “idéalisée“, qu’on ne retrouve pas dans la nature. Il faut donc en déduire que l’étude de phénomènes naturels grâce aux L-Systèmes est approximative et limitée. Le développement des nouvelles générations étant le même que celui des générations précédentes mais dans une proportion moins grande puisque plus récent, on retrouve ici la notion d’“homothétie interne” et donc il y a bien un lien fort entre les L-Systèmes et les fractales. Ainsi, on peut réaliser la modélisation d’une plante, grâce à un L-Système, on obtiendra un objet fractal. Par exemple si on a les conditions de départ suivantes : Angle : 22,5◦ Initiateur : F Générateur : F → F [+F ]F [−F ]F 28 F représente ici l’avancée “vers l’avant” d’un point, + représente le virage d’un point à gauche, − représente le virage d’un point à droite. Un crochet ouvrant permet de mettre un point en mémoire et un crochet fermant permet de revenir au point précédemment mémorisé. 2.3 Compression d’images Voici maintenant une des applications des fractales. De nos jours, les images sont très présentes dans le monde du multimédia. Un enjeu d’importance est donc la compression des images. La méthode la plus utilisée actuellement est la compression JPEG, qui utilise la transformée de Fourier. Mais il existe une technique qui donne d’excellents taux de compression, basée sur les fractales, que nous allons introduire ici. Pour comprendre le principe de la méthode de compression fractale, nous allons considérer un photocopieur qui réalise trois réductions d’une image donnée (figure 2.16). Chaque photocopie est représentée par une flèche. Quelle que soit l’image de départ, et en itérant plusieurs fois le processus, on obtient toujours la même image à savoir ici le triangle de Sierpinski. Le fait qu’on aboutisse toujours à la même image est très important pour la méthode de compression fractale. La compression consiste alors à trouver le fonctionnement de la photocopieuse, le triangle de Sierpinski représentant l’image à compresser. La photocopieuse est en fait un ensemble de transformations telles la rotation, ou l’homothétie, c’est-à-dire un IFS (cf. 1.3, page 6). Cette méthode est en réalité basée sur le théorème du collage qui est un corollaire du théorème du point fixe. Cette méthode offre des taux de compression très satisfaisants. De plus, la décompression des images est extrêmement rapide et il n’y a pas de phénomène de pixellisation, quelle que soit l’échelle utilisée à la décompression. Le principal inconvénient est évidemment le temps de calcul lors de la compression, puisqu’il faut chercher les transformations qui aboutissent au meilleur résultat, et il n’existe pas de méthode précise pour les trouver ; il faut tester toutes les transformations existantes, qui sont infiniment nombreuses. 29 Fig. 2.10 – Structure imaginée par Mandelbrot pour les bronches Fig. 2.11 – Un relief obtenu avec le logiciel Terragen 30 31 Fig. 2.12 – Modélisation de côte selon une dimension donnée Fig. 2.13 – Calcul de la dimension fractale des côtes par Richardson. Le coefficient directeur des droites correspondant à la côte étudiée est égal à 1 − d, d étant la dimension fractale. On voit qu’avec le cercle, on retrouve bien la valeur de 1. 32 Fig. 2.14 – Exemple de L-Système 33 Fig. 2.15 – Autre exemple de L-Système Fig. 2.16 – Principe de la compression fractale 34 Section 3 La modélisation de l’arbre 3.1 Un modèle Les L-Systèmes (cf. 2.2.5, page 27) permettent, entre autres de dessiner des plantes. Ce système est certes très puissant mais il est limité car il ne peut créer d’objet en trois dimensions. De plus, les L-Systèmes sont plus aptes à restituer des plantes de petites tailles, comme les arbustes. En effet, sur les plantes de ce type, les branches sont présentes partout, et tendent à remplir l’espace, surtout pour une haie, par exemple. Mais les L-Système restituent bien un mode de croissance de l’arbre. Il y a donc une différence avec des arbres de grandes tailles sur lesquels il n’y a pas de branches poussant sur le tronc principal, sauf dans le cas de quelques exceptions. Nous avons donc créé notre propre modèle qui restitue fidèlement et simplement les arbres au port (forme) plutôt rond comme les platanes ou les pommiers. Ce modèle permet de décrire un arbre en trois dimensions et s’appuie sur les L-Systèmes modifiés. Il faut tout de même préciser qu’il faut introduire un léger hasard dans le choix de la direction et de la longueur des ramifications, sans quoi l’arbre pourrait paraı̂tre irréel. Limites de ce nouveau modèle Le présent modèle a, comme tout modèle, ses limites concernant le soucis de reproduction de la réalité. Les limites concernent en fait le changement du modèle des L-Systèmes. En effet, l’arbre obtenu possède un “trou” au milieu de son feuillage. Il semble qu’il faut suivre le modèle basé sur les L-Systèmes à partir d’un certain rang d’itération, ce qui signifie qu’il y a plusieurs types de branches. Un type de branches qui réagirait comme les branches de notre modèle et un autre type qui réagirait comme les branches d’un L-Système, 35 qui aurait une sorte de croissance a chaque itération. Une autre conséquence de la transformation du modéèle des L-Système est que notre modèle n’est pas un modèle de croissance mais ne permet seulement de restituer un arbre arrivé à l’âge adulte. 3.2 Algorithme utilisé L’algorithme est assez simple puisqu’il s’appuie à moitié sur les L-Systèmes. On dessine tout d’abord le tronc. Puis, on dessine les ramifications dont la longueur et la direction dans l’espace sont spécifiées. Ensuite, pour chaque ramification, on dessine des ramifications, de telle sorte que notre arbre possède auto-similarité. 3.3 Implémentation de l’algorithme Dans l’implémentation de notre algorithme, les branches sant assimilées à des vecteurs dans l’espace, puisqu’il s’agit d’un modèle en trois dimensions. Les branches doivent à un moment ou un autre subir des rotations et des translations. Pour réaliser des translations, les coordonnées cartésiennes de vecteurs sont plus commodes à utiliser puisqu’il suffit d’additionner deux à deux les coordonnées des vecteurs. En revanche, pour réaliser des rotations dans l’espace, les coordonnées sphériques sont plus appropriées. En effet, le vecteur est alors repéré par un couple de trois nombres : – la “longueur” du vecteur, appelée norme du vecteur, – un angle θ, – un angle φ. Formules de conversion de repères Pour les significations des différentes variables, voir figure 3.2. → − − − er = sin θ cos φ→ ex + sin θ sin φ→ ey + cos θ → ez − → − → − → − − eθ = cos θ cos φ ex + cos θ sin φ ey − sin θ → ez → − → − → − eφ = − sin φ ex + cos φ ey Les feuilles de l’arbre Les feuilles de l’arbre sont tout simplement des triangles verts. Ces triangles ont des mesures prises aléatoirement mais tout de même limitées pour ne pas avoir des énormes feuilles. 36 Fig. 3.1 – Arbre obtenu par notre programme avec le fichier descr.txt, un générateur aléatoire égal à 9 et tous les autres paramètres par défaut 37 Fig. 3.2 – Coordonnées sphériques d’un point M Un générateur d’objets 3D Notre programme génère un fichier au format d’un logiciel gratuit appelé Pov-Ray. Ce programme prend justement un fichier dans lequel sont inscrites des commandes, lesquelles décrivent les objets à dessiner. Voici un extrait du fichier généré par notre programme : cylinder { <0, 0, 0> <0, 2, 0> 0.1 texture { pigment { color Brown } } } Le langage est intuitif et donc aisé pour la compréhension. Le mot cylinder indique qu’il faut dessiner un . . . cylindre. tout ce qui se trouve après se rapporte au cylindre. <0, 0, 0> et <0, 2, 0> sont les coordonnées des deux extrémités du cylindre, situé sur son axe de symétrie. Le nombre 0.1 indique le rayon du cylindre et la dernière ligne indique la couleur à appliquer au cylindre. A remarquer qu’on pourrait demender au programme d’appliquer une texture de tronc d’arbre pour ajouter une touche de réalisme au résultat final. Les triangles représentant les feuilles s’écrivent ainsi : 38 triangle { <-1.47469, 1.99711, -0.249102> <-1.2912, 2.01655, -0.134279> <-1.54538, 1.94333, -0.404063> texture { pigment { color Green } } } Il ne devrait pas subsister de difficultés quant à la compréhension de ces six lignes. 39 Annexe A Le programme de modélisation A.1 Le fichier de données Voici le fichier qui nous a permis de tracer l’arbre. Ce fichier, que vous pouvez modifier, doit être donné en paramètre au programme, car il spécifie les caractéristiques des ramifications. Ce fichier au format texte comporte plusieurs séries de 4 nombres, chacune correspondant à une ramification. Voici les règles que doit suivre ce fichier : – Les commentaires, ignorés par le programme, débutent par le caractère # et se terminent à la fin de la ligne. – Le premier nombre indique la position de la branche et s’exprime en pourcentage. 0 % correspond à une ramification partant du bas de la branche parent et 100 % correspond à une ramification partant du haut de la branche parent. – Le deuxième paramètre appelé θ indique l’angle de la direction de la branche. Il s’exprime en degrés. 0◦ correspond au nord, 90◦ à l’est, 180◦ au sud et -90◦ à l’ouest. – Le troisième nombre φ exprime l’angle de la branche par rapport à la verticale. 0◦ correspond à une ramification verticale et 90◦ à une ramification horizontale. – Le dernier paramètre spécifie la taille de la ramification en pourcentage de la taille de la branche parent. Il y a cependant un petit bogue. Si φ > 180 [360] alors le deuxième paramètre doit être égal à −θ et le troisième à φ − 90. # descr.txt : # BUG ! : # si 0 <= theta <= 360 et theta > 180, 40 # theta = -theta et phi = phi - 90 99 -100 -41 60 86 133 63 60 99 91 79 60 # fin de descr.txt A.2 Lancement du programme Le programme est un programme en ligne de commandes. Ne vous attendez pas à voir une belle fenêtre avec l’arbre qui s’affiche instantanément à l’écran. Tout d’abord, il s’agit de copier le contenu du CD-ROM sur le disque dur. Pour lancer le programme, double-cliquer sur le fichier arbre.bat. L’arbre apparaı̂t alors à l’écran, si vous avez correctement installer Pov-Ray. Pour changer les paramètres d’exécution, tapez les commandes manuellement si vous connaissez bien les commandes MS-DOS ou bien éditez le fichier arbre.bat avec le bloc-notes. Voici le contenu par défaut du fichier arbre.bat : @echo off echo starting arbre.exe arbre.exe -s 9 descr.txt > log.pov echo rendering by POV-Ray (executable may be changed) C:\Progra~1\POV-Ray\bin\pvengine.exe +ilog.pov +w1024 +h768 echo done. Les lignes à modifier sont la 4e ligne pour changer les paramètres d’exécution du programme et la 7e ligne si vous n’avez pas installé Pov-Ray dans Program Files. Les paramètres d’exécution (facultatifs) sont : – -s SEED où SEED est un nombre qui permet d’initialiser le générateur de nombre aléatoire. Dans le fichier, arbre.bat, ce paramètre est égal à 9 mais vous pouvez le changer pour obtenir un arbre sensiblement différent. – -i ITER où ITER est le nombre d’itérations à effectuer. 41 Annexe B Contenu du CD-ROM Sur le CD-ROM figurent : – la version informatique de ce document sous plusieurs formats universellement reconnus (PDF et PostScript), prêts à être imprimés, – les programmes prêts à être utilisés, – le code source des programmes, – POV-Ray, le freeware permettant de tracer des objets trois diensions. 42 Bibliographie [1] Bernard Sapoval, L’universalité et les fractales, éd. Flammarion, 1997. [2] Benoı̂t Mandelbrot, Les objets fractals, éd. Flammarion, 1995. [3] Bernard Sapoval, L’universalité des fractales, Pour la science, octobre 2002. [4] Yuval Fisher, Fractal Image Compression. Theory and Application éd. Springer-Verlag, 2000. [5] Christian Grossetête et Pascal Olive, Mécanique newtonienne du point, éd. Ellipses, 1998. [6] http://raphaello.univ-fcomte.fr/These/Default.htm [7] http://www.cogs.susx.ac.uk/users/gabro/lsys/lsys.html 43