loadingPage en cours de chargement
    ACCUEIL | TÉLÉCHARGER | QCM | DON | ANNONCES | CHAT | FORUM | LIVRE D'OR | PARTENAIRES | CONTACT | BLOG
 
  Rechercher
  separation
  Introduction
  Arithmétique
  Algèbre
  Analyse
  Géométrie
  Mécanique
  Électrodynamique
  Atomistique
  Cosmologie
  Chimie
  Informatique Théorique
  Maths. Sociales
  Ingénierie
  separation
  Biographies
  Références
  Liens
  separation
  Humour
  Serveur d'exercices
  separation
  Parrains
9 connectés
News News :: Erreur Erreur :: Statistiques Visiteurs :: ClearType ClearType :: Imprimer Imprimer :: Bookmark and Share

Informatique Théorique

MÉTHODES NUMÉRIQUES | FRACTALES | SYSTÈMES LOGIQUES | CODES CORRECTEURS CRYPTOGRAPHIE | AUTOMATES | INFORMATIQUE QUANTIQUE

58. FRACTALES

Dernière mise à jour de ce chapitre: 2017-08-06 17:23:34 | {oUUID 1.790}
Version: 3.1 Révision 10 | Avancement: ~70%
viewsvues depuis le 2012-01-01: 6'304

Table des matières LISTE DES SUJETS TRAITÉS SUR CETTE PAGE

Les fractales sont des figures invariantes par changement d'échelle (nous parlons aussi de "structures autosimilaires") et sont la représentation graphique de suites récurrentes contractantes (pour les fractales IFS que nous verrons plus loin) ou non divergentes (pour les fractales à temps d'échappement que nous verrons aussi plus loin).

L'idée de base - simple et géniale... à la fois - consiste souvent à prendre un point de départ, de construire son image via une fonction mathématique donnée, de prendre l'image de l'image et ainsi de suite. Le but étant d'étudier comment se répartissent les points successifs dans l'ensemble global, s'ils s'approchent d'une limite ou s'ils errent entre diverses valeurs que nous pouvons expliciter, s'il y a plus de points dans telle partie de l'ensemble que dans telle autre?

L'intérêt de ce type de questions concerne aussi bien l'étude de l'évolution de populations biologiques que celle de l'avenir du système solaire, la 3D en informatique (l'origine étant la génération de montagnes pour des paysages 3D), les variations des cours de la bourse ou la génération de nombres aléatoires dans des domaines particuliers ou encore le domaine du diagnostic médical.


Figure: 58.1 - Génération de pseudo-reliefs à partir d'une fractale aléatoire (probabiliste)

Pour le commun des mortels, les fractales servent à faire joli. Mais elles ont des applications infiniment plus sérieuses: nous avons vu par exemple sur le présent site web que certaines de ces "séduisantes" images reproduisaient des phénomènes physiques (dynamique des populations pour la fractale de Feigenbaum, turbulences dans un fluide pour l'attracteur de Lorentz, dispositions des galaxies, L-Fractales, amas et superamas de galaxies,...). Les fractales ont également trouvé des applications en musique (avec des logiciels générant de la musique fractale) et dans le cinéma (3D). Enfin, dans le domaine de l'infographie, les fractales permettent de compresser très efficacement les images, avec une qualité constante quel que soit le zoom, elles permettent de créer des textures réalistes, et peuvent permettre de tramer une image avec de bons résultats. Les fractales sont aussi utilisées pour réduire la taille des antennes de réception et élargir leur spectre de fréquence utile (nos téléphones portables du début du 21ème siècle ont des récepteurs fractals de type "tapis de Sierpinski" - voir plus loin - à cause de tous les types de fréquences qu'ils doivent pouvoir gérer!). Dans le génie civil les fractales sont utilisées pour la construction de certains murs absorbeurs de son. Et bien d'autres choses encore...

Cette géométrie fractale se différencie de la géométrie euclidienne par sa définition d'une part: les figures de la géométrie euclidienne sont en général déterminées par des relations algébriques, alors que les courbes fractales sont définies de façon récursive comme nous l'avons déjà mentionné. Les fractales ont aussi des dimensions fractionnaires (nous avons déjà traité ce sujet dans le chapitre de Géométrie Euclidienne lors de la définition du concept de dimension). D'autre part, il ne faut pas non plus négliger leur aspect autosemblable: chaque partie d'une fractale peut être observée à n'importe quelle échelle: chaque partie est (sensiblement) une copie de l'ensemble.

Remarque: Les développements qui vont suivre auraient très bien pu être mis dans le chapitre de Suites Et Séries ou encore d'Analyse Fonctionnelle ou encore vus comme un cas particulier du chapitre de Topologie réduit à l'espace euclidien (raison pour laquelle vous y trouverez par ailleurs de nombreuses références). Notre choix se veut pédagogique au même titre que pour le chapitre de Cryptographie, dans le sens qu'il est beaucoup plus intéressant pour un étudiant d'une petite classe de voir une application des concepts abstraits de la topologie dans un cadre pratique (et par ailleurs esthétique) où ils sont absolument nécessaires à la bonne compréhension du sujet plutôt que dans un cadre où l'on peut très bien s'y soustraire sans avoir à trop en souffrir. Le lecteur retrouvera ici certains développements et théorèmes proposés ailleurs sur le site ceci dans le but de lui éviter d'avoir trop à "tourner les pages".

Les objets fractals naturels sont dits "objets non déterministes", car le processus dynamique qui permet leur création varie lui-même avec le temps de façon aléatoire (voir le chapitre de Dynamique Des Populations pour un excellent exemple). Nous pouvons néanmoins essayer de modéliser des systèmes dynamiques permettant d'aboutir à des objets fractals, sous une forme mathématique rigoureuse (c'est encore un bon exemple de la façon avec laquelle les mathématiciens arrivent à rendre un concept concret simple et intuitif en un modèle mathématique abstrait et un peu confus).

Dans le cadre de ce chapitre, nous envisagerons l'étude de deux familles de fractales qui seront dans l'ordre:

- Les fractales déterministes basées sur des fonctions itérées qui sont strictement autosimilaires. Elles sont générées, comme nous le verrons, par l'application récursive de fonctions contractantes sur des sous-ensembles d'un espace métrique. Le théorème du point fixe assurera (comme nous le verrons aussi!) l'existence et l'unicité d'un "sous-ensemble fixe" de l'espace métrique, vers lequel tout sous-ensemble converge.

- Les fractales à temps d'échappement (dites aussi fractales par récurrence) qui sont non strictement autosimilaires: Elles sont générées comme nous le verrons par des suites récurrentes non divergentes. Le théorème du point fixe servant de garantie pour la non-divergence de la fonction relativement aux points de départ choisis.

FRACTALES IFS

Commençons par étudier la première famille de fractales découverte par Michael Barnsley en 1987: les "systèmes de fonctions itérées déterministes" ou souvent appelées en anglais "deteministic iterated function systems" (IFS).

De toutes les figures fractales, seules celles construites au moyen de systèmes de fonctions itérées affichent habituellement la propriété d'autosimilitude, signifiant que leur complexité est invariante par changement d'échelle.

Commençons par "borner" la chose... :

Nous nous donnons un objet géométrique initial equation de l'espace E, une fonction f de E dans E telle que:

equation   (58.1)

(ce qui impose que l'objet initial ne pourra pas sortir de son propre domaine de définition via l'itération à travers la fonction f) et nous créons le système dynamique discret défini par:

 

equation   (58.2)

Sous certaines conditions que nous allons de suite voir, la suite d'objets géométriques equation "tend" vers une limite, qui est souvent un objet fractal (nous en verrons par ailleurs quelques exemples).

Naturellement, il existe un cadre mathématique rigoureux dans lequel les conditions évoquées et le verbe "tendre" ont une définition précise. En particulier, les objets equationsont tous des compacts de E, c'est-à-dire des sous-ensembles bornés (que nous pouvons inclure dans un segment si E est une droite, un disque si E est un plan ou une boule si E est l'espace à trois dimensions) et fermés (toute suite convergente de equation a sa limite dans E). Nous nous plaçons alors dans l'espace métrique des compacts, muni de la distance de Hausdorff (voir plus loin la définition), dont nous allons montrer qu'il est complet lorsqu'il s'agit de compacts du plan et de l'espace, et nous vérifierons que f est un "opérateur de Hutchinson", c'est à dire une application contractante de l'espace des compacts dans lui-même pour cette distance. Il ne restera alors plus qu'à appliquer le théorème du point fixe.

Des systèmes dynamiques de ce type sont dits déterministes, et donc appelés IFS (deteministic iterated function systems). Précisons que la limite de l'IFS s'appelle "l'attracteur de l'IFS". Nous pouvons montrer que sous les conditions évoquées plus haut, cet attracteur ne dépend pas de la forme de l'objet géométrique initial (nous verrons des exemples pratiques plus bas).

Dans un premier temps, nous limiterons notre étude à equation (le cas général étant donné dans le chapitre de Topologie du site) sachant de toute façon qu'une généralisation à l'espace euclidien de dimension deux ne nécessite pas un travail intellectuel trop grand et que l'ensemble des complexes y est isomorphe.

Définition: Pour nous permettre de définir les frontières de nos fonctions fractales considéronsequation. Nous disons que equation est le "supremum" de X et nous notons:

equation   (58.3)

si equation est le plus petit des "majorants" de X (un majorant de X est un nombre a qui vérifie equation).

De la même façon, nous disons que equation est "l'infimum" de X et nous notons:

equation   (58.4)

si equation est le plus grand des "minorants" de X (un minorant de X est un nombre a qui vérifie equation). Il existe des sous-ensembles de equation qui n'ont pas de supremum (respectivement d'infimum) par exemple equation ( respectivement equation).

Remarque: Nous utilisons souvent la caractérisation suivante du sup:

equation   (58.5)

si et seulement si:

equation   (58.6)

ce qui est évident car nous pouvons nous approcher aussi près que l'on veut de equation par des éléments de X (penser à equation petit). Pour information, nous avons alors aussi dans la même idée:

equation   (58.7)

si et seulement si:

equation   (58.8)

Nous considérerons comme intuitif que si equation est majoré, c'est-à-dire s'il existe equation tel que equation (respectivement minoré), alors X possède un supremum (respectivement un infimum).

Nous verrons plus tard que c'est cette propriété qui permettra de montrer que equation est un "espace métrique complet"!

Remarque: En passant, soulignons l'importance de prendre equation comme espace métrique de définition pour que cette propriété soit satisfaite. Nous pouvons effectivement remarquer qu'elle n'est pas vérifiée dans l'ensemble equation des nombres rationnels avec l'exemple simple suivant:

equation   (58.9)

qui est majoré mais n'a pas de supremum dans equation car ce supremum se situe dans equation puisque:

equation   (58.10)

donc:

equation   (58.11)

C'est ce qui fait que equation n'est pas "complet".

Définition: Nous disons que equation est "borné" si X est majoré et minoré.

De la définition suit immédiatement que X est borné si et seulement s'il existe equation avec equation tels que equation.

Maintenant que le concept de borne est relativement bien défini, voyons comment une suite peut s'y comporter:

Définition: Nous disons qu'une suite equationde equation est une "suite croissante" (respectivement "décroissante") si:

equation   (58.12)

respectivement:

equation)   (58.13)

Nous disons que la suite equation est "monotone" si elle est croissante ou décroissante comme nous l'avons déjà vu dans le chapitre de Suites Et Séries.

Définition: Soit equation un sous-ensemble infini de equation avec equation . Nous disons que la suite equation est une "sous-suite" de la suite equation.

Montrons maintenant que toute suite equation de equation admet une sous-suite monotone (c'est un peu l'idée de fractale!).

Démonstration:

Nous disons que equation est un "pic de la suite" si:

equation   (58.14)

Considérons l'ensemble P des pics de la suite equation.

- Si P est infini alors la sous-suite equation est monotone car décroissante.

- Si P est fini ou vide alors soit:

equation   (58.15)

(si equation nous choisissons equation quelconque). equation n'est donc par construction pas un pic, donc il existe equation tel que equation. À son tour equation n'est pas un pic, donc il existe equation tel que equation etc. Nous voyons que nous définissons ainsi une sous-suite croissante.

equationC.Q.F.D.

Définition: Nous disons que la suite equation "converge" vers equation et nous notons equation si:

equation   (58.16)

Nous disons dans ce cas que a est la "limite de la suite" equation.

Dans l'exemple de la figure ci-dessous où la suite semble converger vers 1.13 nous observons que pour un equation positif non nul particulier donné, il existe un n particulier que nous noterons N (valant 17) à partir duquel la suite converge.

equation
Figure: 58.2 - Illustration du principe de convergence d'une suite

S'il n'existe pas de a (respectivement de N) pour lequel la relation précédente est vraie, nous disons que la suite "diverge".

Démontrons maintenant que toute suite equationcroissante (resp. décroissante) et majorée (resp. minorée) converge.

En d'autres termes, nous cherchons à démontrer que toute suite equation monotone et bornée converge (forcément... par construction).

Remarque: Si elle ne convergeait pas, nous pourrions difficilement savoir quel est son minorant et son majorant... d'où le fait que la nécessité du théorème devient triviale.

Démonstration:

Ce théorème est au fait assez intuitif. Considérons pour cela une suite croissante. Nous nous doutons que:

equation   (58.17)

est la limite de cette suite. Remarquons tout d'abord que equation existe car equation est... majorée (cf. premier théorème).

Soit equation. Il existe un equation tel que equation. Mais dans ce cas vu que la suite est croissante , nous avons equation. C'est-à-dire equation. Dans le cas où la suite est décroissante en procédant de la même façon, nous montrons que equation est la limite de cette suite.

equationC.Q.F.D.

Et voici maintenant le résultat important à retenir suite à tout cela: Toute suite bornée de nombres réels possède une sous-suite convergente (c'est intuitif... mais encore une fois... formalisé cela devient parfois moins intuitif...).

C'est ce que les mathématiciens appellent le "théorème de Bolzano-Weierstrass" et il est extrêmement important dans de nombreux domaines des mathématiques:

Démonstration:

Soit equationune telle suite. Par une proposition précédente nous savons qu'il existe une sous-suite monotone que nous noterons equation. equation est donc une suite monotone et bornée et par le théorème précédent, equation converge.

Donc, si nous n'arrivons pas à déterminer si la sous-suite converge ni sa limite exacte (ce qui dans la pratique est souvent très difficile), il nous suffit de savoir que la sous-suite est monotone et bornée pour nous assurer qu'elle converge (ce qui est beaucoup plus simple).

equationC.Q.F.D.

Rappelons que nous avons vu dans le chapitre de Suites Et Séries qu'une suite de Cauchy, est une suite equation qui vérifie (nous nous restreignons à un rappel particulier sur une distance euclidienne):

equation   (58.18)

La différence entre deux termes d'une suite de Cauchy peut être rendue arbitrairement petite pourvu que les indices de ces termes soient assez grands.

Nous avions aussi démontré (à nouveau dans le chapitre de Suites Et Séries) que dans le cas d'une distance dans le sens topologique général toute suite convergente est une suite de Cauchy (par contre la réciproque est pas toujours vraie à condition qu'on ne complète pas l'ensemble... sinon la réciproque est toujours vraie). Par exemple, une suite de nombres rationnels qui converge vers un réel n'est pas une suite de Cauchy, excepté si on complète l'espace des rationnels pour avoir l'espace des réels.

Refaisons la démonstration restreinte à la distance euclidienne (la méthode est exactement la même comme le lecteur pourra le remarquer):

Démonstration:

Soit equation, nous devons montrer qu'il existe:

equation   (58.19)

Mais equation tend vers a donc il existe equation tel que equation. Pour equation nous avons donc:

equation   (58.20)

equationC.Q.F.D.

Montrons maintenant que toute suite de Cauchy est bornée (nous n'en avions pas parlé jusque-là où que ce soit sur le site d'où la nécessité d'une démonstration). Puisqu'actuellement nous avons juste démontré que toute sous-suite convergente est une suite de Cauchy...

Démonstration:

Si equation est une suite de Cauchy alors en particulier pour equation (choisi au hasard) nous savons qu'il existe equation tel que equation. Donc si nous fixons m, nous obtenons:

equation   (58.21)

equationC.Q.F.D.

Voici à présent le théorème fondamental (c'est à ce niveau qu'il y a un impact énorme sur la compréhension de ce qu'est réellement une fractale!) découlant des quelques lignes précédentes.

Nous devons démontrer que toute suite de Cauchy de nombres réels est convergente (par construction...). Nous disons alors que l'espace métrique equation muni de la distance euclidienne equation (valeur absolue) est un "espace complet".

Remarques:

R1. La propriété de complétude est liée à la métrique (donc ce théorème aurait tout aussi bien sa place dans le chapitre de Topologie!): un même espace peut être complet pour une distance et incomplet pour une autre. Il est donc important de toujours préciser la distance que l'on prend quand on parle d'espace complet.

R2. Intuitivement, un espace est complet s'il n'a pas de trous. L'ensemble des rationnels n'est par exemple complet que si on lui ajoute les nombres réels.

Considérons d'abord equation une suite de Cauchy. Nous avons vu que equation est bornée donc par le théorème de Bolzano-Weierstrass, il existe une sous-suite equation convergente. Notons a la limite de la sous-suite equation. Nous allons montrer maintenant que la suite equation est convergente de limite a.

Démonstration:

Soit equation, il existe equation tel que (application de la définition de la convergence pour une sous-suite):

equation   (58.22)

Pour ce même equation il existe equation tel que (application de la définition de la convergence pour une suite de Cauchy):

equation   (58.23)

Soit equation. Choisissons equation. Nous avons donc, equation et pour equation, equation. Donc par l'inégalité triangulaire (cf. chapitre de Calcul Vectoriel), pour tout equation:

equation   (58.24)

Ce qui veut justement dire que equation converge vers a.

equationC.Q.F.D.

Fondamentalement c'est un résultat intuitif mais à l'époque où les nombres réels n'étaient pas connus ou pas rigoureusement définis c'était une autre paire de manches. En réalité, il suffit de compléter tout ensemble par les nombres réels pour avoir un espace complet. Par ailleurs, certains mathématiciens définissent l'ensemble des réels en disant que c'est l'ensemble pour lequel toute suite de Cauchy converge.

Définition (intuitive): Un "point adhérent" est un point dont nous pouvons nous approcher autant que nous voulons à l'aide d'éléments d'un ensemble X donné (nous nous en approcherons par exemple avec une suite). Cependant, ce point adhérent peut aussi bien être à l'intérieur qu'à l'extérieur de X (tous les points à l'intérieur de X sont bien évidemment des points adhérents). Une bonne image est de voir une suite qui se rapproche de ce point adhérent et de définir des cercles autour de celui-ci qui deviennent de plus en plus petits contenant des éléments de la suite.

On peut imaginer comme exemple une suite définie par l'ensemble X des rationnels qui tend vers un irrationnel ou vers un nombre transcendant (ces deux points adhérents étant à l'extérieur de l'ensemble des rationnels). Donc dans ce cas, le point adhérent est extérieur à X (l'ensemble des rationnels). Par contre, tout point adhérent qui serait rationnel pour une suite de rationnels sera forcément... dans X.

Dès lors, vient la définition suivante:

Définition (formelle): Soit equation. Nous disons que equation est un "point adhérent" à X si pour toute boule B(x,r) de rayon r centrée en x nous avons:

equation   (58.25)

L'ensemble des points adhérents à X est "l'adhérence" de X et est noté equation. Nous avons évidemment (il suffit de se le conceptualiser de manière abstraite pour toutes les boules possibles) equation. Sans oublier qu'il faut penser en termes d'ensemble de nombres pour X...!

exempleExemple:

Prenons l'intervalle ]0,1] avec la boule B(0,1). L'intersection entre la boule et l'intervalle est non nulle, nous pouvons alors dire que 0 est adhérent! Mais maintenant prenons une suite 1/n par exemple, dans l'intervalle ]0,1]. Cette suite tend vers zéro mais pourtant 0 n'appartient pas l'intervalle. C'est donc bien un exemple qui montre que equation.

Nous pouvons faire dès lors la proposition suivante:

Montrons maintenant que equation est adhérent à X si et seulement si il existe une suite equation dans X qui converge vers x (attention, l'exemple précédent nous montre que x n'est pas nécessairement dans X).

Au fait, nous allons plutôt démontrer (si l'on peut appeler cela une démonstration...) que si nous choisissons un point adhérent x alors nous pouvons toujours trouver une suite equation dans X qui converge vers x.

Démonstration:

Si equation est adhérent à X alors considérons la suite des boules concentriques equation avec equation tel que:

equation   (58.26)

et alors il existe toujours des éléments equation qui satisfont:

equation   (58.27)

avec lesquels nous pouvons créer une suite par l'infinité des suites existantes.

equationC.Q.F.D.

Définition: Nous disons que equation est un "espace fermé" si equation.

Des propositions précédentes découle le fait que dans tout fermé F, une suite equation qui converge a sa limite dans F.

Nous considérerons comme trivial que si equation est une famille de fermés indexée sur un ensemble I quelconque. Alors equation est fermé.

Définition: equation est un "espace compact" si X est fermé et borné.

Le théorème suivant donne une caractérisation des compacts à partir des suites:

equation est compact si et seulement si toute suite equation de X possède une sous-suite qui converge dans X.

Démonstration:

Montrons que X est fermé:

Si X est compact et equation est une suite de X alors par le théorème de Bolzano-Weierstrass, equation possède une sous-suite convergente de limite equation. Mais puisque X est fermé, nous avons equation. Réciproquement, supposons que toute suite equation de X possède une sous-suite qui converge dans X. Alors X est fermé car si equation il existe une suite equation de X qui tend vers x. Par hypothèse, equation possède une sous-suite qui converge vers equation. equation étant convergente toute les sous-suites convergent vers la même valeur, donc equation (c'est pas beau ça ?!!). Ainsi equation c'est-à-dire X est fermé.

Montrons que X est borné:

Supposons le contraire. Il existe donc une suite equation de X telle que equation. Mais dans ce cas, aucune sous-suite de equation n'est convergente, ce qui est une contradiction. Donc X est borné. En conclusion, X est compact.

Une propriété des compacts est que si nous considérons equation une suite décroissante de compacts non vides, c'est-à-dire equation, alors equation est un compact non vide. Nous nous passerons de la démonstration qui est relativement triviale de par la définition du concept d'ensemble d'adhérence qui oblige qu'un compact soit par construction non vide... !

exempleExemple:

Nous obtenons l'ensemble C de Cantor de la manière suivante:

Nous commençons par considérer l'intervalle fermé borné equation de equation qui est donc un espace compact (ensemble borné et fermé). Nous partageons equation en trois parties égales et nous enlevons l'intervalle du milieu. Nous obtenons ainsi l'ensemble:

equation   (58.28)

qui peut être considéré aussi comme l'application d'une homothétie de facteur contractant 1/3 sur l'intervalle fermé borné de départ dont on translate le centre d'homothétie.

Nous recommençons avec les deux intervalles equation pour obtenir:

equation   (58.29)

réunion disjointe de quatre intervalles. Et ainsi de suite. Nous obtenons donc une suite décroissante equation de compacts. Nous définissons:

equation   (58.30)

Grâce à la proposition précédente, nous savons que C est non vide et qu'il est compact ce qui montre que les compacts ne sont pas tous "triviaux" comme des intervalles. L'ensemble de Cantor (car il avait joué avec en faisant le dessin comme ci-dessous en partant du bas) est un exemple de fractale (de compact):

equation
Figure: 58.3 - Ensemble de Cantor avec Maple 4.00b

qu'il est possible d'obtenir avec le code Maple 4.00b suivant (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code):

>with(plots):
line := proc(a:: list, b:: list)
local plotoptionen, n;
if nargs > 2 then
plotoptionen := seq(args[n], n=3 .. nargs)
else
plotoptionen := NULL
fi;
plot([a, b], style=line, plotoptionen);
end:
cree_segment := (a,b,h) -> line([a,h],[b,h],color=black):
f1:=x->x/3: f2:=x->(x+2)/3:

f := s -> s union map(f1, s) union map(f2, s):

sequence_de_segments := proc(l,h)
local accu, i;
accu := NULL;
for i to nops(l) by 2 do
accu := accu,cree_segment(l[i], l[i+1], h) od;
accu
end:

Cantor := proc(n) local s, i;
option remember;
s := sequence_de_segments([0,1], 1);
for i from 1 to n do
s := sequence_de_segments(sort([op((f@@i)({0,1}))]), (1-i/n)), s;
od;
display({s}union{seq(textplot([[0,(i+1/2)/n, '0'], [1, (i+1/2)/n, '1']]
), i=0 .. n)}, color=blue,axes=NONE,thickness=7)
end:

>Cantor(7);

Il est très intéressant de remarquer que l'on converge vers la fractale de Cantor (en termes de géométrie mais aussi de valeurs!) quel que soit le compact de départ choisi (l'intervalle fermé borné) et aussi... quel que soit le facteur contractant choisi!

Mandelbrot observa aussi ce type de structure autosimilaire lors de l'analyse de signaux transmis électriquement à l'époque par IBM sur des câbles de cuivre (IBM avait des problèmes de perte d'informations par transmission).

Regardons pour finir comment se comportent les compacts vis-à-vis des applications continues (nous en avons besoin pour montrer comment déterminer la distance d'un point à un ensemble ce qui nous sera indispensable après pour déterminer les propriétés de la distance de Hausdorff).

Nous rappelons (cf. chapitre d'Analyse Fonctionnelle) qu'une application equationequation est quelconque, est continue en un point equationsi:

equation   (58.31)

Ce qui traduit le fait que pour y assez proche de x, f(y) est arbitrairement proche de f(x). Nous disons aussi que f est continue sur X si elle est continue en tout point de X.

Proposition: Soit equation une application continue en equation et equation une suite de X avec:

equation   (58.32)

Alors la suite equation converge et (cette proposition est très importante!):

equation   (58.33)

En d'autres termes, si nous utilisons en tant qu'ensemble de départ les valeurs d'une suite convergente, alors la fonction qui prendra en entrée les valeurs de cette suite convergera elle aussi!

Démonstration:

Soit equation. f est continue en x, donc il existe equation tel que:

equation   (58.34)

equation tend vers x donc il existe equation tel que:

equation   (58.35)

Par suite pour equation, nous avons:

equation   (58.36)

equationC.Q.F.D.

Si nous considérons maintenant equation un compact et equation une application continue. f(X) est compact. En particulier sup( f ) et inf( f ) seront atteints par définition et construction d'un compact (ensemble borné et fermé) qui est égal à son adhérence.

Autrement dit, une fonction à valeurs réelles continue sur un compact y atteint toujours son supremum ou son infimum.

Démonstration:

- Montrons que f(X) est fermé: En effet, soit equation une suite qui tend vers equation (nous prenons l'adhérence au fait pour espérer montrer qu'elle est égale à l'ensemble lui-même) alors X étant compact, equation possède une sous-suite equationconvergente.

Posons:

equation   (58.37)

f est continue, donc:

equation   (58.38)

Mais comme:

equation   (58.39)

nous avons equation. Ceci prouve que:

equation   (58.40)

et donc que f(X) est fermé.

- Montrons que f(X) est borné: Supposons le contraire. Il existe donc une suite equation telle que:

equation   (58.41)

pour tout n entier naturel (puisque justement il est supposé non borné). Soit equation une sous-suite convergente de equation avec:

equation   (58.42)

Alors:

equation   (58.43)

et par suite:

equation   (58.44)

mais ceci est en contradiction avec:

equation   (58.45)

Donc f(X) est borné. Donc f(X) étant fermé et borné il est compact.

equationC.Q.F.D.

Appliquons maintenant cela (car c'est ce qui nous intéresse dans le cadre des espaces fractals) au calcul de la distance d'un point à un ensemble:

Soit equation, l'application equation définie par f(y)=d(x, y) est continue.

Démonstration:

Pour tout equation, l'inégalité triangulaire nous donne:

equation   (58.46)

En changeant les rôles de y, z nous obtenons:

equation   (58.47)

et donc:

equation   (58.48)

Ainsi pour equation donné equation implique:

equation   (58.49)

c'est-à-dire:

equation   (58.50)

et f est donc continue en y.

equationC.Q.F.D.

Définition: Pour equation et equation nous définissons la distance de x à A comme étant la valeur:

equation   (58.51)

Si equation alors equation (trivial). La réciproque n'est pas vraie. En effet dans le cas equation nous avons bien equation mais equation. Nous avons donc la proposition (importante!):

equation   (58.52)

Démonstration:

equation entraîne l'existence d'une suite equation d'éléments de A telle que:

equation   (58.53)

ce qui veut dire:

equation   (58.54)

donc equation (voir développements plus hauts).

Réciproquement, si equation alors pour tout equation il existe equation tel que equation. Mais equation. Ainsi pour tout equation, equation. C'est-à-dire:

equation   (58.55)

equationC.Q.F.D.

En général la distance de x à A n'est pas atteinte. C'est-à-dire qu'il n'existe pas de equation tel que equation il suffit pour cela de considérer l'exemple equation nous avons equation mais pour tout equation, equation. Si A est compact, la situation est bien évidemment différente selon la proposition (la plus importante pour la distance de Hausdorff) suivante:

Si equation est compact, il existe equation tel que equation. Ainsi:

equation   (58.56)

Démonstration:

L'application equation définie par equation est continue comme déjà montré. Par conséquent f(A) est compact (cf. une proposition précédente). Ainsi, f atteint ses bornes, c'est-à-dire, il existe equation tel que f(a)=inf( f(A) ). Donc:

equation   (58.57)

equationC.Q.F.D.

Remarque: La proposition précédente ne dit pas que a est unique, d'ailleurs en général, il en existe plusieurs.

ESPACE MÉTRIQUE DES FRACTALES

Les fractales sont souvent perçues par les gens comme de jolis dessins sur une feuille, mais lorsque nous voulons regarder en détail la géométrie fractale, nous avons besoin d'un espace particulier où l'étudier, un peu comme le biologiste qui met des petits vers sur une plaquette pour les observer en détail au microscope. Nous allons faire de même pour nos fractales en les plaçant dans un endroit qu'ils apprécient.

Cet endroit a de fortes chances d'être un sous-espace de equation ou equation, puisqu'en fin de compte il s'agira de produire des dessins, et pour illustrer nos propos nous nous placerons souvent dans le cas equation (avec la métrique euclidienne) et sauf mention du contraire, nous considérerons toujours le cas où equation est un espace métrique complet.

Rassemblons différents éléments afin de pouvoir construire cet espace:

Définition: Nous définissons equation comme l'espace dont les points sont les sous-ensembles compacts de X, autres que l'ensemble. Désormais nous appellerons "fractale" n'importe quel élément de equation.

exempleExemple:

Il est immédiat que si equation, alors equation, mais equation n'est pas forcément dans equation. Il suffit de voir la figure avec les deux ensembles compacts (fermés, bornés donc) ci-dessous de equation. Ce sont donc deux points de equation. Leur réunion est encore un ensemble compact, et donc:

equation   (58.58)

Par contre, si les ensembles sont disjoints (comme ici), equation et par conséquent n'est pas un point de equation (voir la théorie précédente).

equation
Figure: 58.4 - Source: IFS et L-Système, V. Rezzonico, C. Hebeisen

Un autre exemple consiste à prendre la fractale de Cantor...

Définition: Soit equation et equation, nous définissons la distance d'un point x à l'ensemble B, et nous la notons d(x,B) comme étant:

equation   (58.59)

Remarques:

R1. Cette définition est tout à fait générale et s'applique à n'importe quel sous-ensemble non vide de X, en remplaçant min par inf. Mais dans le cas particulier, nous sommes intéressés à prendre précisément equation comme sous-espace.

R2. Cette distance est bien définie (elle existe) du fait que B est non vide et compact.

R3. Il est trivial de voir que si cette distance est nulle, alors equation.

exempleExemple:

Illustration dans le cas où equation:

equation
Figure: 58.5 - Source: IFS et L-Système, V. Rezzonico, C. Hebeisen

Définition: Soient equation. Nous définissons la distance de A à B et nous la notons equation comme étant:

equation   (58.60)

Remarques:

R1. Comme avant, cette définition a un sens, et en particulier il existe deux points equation tels que equation.

R2. Nous constatons que cette distance ne fournit pas de métrique equation: en effet, equation en général (prendre par exemple la fractale de Cantor où pour certains compacts nous avons equation avec equation, nous aurons alors d(A,B)=0 mais equation).

Définition: Soient equation. Nous définissons la "distance de Hausdorff" entre deux ensembles equation, et nous la notons equation, comme étant:

equation   (58.61)

Cette fois-ci, de par cette dernière définition, nous avons bien une métrique sur equation.

En effet, vérifions que les 5 propriétés d'une distance soient vérifiées (cf. chapitre de Topologie):

Soient equation. Clairement nous avons sans démonstration (symétrie, nullité sur la diagonale et séparation):

equation   (58.62)

De plus, comme A et B sont compacts, equation (cf. une des propositions précédentes) pour un certain equation et un certain equation. Or, puisque equation par définition nous avons (propriété de positivité) finalement equation tel que equation:

equation   (58.63)

puisque B est fermé.

Enfin, puisque equation (cf. extension d'une des propositions précédentes), l'inégalité triangulaire est alors forcément respectée et alors:

equation   (58.64)

Donc h est bien une métrique sur equation, ce qui fait de equation un espace métrique. C'est déjà un premier pas dans la direction souhaitée: nous avons désormais les moyens de comparer deux ensembles appartenant à equation par la distance de Hausdorff qui les sépare. Si les deux ne sont pas "trop différents", alors intuitivement cette distance devrait être assez petite.

Si nous choisissons une fonction equation strictement contractante de constante equation. Alors, l'application:

equation   (58.65)

définie par

equation   (58.66)

est par construction aussi strictement contractante de constante equation.

Soit equation, equation des applications strictement contractantes de constantes de contraction, equation. Alors,  il existe un unique compact equation tel que:

equation   (58.67)

(A est l'unique point fixe de equation) et pour tout compact B, on a:

equation   (58.68)

equation est le m-ième itéré de B par equation.

Ce résultat découle du théorème du point fixe (cf. chapitre Suites Et Séries) appliqué à l'espace equation qui est complet.

Avec les mêmes notations, nous disons dit que equation est un codage IFS (Iterated Function Systems) du compact A. Ainsi les fonctions equation définissent le compact A. Ce qui est surprenant, comme nous allons le voir dans les quelques exemples qui suivent, c'est que les equation sont généralement assez simples (comme des homothéties du plan) tandis que le compact A est dans bien des cas relativement "compliqué".

Le cas equation est sans intérêt, on aurait equation où x est le point fixe de equation. Avec equation nous obtenons déjà des résultats non triviaux.

Remarque: Lorsque les fonctions itératives contractantes sont toutes des homothéties, nous parlons alors de "fractale de Sierpinski". Ainsi, la fractale de Cantor appartient à la famille des fractales de Sierpinski.

Une méthode fréquemment utilisée pour générer informatiquement des fractales IFS (comme ce sera le cas ci-dessous avec Maple 4.00b) est de considérer un point dans le plan equation auquel nous pouvons sans autre forme de procès appliquer une transformation affine pour obtenir un nouveau point equation tel que:

equation   (58.69)

a, b, c, d, e et f sont des constantes quelconques, et equation est donné.

Nous pouvons dès lors considérer une application W qui décrit notre transformation, et sous forme matricielle nous pouvons écrire le système précédent comme suit:

equation   (58.70)

ou encore:

equation   (58.71)

De façon tout à faire générale, le vecteur equation décrit simplement une translation, et la matrice A est la composition de rotations et d'un changement d'échelle (cf. chapitre de Géométrie Euclidienne). Les programmes informatiques (comme ce sera le cas dans les exemples plus bas), ne demandent donc souvent que les six paramètres a, b, c, d, e et f.

FRACTALE DE CANTOR

Revoyons la fractale de Cantor vue plus haut mais cette fois-ci avec le point de vue de l'application de deux fonctions itératives contractantes equation (donc correspondant à k=2).

Nous partons donc de l'ensemble borné fermé suivant:

[[0,1]]   (58.72)

soit:

equation
Figure: 58.6 - Ensemble de départ de la fractale de Cantor

Nous partageons donc en trois parties égales et nous enlevons l'intervalle du milieu. Nous obtenons ainsi l'ensemble:

[[0,1/3],[2/3,1]]   (58.73)

Soit:

equation
Figure: 58.7 - Première itération de la fractale de Cantor

 

Nous pouvons constater que [0,1/3] peut être obtenu par l'homothétie de facteur 1/3 centrée en (0,0) suivante:

equation   (58.74)

et que [2/3,1] peut être obtenu par l'homothétie de facteur 1/3 centrée en (1,0) suivante:

equation   (58.75)

et ainsi de suite, nous obtenons comme nous le savons déjà (voir code Maple 4.00b déjà donné plus haut):

equation
Figure: 58.8 - Attracteur de Cantor après 6 itérations

Ce qui correspond en reprenant le formalisme vu plus haut à:

equation   (58.76)

Mais voyons que cela marche avec n'importe quel compact de l'ensemble des réels comme un carré par exemple avec le code Maple 4.00b suivant (nous montrerons toujours tous les détails de Maple 4.00b, car rien ne dit que les lecteurs le possèdent ni que le logiciel existera toujours dans 50 ans...).

Attention!!! Si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code.

>transforme_point := proc(t, p)
     [t[1]*p[1]+t[2]*p[2]+t[5], t[3]*p[1]+t[4]*p[2]+t[6]]
  end:

>IFSS := proc(n, liste_de_transformations,col)
     local i, j, k, s, seq_square:
     seq_square :=[[0,0],[1,0],[1,1],[0,1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transform_square(liste_de_transformations[i],
        op(k, [seq_square])),
        k=1 .. nops([seq_square]))
      od;
      seq_square := s
    od;
    plots[polygonplot]([seq_square], axes=none, color=col, scaling=constrained)
  end:

>cantor:=[[evalf(1/3),0,0,evalf(1/3),0,0],[evalf(1/3),0,0,evalf(1/3),evalf(2/3),0]]:

>IFSS(1, cantor,blue);

equation
Figure: 58.9 - Première itération sur l'ensemble de Cantor avec des carrés

>IFSS(2, cantor,blue);

equation
Figure: 58.10 - Deuxième itération sur l'ensemble de Cantor avec des carrés

>IFSS(3, cantor,blue);

equation
Figure: 58.11 - Troisième itération sur l'ensemble de Cantor avec des carrés

etc.

Donc, quel que soit l'ensemble de départ, la suite de compacts obtenue par application successive de ces deux homothéties du plan converge toujours (au sens de la distance de Hausdorff) vers le même compact/attracteur (assimilé au point fixe du théorème du point fixe...) appelée fractale de Cantor (appartenant donc à la famille des fractales de Serpienski). La dernière figure ci-dessus est une bonne approximation de cet ensemble.

FRACTALE DU TRIANGLE (TAMIS) DE SIERPINSKI

Pour construire la fractale de Sierpinski (que l'on retrouve comme curiosité sur le coquillage Cymbiola innexa REEVE), basée sur trois fonctions itératives contractantes equation (donc correspondant à k=3), nous partons par exemple des trois points de equation suivants:

[[0, 0], [1, 0], [0.5, 1]]   (58.77)

Ce qui donne avec Maple 4.00b:

>plots[polygonplot]( [[0, 0], [1, 0], [0.5, 1]],axes=none,color=black, scaling=constrained);

equation
Figure: 58.12 - Ensemble de départ du triangle de Sierpinski

c'est un triangle, mais nous pourrions partir de n'importe quelle forme et nous arriverions toujours au même résultat que nous allons voir plus loin.

Nous appliquons sur chaque ensemble une fonction contractante de facteur 0.5, ce qui donne le triangle:

[[0,0],[0.5,0],[0.25,0.5]]   (58.78)

et nous noterons cette homothétie de facteur 0.5 et de centre (0,0) sur le triangle d'origine:

equation   (58.79)

Nous effectuons maintenant sur ce triangle une translation de 0.5 dans la direction de l'axe des X, ce qui donne le triangle:

[[0.5,0], [1,0], [0.75,0.5]]   (58.80)

ce qui correspond à une homothétie de facteur 0.5 et de centre (1,0)  sur le triangle d'origine:

equation   (58.81)

Nous translatons maintenant [[0,0],[0.5,0],[0.25,0.5]]  de 0.25 selon l'axe de X et de 0.5 selon l'axe des Y pour avoir:

[[0.25,0.5], [0.75,0.5], [0.5, 1]]   (58.82)

ce qui correspond à une homothétie de facteur 0.5 et de centre (0.5,0.75) sur le triangle d'origine:

equation   (58.83)

Avec Maple 4.00b cela donne maintenant pour les trois triangles:

>plots[polygonplot]([[[0,0],[0.5,0],[0.25,0.5]],[[0.5,0],[1,0],[.75,0.5]],[[0.25,0.5],[0.75,0.5]
,[0.5,1]]], axes=none,color=black, scaling=constrained);

equation
Figure: 58.13 - Première itération du triangle de Sierpinski

et ainsi de suite:

equation
Figure: 58.14 - Deuxième itération du triangle de Sierpinski

et ainsi de suite:

equation
Figure: 58.15 - Troisième itération du triangle de Sierpinski

et ainsi de suite:

equation
Figure: 58.16 - Quatrième itération du triangle de Sierpinski

et ainsi de suite:

equation
Figure: 58.17 - Cinquième itération du triangle de Sierpinski

etc.

Ce qui correspond en reprenant le formalisme vu plus haut:

equation   (58.84)

Nous pouvons faire la même remarque que lorsque nous avions présenté la fractale de Cantor la toute première fois: quel que soit l'ensemble de départ, la suite de compacts obtenue par application successive de ces trois homothéties converge toujours (au sens de la distance de Hausdorff) vers le même compact/attracteur (assimilé au point fixe du théorème du point fixe...) appelé triangle Serpienski. La dernière figure ci-dessus est une bonne approximation de cet ensemble.

Voyons cela avec un code Maple 4.00b (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code).

> transforme_triangle := proc(t, triangle)
     local i;
     [seq(transforme_point(t, triangle[i]), i=1 .. 3)]
  end:

>IFS := proc(n, liste_de_transformations,col)
     local i, j, k, s, sequence_de_triangles:
     options `Copyright by Alain Schauber, 1996`;
     sequence_de_triangles := [[0, 0], [1, 0], [0.5, 1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transforme_triangle(liste_de_transformations[i],
        op(k, [sequence_de_triangles])),
        k=1 .. nops([sequence_de_triangles]))
       od;
      sequence_de_triangles := s
     od;
    plots[polygonplot]([sequence_de_triangles], axes=none, color=col, scaling=constrained)
  end:

>triangle_de_Sierpinski:=[[0.5,0,0,0.5,0,0],[0.5,0,0,0.5,0.5,0],[0.5,0,0,0.5,0.25,0.5]]:

>IFS(6, triangle_de_Sierpinski,blue);

equation
Figure: 58.18 - Attracteur du triangle de Sierpinski

Et cette fois-ci nous partons non plus d'un triangle, mais d'un carré (IFS Square) avec le code Maple 4.00b suivant:

>transform_square := proc(t, square)
     local i;
     [seq(transforme_point(t, square[i]), i=1 .. 4)]
  end:

>IFSS := proc(n, liste_de_transformations,col)
     local i, j, k, s, seq_square:
     seq_square :=[[0,0],[1,0],[1,1],[0,1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transform_square(liste_de_transformations[i],
        op(k, [seq_square])),
        k=1 .. nops([seq_square]))
      od;
      seq_square := s 
    od;
    plots[polygonplot]([seq_square], axes=none, color=col, scaling=constrained)
  end:

>triangle_de_Sierpinski:=[[0.5,0,0,0.5,0,0],[0.5,0,0,0.5,0.5,0],[0.5,0,0,0.5,0.25,0.5]]:

>IFSS(1, triangle_de_Sierpinski,green);

equation
Figure: 58.19 - Première itération du triangle de Sierpinski avec des carrés

>IFSS(2, triangle_de_Sierpinski,green);

equation
Figure: 58.20 - Deuxième itération du triangle de Sierpinski avec des carrés

> IFSS(3, triangle_de_Sierpinski,green);

equation
Figure: 58.21 - Troisième itération du triangle de Sierpinski avec des carrés

etc. jusqu'à:

> IFSS(6, triangle_de_Sierpinski,green);

equation
Figure: 58.22 - Attracteur du triangle de Sierpinski avec des carrés

Basiquement, le triangle de Sierpinski peut bien évidemment être aussi vu comme un triangle auquel on enlève le triangle du milieu et où pour chacun des triangles restants, on recommence la procédure!

FRACTALE DU TAPIS DE SIERPINSKI

Le tapis de Sierpinski est l'attracteur de 8 fonctions itératives contractantes d'homothéties de rapport 1/3 centrées aux sommets et aux milieux des côtés d'un carré dans lequel peut se trouver n'importe quelle forme géométrique.

Cette fois-ci, dans equation nous considérons les huit homothéties (h):

equation   (58.85)

et nous partons par exemple des quatre points de equation suivants:

[[0, 0], [1, 0], [1, 1], [0, 1]]   (58.86)

ce qui correspond à un carré plein (mais nous pourrions choisir n'importe quoi d'autre!):

equation
Figure: 58.23 - Ensemble de départ du tapis de Sierpinski

Après l'application des huit fonctions d'homothéties (nous laissons le soin au lecteur de faire manuellement les calculs comme nous les avons déjà détaillés pour le triangle), nous obtenons la forme suivante composée de huit carrés:

equation
Figure: 58.24 - Deuxième itération du tapis de Sierpinski

et en réappliquant les huit homothéties encore une fois (heureusement qu'il y a l'ordinateur...):

equation
Figure: 58.25 - Troisième itération du tapis de Sierpinski

et encore une fois:

equation
Figure: 58.26 - Quatrième itération du tapis de Sierpinski

etc.

Le point fixe obtenu (attracteur) s'appelle donc cette fois-ci "tapis de Sierpinski" et c'est la forme qu'à l'antenne réceptrice de la majorité de nos téléphones portables en ce début de 21ème siècle.

Les figures précédentes peuvent être obtenues successivement avec le code Maple 4.00b suivant (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code):

>transforme_point := proc(t, p)
      [t[1]*p[1]+t[2]*p[2]+t[5], t[3]*p[1]+t[4]*p[2]+t[6]]
end:

transform_square := proc(t, square)
      local i;
      [seq(transforme_point(t, square[i]), i=1 .. 4)]
end:

>IFSS := proc(n, liste_de_transformations,col)
      local i, j, k, s, seq_square:
      seq_square :=[[0,0],[1,0],[1,1],[0,1]];
      for j to n do
      s := NULL;
      for i to nops(liste_de_transformations) do
         s := s,
         seq(transform_square(liste_de_transformations[i],
         op(k, [seq_square])),
         k=1 .. nops([seq_square]))
       od;
       seq_square := s 
     od;
     plots[polygonplot]([seq_square], axes=none, color=col, scaling=constrained)
   end:

> dywan:= [[evalf(1/3),0,0,evalf(1/3),0,0],[evalf(1/3),0,0,evalf(1/3),evalf(1/3),0],
[evalf(1/3),0,0,evalf(1/3),evalf(2/3),0], [evalf(1/3),0,0,evalf(1/3),0,evalf(2/3)],
[evalf(1/3),0,0,evalf(1/3),evalf(1/3),evalf(2/3)], [evalf(1/3),0,0,evalf(1/3),evalf(2/3),evalf(2/3)],
[evalf(1/3),0,0,evalf(1/3),0,evalf(1/3)],[evalf(1/3),0,0,evalf(1/3),evalf(2/3),evalf(1/3)]]:

> IFSS(0, dywan, blue);

equation
Figure: 58.27 - Ensemble de départ du tapis de Sierpinski

> IFSS(1, dywan, blue);

equation
Figure: 58.28 - Première itération du tapis de Sierpinski

> IFSS(2, dywan, blue);

equation
Figure: 58.29 - Deuxième itération du tapis de Sierpinski

> IFSS(3, dywan, blue);

equation
Figure: 58.30 - Troisième itération du tapis de Sierpinski

> IFSS(4, dywan, blue);

equation
Figure: 58.31 - Quatrième itération du tapis de Sierpinski

FRACTALE SPIRALE

Nous avons vu deux fractales de la famille des fractales de Sierpinski basées donc uniquement sur des homothéties contractantes. Voyons maintenant une fractale qui combine rotation et homothétie contractantes.

Dans  equation nous considérons les deux applications d'homothéties (h) de rotations (R) suivantes:

equation   (58.87)

Avec un triangle et toujours avec Maple 4.00b, cela nous donne (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code):

>transforme_triangle := proc(t, triangle)
     local i;
     [seq(transforme_point(t, triangle[i]), i=1 .. 3)]
  end:

>IFS := proc(n, liste_de_transformations,col)
     local i, j, k, s, sequence_de_triangles:
     options `Copyright by Alain Schauber, 1996`;
     sequence_de_triangles := [[0, 0], [1, 0], [0.5, 1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transforme_triangle(liste_de_transformations[i],
        op(k, [sequence_de_triangles])),
        k=1 .. nops([sequence_de_triangles]))
       od;
      sequence_de_triangles := s
     od;
    plots[polygonplot]([sequence_de_triangles], axes=none, color=col, scaling=constrained)
  end:

>a:=evalf(5*Pi/6);b:=evalf(Pi/6);
> c1x:=0.25;c1y:=0.5;c2x:=0.5;c2y:=0.5;
>h1:=0.2;h2:=0.95;
>spirale:=[[h1*cos(a),-h1*sin(a),h1*sin(a),h1*cos(a),(1-h1*cos(a))*c1x+h1*sin(a)*c1y,
-h1*sin(a)*c1x+(1-h1*cos(a))*c1y],[h2*cos(b),-h2*sin(b),h2*sin(b),h2*cos(b),
(1-h2*cos(b))*c2x+h2*sin(b)*c2y,-h2*sin(b)*c2x+(1-h2*cos(b))*c2y]]:

>IFS(1,spirale,blue);

equation
Figure: 58.32 - Première itération de la fractale spirale

et encore et comme la convergence est très longue, nous allons faire par pas de 5 itérations.

>IFS(6,spirale,blue);

 

equation
Figure: 58.33 - Deuxième itération de la fractale spirale

>IFS(11,spirale,blue);

equation
Figure: 58.34 - Troisième itération de la fractale spirale

>IFS(16,spirale,blue);

Nous obtenons après plusieurs centaines d'itérations le point fixe suivant:

equation
Figure: 58.35 - Attracteur de la fractale spirale

FRACTALE DE VON KOCH

Toujours, dans les fractales obtenues par homothéties (h) et rotations (R) contractantes mais auxquelles nous rajoutons en plus une translation (T), la courbe de Von Koch est une fractale assez connue, elle peut être obtenue par les applications suivantes:

equation   (58.88)

Donnons directement le résultat avec Maple 4.00b (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code):

>koch := proc(p:: numeric)
     local m, n, k, l, s, h, x, y, pts, t, i;
     h := 3^(-p);
     pts := table([]): # [0, 0];
     pts[0]:=[0,0];
     x := 0; y := 0;
     for n from 0 to (4^p) do
        m := n;
        s := 0;
        for l from 0 to p-1 do
           t := irem(m, 4);
           m := iquo(m, 4);
           s := s+irem((t+1), 3) - 1
        od;  # end of for l
        x := evalhf(x+cos(Pi*s/3)*h);
        y := evalhf(y+sin(Pi*s/3)*h);
        pts[n+1] := [x, y];
     od;
    [seq(pts[i], i=0 .. n-1)];
  end:

> plot(koch(0), scaling=constrained, style=LINE, axes=NONE, color=blue,thickness=2);

equation
Figure: 58.36 - Ensemble de départ de la fractale de Von Koch

> plot(koch(1), scaling=constrained, style=LINE, axes=NONE, color=blue,thickness=2);

equation
Figure: 58.37 - Première itération de la fractale de Von Koch

> plot(koch(2), scaling=constrained, style=LINE, axes=NONE, color=blue,thickness=2);

equation
Figure: 58.38 - Deuxième itération de la fractale de Von Koch

> plot(koch(3), scaling=constrained, style=LINE, axes=NONE, color=blue,thickness=2);

equation
Figure: 58.39 - Troisième itération de la fractale de Von Koch

etc. etc. Jusqu'à obtenir l'attracteur suivant:

equation
Figure: 58.40 -Attracteur de la fractale de Von Koch

Ce qui est aussi dérangeant avec la fractale de Von Koch c'est que nous partons d'une ligne de longueur finie, pour arriver à la fin à une ligne de longueur infinie si nous réitérons la structure à l'infini. Pourtant visuellement elle est finie... c'est une courbe "pathologique" comme disent parfois les mathématiciens dans le domaine.

Effectivement, la première intuition conduit à penser que le périmètre de cette figure tend vers une valeur limite finie, puisqu'on ajoute des détails de plus en plus petits au fur et à mesure des itérations successives. En réalité, à la première itération la longueur L de chaque côté est remplacée par 4 segments de longueur L/3 ; À la deuxième, elle devient 16 L/9... À chaque itération la longueur est donc multipliée par 4/3, ce qui signifie que (contrairement à l'intuition première) la longueur d'une courbe de Koch tend vers l'infini pour un nombre d'itérations infini (série géométrique de raison 4/3). Et, pourtant, cette courbe ne déborde à aucun moment des limites constituées à l'extérieur par le cercle circonscrit au triangle initial, et à l'intérieur par le cercle inscrit dans ce triangle! En d'autres termes une surface de dimension finie est limitée par une frontière de longueur infinie.

Cette courbe de Koch est légendaire, car elle a servi à Mandelbrot à écrire un article concernant le problème de mesure de la longueur des côtes des littoraux de mer (car plus l'unité de mesure de base prise était petite, plus le périmètre du littoral était grand). Il proposa de considérer les littoraux comme des fractales dont il est impossible de mesurer le périmètre mais bien "l'arborescence fractale", soit en d'autres termes: la dimension fractale.

Lorsque nous accolons trois courbes de Koch aux sommets d'un triangle équilatéral, nous obtenons une élégante figure à symétrie hexagonale dénommée flocon de Koch (ou Île de Koch):

Description : flocon1Description : flocon2
Description : flocon3Description : flocon4
Figure: 58.41 - Exemples de l'île de Koch

FRACTALES NATURELLES

Outre l'aspect purement mathématique des fractales, on peut via des méthodes heuristiques trouver les applications contractantes pour des fractales similaires aux formes que nous pouvons retrouver dans la nature. Voyons quelques exemples toujours avec Maple 4.00b en prenant d'abord pour base commune de toutes les fractales qui vont suivre, les procédures suivantes (si le copier/coller de la page web dans Maple 4.00b ne marche pas, réécrivez simplement le code).

>transforme_point := proc(t, p)
     [t[1]*p[1]+t[2]*p[2]+t[5], t[3]*p[1]+t[4]*p[2]+t[6]]
  end:

transforme_triangle := proc(t, triangle)
     local i;
     [seq(transforme_point(t, triangle[i]), i=1 .. 3)]
  end:

  transform_square := proc(t, square)
     local i;
     [seq(transforme_point(t, square[i]), i=1 .. 4)]
  end:

>IFS := proc(n, liste_de_transformations,col)
     local i, j, k, s, sequence_de_triangles:
     options `Copyright by Alain Schauber, 1996`;
     sequence_de_triangles := [[0, 0], [1, 0], [0.5, 1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transforme_triangle(liste_de_transformations[i],
        op(k, [sequence_de_triangles])),
        k=1 .. nops([sequence_de_triangles]))
       od;
      sequence_de_triangles := s
     od;
    plots[polygonplot]([sequence_de_triangles], axes=none, color=col, scaling=constrained)
  end:

> IFSS := proc(n, liste_de_transformations,col)
     local i, j, k, s, seq_square:
     seq_square :=[[0,0],[1,0],[1,1],[0,1]];
     for j to n do
     s := NULL;
     for i to nops(liste_de_transformations) do
        s := s,
        seq(transform_square(liste_de_transformations[i],
        op(k, [seq_square])),
        k=1 .. nops([seq_square]))
      od;
      seq_square := s 
    od;
   plots[polygonplot]([seq_square], axes=none, color=col, scaling=constrained)
  end:

RAMEAU

On part de:

>rameau:=[[.387,.430,.430,-.387,.2560,.5220], [.441,-.091,-.009,-.322,.4219,.5059],
[-.468,.020,-.113,.015,.4,.4]]:

Et on obtient:

> IFSS(0,rameau,green);

equation
Figure: 58.42 - Ensemble de départ de la fractale du rameau

> IFSS(1,rameau,green);

equation
Figure: 58.43 - Première itération pour la fractale du rameau

> IFSS(2,rameau,green);

equation
Figure: 58.44 - Deuxième itération pour la fractale du rameau

> IFSS(3,rameau,green);

equation
Figure: 58.45 - Troisième itération pour la fractale du rameau

> IFSS(4,rameau,green);

equation
Figure: 58.46 - Quatrième itération pour la fractale du rameau

> IFSS(5,rameau,green);

equation
Figure: 58.47 - Cinquième itération pour la fractale du rameau

> IFSS(6,rameau,green);

equation
Figure: 58.48 - Sixième itération pour la fractale du rameau

FLOCON DE NEIGE

On part de:

> cristal:=[[.255,0,0,.255,.3726,.6714],[.255,0,0,.255,.1146,.2232],
[.255,0,0,.255,.6306,.2232],[.37,-.642,.642,.37,.6356,-.0061]]:

Et on obtient:

> IFSS(0, cristal,green);

equation
Figure: 58.49 - Ensemble de départ pour le flocon de neige

> IFSS(1, cristal,green);

 

equation
Figure: 58.50 - Première itération pour la fractale du flocon de neige

>IFSS(2, cristal,green);

equation
Figure: 58.51 - Deuxième itération pour la fractale du flocon de neige

>IFSS(3,cristal,green);

equation
Figure: 58.52 - Troisième itération pour la fractale du flocon de neige

>IFSS(4,cristal,blue);

equation
Figure: 58.53 - Quatrième itération pour la fractale du flocon de neige

>IFSS(5,cristal,blue);

equation
Figure: 58.54 - Cinquième itération pour la fractale du flocon de neige

>IFSS(6,cristal,blue);

equation
Figure: 58.55 - Sixième itération pour la fractale du flocon de neige

>IFSS(7,cristal,blue);

equation
Figure: 58.56 - Septième itération pour la fractale du flocon de neige

ARBRE

On part de:

> tree := [[-0.04, 0, -0.23, -0.65, -0.08, 0.26], [0.61, 0, 0, 0.31, 0.07, 2.5],
[0.65, 0.29, -0.3, 0.48, 0.54, 0.39], [0.64, -0.3, 0.16, 0.56, -0.56, 0.4]]:

> IFS(0, tree, green);

equation
Figure: 58.57 - Ensemble de départ pour la fractale de l'arbre

> IFS(1, tree, green);

equation
Figure: 58.58 - Première itération la fractale de l'arbre

> IFS(2, tree, green);

equation
Figure: 58.59 - Deuxième itération pour la fractale de l'arbre

> IFS(3, tree, green);

equation
Figure: 58.60 - Troisième itération pour la fractale de l'arbre

> IFS(4, tree, green);

equation
Figure: 58.61 - Quatrième itération pour la fractale de l'arbre

> IFS(5, tree, green);

equation
Figure: 58.62 - Cinquième itération pour la fractale de l'arbre

FOUGÈRE

On part de:

> fougere:=[[0,0,0,0.16,0,0],[0.2,-0.26,0.23,0.22,0,1.6],[-0.15,0.28,0.26,0.24,0,0.44]
,[0.85,0.04,-0.04,0.85,0,1.6]]:

> IFS(0, fougere, blue);

equation
Figure: 58.63 - Ensemble de départ pour la fractale de la fougère

> IFS(1, fougere, blue);

equation
Figure: 58.64 - Première itération pour la fractale de la fougère

> IFS(2, fougere, blue);

equation
Figure: 58.65 - Deuxième itération pour la fractale de la fougère

> IFS(3, fougere, blue);

equation
Figure: 58.66 - Troisième itération pour la fractale de la fougère

> IFS(4, fougere, blue);

equation
Figure: 58.67 - Quatrième itération pour la fractale de la fougère

> IFS(5, fougere, blue);

equation
Figure: 58.68 - Cinquième itération pour la fractale de la fougère

> IFS(6, fougere, blue);

equation
Figure: 58.69 - Sixième itération pour la fractale de la fougère

> IFS(7, fougere, blue);

equation
Figure: 58.70 - Septième itération pour la fractale de la fougère

etc. Jusqu'à obtenir:

equation
Figure: 58.71 - Attracteur de la fractale de la fougère

et nous allons nous arrêter ici car les exemples sont non dénombrables...

FRACTALES à TEMPS D'ÉCHAPPEMENT

Plusieurs méthodes ont donc été proposées pour construire des images fractales comme nous l'avons mentionné tout au début de ce chapitre. Nous allons donc maintenant nous intéresser aux méthodes dites "méthodes d'échappement".

Pour cela, on se place dans le plan complexe formé des points M de coordonnées (x, y) d'affixe:

equation    (58.89)

i représente le nombre complexe tel que:

equation   (58.90)

On considère une suite complexe définie par:

equation   (58.91) 

et:

equation   (58.92)

f étant une fonction continue complexe. On suppose que f a un point fixe equation, c'est-à-dire qu'il existe equation tel que:

equation    (58.93)

Il s'agit donc simplement de l'application du théorème du point fixe déjà mentionné plusieurs fois jusqu'ici. Sous certaines conditions sur f et sur equation, on constate que la suite des points ne diverge pas (ce qui veut dire qu'on ne s'intéresse pas qu'aux points qui convergent mais à tous ceux qui ne divergent pas!). Cette méthode est à la base de la construction des ensembles de Mandelbrot et de Julia.

Construire une image fractale à partir d'un ensemble de suites ainsi définies, revient à étudier pour chaque couple (x, y) du plan le comportement de la suite. On associe alors une couleur à chaque suite (c'est-à-dire à chaque couple (x, y)) représentant la "rapidité" de divergence de la suite.

Pour étudier la convergence d'une suite, on regarde ses n premiers éléments, si on détecte que les conditions de divergence sont vérifiées alors on peut dire que cette suite diverge, sinon, cette suite est potentiellement convergente. On remarque que plus n est grand, plus les résultats seront précis (mais plus le temps de calcul sera grand).

L'algorithme de base est le suivant:

Fractal=proc(x,y)

            z:= valeur de z0;
            j:=nombre max itérations

            Tant que condition_de_divergence non vérifiée(z) et j non atteint faire
                        z:=formule_iteration(z)
                        changer de couleur;
            Fin Tant que
            Renvoyer couleur finale

Fin Fractal

ENSEMBLE DE MANDELBROT

On construit l'ensemble de Mandelbrot grâce à des itérations dans le plan complexe (nous parlons alors de "dynamique holomorphe"). La fonction est de la forme:

equation   (58.94)

c est un paramètre constant tel que equation. Le premier terme de la suite est nul. On a donc la suite U définie par:

equation et equation   (58.95)

Pourquoi commence-t-on avec equation?: Car zéro est le point critique de equation, c'est-à-dire le point qui satisfait à l'extremum:

equation   (58.96)

Pour chaque point d'affixe x+iy du plan, on étudie la suite U pour equation. Si la suite diverge, on dit que le point testé n'appartient pas à l'ensemble M, si la suite converge, on dit que le point appartient à M.

Pour reproduire l'ensemble de Mandelbrot, on associe à c des valeurs du plan complexe. On considère généralement la portion du plan complexe ayant comme partie réelle, les valeurs entre -2.5 et 1.5 et comme partie imaginaire, les valeurs entre -1.5 et 1.5. Cette portion du plan complexe est subdivisée de façon à former une grille dont les éléments seront associés à des valeurs de c. Pour chaque valeur de c, on obtient une suite dont les modules peuvent converger ou diverger.

En pratique, on considère que la suite des modules converge si les 30 premiers modules sont inférieurs à 2. Lorsque la suite des modules converge, on colorie en noir le point de la grille. Après avoir considéré tous les points de la grille, on obtient un ensemble de points noircis: "l'ensemble de Mandelbrot" noté M. Ce qui constitue un résultat remarquablement curieux!

equation
Figure: 58.72 - Ensemble de Mandelbrot

La liste des equation générés par l'itération s'appelle "l'orbite" de equation. Pour c = 0 par exemple la suite est alors:

equation   (58.97)

et cette suite converge seulement pour les valeurs de z qui contenus dans un disque centré en zéro et de rayon égal ou inférieur à l'unité. Donc l'ensemble de Mandelbrot contient entre autres le disque unitaire par définition.

On peut colorier les points à l'extérieur de l'ensemble de Mandelbrot en utilisant des couleurs qui dépendent du nombre de termes calculés avant d'obtenir un module supérieur ou égal à 2. Les points d'une même couleur peuvent être interprétés comme étant des points s'éloignant à la même vitesse de l'ensemble de Mandelbrot.

On peut aussi faire une incursion dans l'ensemble de Mandelbrot en utilisant Maple 4.00b (disponible habituellement au collège). Il suffit de copier le programme ci-dessous sur une feuille de travail du logiciel et d'indiquer à la place de -2 .. 1, -1.5 .. 1.5 de la dernière ligne, l'étendue des parties réelles et imaginaires de c que l'on désire visualiser:

>restart: with(plots):
>couleur:=proc(a,b)
local x,y,xi,yi,n;
x:=a;
y:=b;
for n from 0 to 30 while evalf(x^2+y^2) < 4 do;
   xi:=evalf(x^2-y^2+a);
   yi:=evalf(2*x*y+b);
   x:=xi;
   y:=yi;
od;
n
end:

>plot3d(0,-2..1,-1.5..1.5,orientation=[-90,0],style=patchnogrid, scaling=constrained,axes=framed,numpoints=20000,color=couleur);

Vous obtiendrez dès lors le résultat ci-dessous:

equation
Figure: 58.73 - Ensemble (fractale) de Mandelbrot avec Maple 4.00b

Pour information, le domaine de l'analyse complexe qui étudie des systèmes dynamiques s'intéressant principalement à l'étude d'itérations d'applications holomorphes (cf. chapitre d'Analyse Complexe) se nomme la "dynamique holomorphe".

Remarques:

R1. L'ensemble de Mandelbrot est auto-similaire dans le voisinage de points dits "points de Misiurewicz":

equation

R2. Il paraît qu'on peut démontrer (je cherche la démonstration...) que la fractale de Mandelbrot peut être mise en correspondance avec le diagramme de bifurcation que nous avons étudié dans le chapitre de Dynamique Des Populations tel que:

equation

ENSEMBLES DE JULIA

L'ensemble de Julia se construit presque de la même façon que l'ensemble de Mandelbrot (puisque l'ensemble de Julia en est en fait un sous-ensemble!). Dans l'ensemble de Mandelbrot, c balaye le plan. Pour l'ensemble de Julia, c est fixé pendant tout le calcul de l'image. À chaque c correspond donc un ensemble particulier que l'on notera J(c) et qui est donc "l'ensemble de Julia". Ce qui varie, c'est equation, qui prend la valeur du point à tester. C'est donc equation qui balaie le plan.

Le point A de coordonnées (x, y) et d'affixe x + iy  appartient à J(c) si et seulement si la suite définie par:

equation et equation   (58.98)

converge.

En fait, l'ensemble de Mandelbrot est l'ensemble des points c tels que l'ensemble de Julia de paramètre c soit connexe (donc l'ensemble de Mandelbrot généralise tous les ensembles de Julia!!!). Donc la figure de l'ensemble de Mandelbrot contient les figures de tous les ensembles de Julia, ce qui est remarquable (mais aussi logique...!):

Si à nouveau nous développons l'algorithme, nous obtenons à un facteur d'échelle près donné, la fractale représentée ci-dessous (obtenue grâce au petit programme Maple 4.00b modifié utilisé pour la fractale de Mandelbrot):

restart; with(plots):
julia:= proc(c,x, y)local z, m;
z:= evalf(x+y*I);
for m from 0 to 30 while abs(z) < 3 do
   z:= z^2 + c
   od;
   m
end:

J:= proc(d)
global phonyvar;
phonyvar:= d;
(x, y) -> julia(phonyvar, x, y)
end:

plot3d(0, -2 .. 2, -1.3 ..1.3, style=patchnogrid,orientation=[-90,0], grid=[270, 270],scaling=constrained, color=J(-1.25));

equation
Figure: 58.74 - Ensemble de Julia (fractale) avec Maple 4.00b

et pour montrer que l'ensemble de Mandelbrot contient tous les ensembles de Julia:


Figure: 58.75 - Illustration de la paternité... de l'ensemble de Mandelbrot

Nous devons donc pouvoir écrire un unique algorithme (voir plus bas) qui permette d'obtenir tous les ensmbles de Julia en choisissant simplement bien le point de départ comme le montre les figures ci-dessous:







et ainsi de suite...

Obtenu donc avec l'algorithme Maple 4.00b suivant:

couleur:=proc(a,b)
local x,y,xi,yi,n;
global reel,imaginaire;
x:=a;
y:=b;
for n from 0 to 100 while evalf(x^2+y^2)<4 do;
xi:=evalf(x^2-y^2+reel);
yi:=evalf(2*x*y+imaginaire);
x:=xi;
y:=yi;
od;
n;
end:

reel:=-0.181;
imaginaire:=-0.667;

plot3d(0,(-13/10)..(13/10),(-13/10)..(13/10),orientation=[-90,0], style=patchnogrid,scaling=constrained,axes=framed,numpoints=20000,color=couleur);

ENSEMBLES DE NEWTON

Les ensembles de Newton sont ainsi appelés car ils découlent de la résolution du problème de la recherche des zéros d'une fonction par la méthode de Newton.

Soit une fonction f à valeur dans equation, et dérivable dans equation, on prend equation dans equation tel que:

equation   (58.99)

Il y a alors deux manières de procéder:

1. Soit nous nous intéressons à equation et alors nous faisons comme précédemment

2. Soit nous nous demandons vers quel zéro equation la suite converge et nous nous intéressons à equation

Si à nouveau nous développons l'algorithme, nous obtenons à un facteur d'échelle près donné, la fractale représentée ci-dessous obtenue à nouveau avec Maple 4.00b:

restart:
newton:= proc(x, y)
local z, m;
z:= evalf(x+y*I);
for m from 0 to 50 while abs(z^3-1) >= 0.001 do
z:= z - (z^3-1)/(3*z^2)
od;
m
end:

plot3d(0, -2 .. 2, -1.5 .. 1.5, orientation=[-90,0],grid=[250, 250], style=patchnogrid, scaling=constrained,color=newton);

equation
Figure: 58.76 - Ensemble de Newton (fractale) avec Maple 4.00b


Haut de page

MÉTHODES NUMÉRIQUES (2/2)SYSTÈMES LOGIQUES


Like6   Dislike0
66.96% sur 100%
Notée par 23 visiteur(s)
12345
Commentaires: [0] 
 
 


W3C - HTMLW3C - CSS Firefox
Ce travail est dans le domaine public
2002-2017 Sciences.ch

Haut de page