L'effet papillon

Georget Sébastien

29 avril 2000


Table des matières

Présentation

Juste un mot d'histoire

L'expression "effet papillon" a été la première fois utilisée par Edward Lorenz. Celui ci l'employa pour décrire un phénomène connu en mathématiques sous le nom de sensibilité aux conditions initiales. Phénomène qu'il mit en évidence grâce au système d'équations différentielles suivant :

\begin{displaymath}\left \{ \begin{array}{ccc}
\dot{X} &=& -\sigma(X-Y) \\
...
... &=& r.X-Y-X.Z \\
\dot{Z} &=& b.(X.Y-Z) \end{array} \right. \end{displaymath}

Système qu'il obtint en simplifiant à l'extrème un modèle de convection thermique. Celui-ci a pour particularité d'être non linéaire et c'est ce qui le rend impossible à résoudre par les méthodes usuelles.

But de ce T.I.P.E.

Nous allons ici nous intéresser à un système plus simple que celui de Lorenz, mais qui présente cependant des comportements semblables du eux-mêmes à des non-linéarités du système. Il s'agit de la suite logistique.
Comme le système différentiel présenté plus haut, cette suite est issue d'une modélisation d'un phnomène naturel : l'évolution des effectifs d'une population de type proies-prédateurs dan un système clot.
Plus précisemment, le modèle conduit à une équation différentielle que l'on peut par des méthodes de discrétisation ramener à une suite récurrente.

Nous allons procéder à l'étude de cette suite en suivant son évolution d'un comportement simple (la convergence) vers un comportement plus complexe (le chaos) en passant par un état intermédiaire (la périodicité).

Premiers pas

Cadre d'étude

Dans cette section, nous allons définir ce qu'est la suite logistique puis nous verrons une méthode pratique permettant de la construire et de l'étudier.

La suite logistique

La suite logistique est définie ainsi :

\begin{displaymath}
\left \{
\begin{array}{ccc}
u_0 &\in& [0;1]\\
u_{n+1} &=& f(u_n)
\end{array}
\right.
\end{displaymath}

où la fonction $f$ est une fonction paramétrée définie de la manière suivante :

\begin{displaymath}f \left \{ \begin{array}{ccc}
\mathbb{R}&\rightarrow& \mathbb{R}\\
x &\mapsto& a\. x\. (1-x)
\end{array} \right. \end{displaymath}

On prendra par la suite $a \in [0;4]$ de manière à ce que l'intervalle $[0;1]$ soit stable par $f$.

Représentation en toile d'araignée

Pour visualiser une telle suite il existe une représentation utile que l'on appelle la représentation en toile d'araignée. Nous allons voir avec un exemple comment elle fonctionne.
\includegraphics[]{img/web_ex.ps}

Puisque $u_{n+1}$ est déterminé à partir de $u_n$, on trace la droite d'équation $y=x$, puis à chaque itération, on reporte la valeurde $u_n$ sur cette droite et on en recherche l'image par $f$.

Diagramme de bifurcation

Sur l'exemple précédent, nous avons vu que la suite convergeait vers un point fixe. On peut se demander si se comportement est valable pour toutes les valeurs de $a \in [0;4]$. Pour voir rapidement ce qu'il en est nous allons utiliser le diagramme de bifurcation.

Principe

Comme nous voulons étudier le comportement de la suite en fonction de $a$, on va essayer de représenter son comportement au voisinage de l'infini en fonction de $a$. On met donc en place un graphique à deux dimensions, où figureront en abscisses les valeurs de $a$ et en ordonnées les valeurs de la suite au voisinage de l'infini.

On supposera en fait que le comportement de la suite se stabilise très vite. Ce qui nous permettra d'étudier la suite à partir d'un rang $n_0$ accessible aux capacités de l'ordinateur. Ensuite nous représenterons les éléments de la suites pour $n$ variant de $n_0$ à $n_1$, en prenant $n_1$ suffisament grand pour qu'on soit quasiment sur du comportement de la suite, mais pas trop grand afin de conservé des temps de calcul raisonnables.

Mise en \oeuvre

Ici, nous avons choisi $n_0=40$ et $n_1=100$.
Nous obtenons grâce à la procédure bifurc (voir page [*]), le diagramme de bifurcation suivant, aussi appelé diagramme de FeigenBaum.
\includegraphics[]{img/bifurc0.ps}

On peut tout de suite voir que la suite ne présente pas toujours un comportement aussi simple que celui que nous avons vu précédemment. En effet, il semble qu'il existe des valeurs de $a$ à partir desquelles le diagramme se divise en deux. Ce qui se traduit au niveau de la suite par l'apparition de cycles.

Bifurcations

Tout d'abord, nous allons nous limiter à l'étude de la première bifurcation. C'est à dire que nous allons chercher pour quelle valeur de $a$ la suite ne converge plus. Mais pour cela, nous devons essayer de comprendre pourquoi la convergence disparaît, c'est ce que nous allons voir.

Explications

En fait, la représentation en toile d'araignée va nous permettre de comprendre ce qui se passe.
Etudions localement comment se comporte la suite dans le domaine de convergence (par exemple $a=2.5$) et dans le domaine où elle ne converge plus (par exemple $a=3.2$). Rerprésentons en plus sur les schémas la tangente au point d'intersection $I$ entre la courbe représentative de $f$ et la première bissectrice du repère.
$a=2.5$ $a=2.5$
\includegraphics[]{img/web25.ps} \includegraphics[]{img/web25z.ps}
   
$a=3.2$ $a=3.2$
\includegraphics[]{img/web32.ps} \includegraphics[]{img/web32z.ps}
Graphiquement, on comprend bien pourquoi la suite va cesser de converger.
En effet, tant que le coefficient directeur de la tangente en $I$ est supérieur à $-1$, localement chaque itéré se rapproche du point fixe. Dans ce cas, le point fixe est un point attractif (ou stable). Mais dès qu'il est inférieur à $-1$, les itérés auront tendance à s'en écarter. On dit alors que le point devient répulsif (ou instable).
Pour trouver la valeur de $a$ à partir de laquelle la suite ne converge plus, il faut donc trouver quand le coefficient de la tangente au point fixe passe par $-1$.

Application

Nous devons donc, dans un premier temps, résoudre l'équation $f(x)=x$ afin de déterminer le point fixe. On obient $x_0=1-\frac{1}{a}$.
Il nous faut ensuite déterminer la dérivée en ce point : $f'(x_0)=2-a$.
On trouve donc que la suite cesse de converger lorsque $a>3$, ce qu'on pouvait deviner sur le graphique.

On pourrait poursuive et déterminer ainsi les points de bifurcation suivants. Cependant les calculs deviennent rapidement très lourds, puisque pour déterminer le point de $n\ieme$ bifurcation, il faut résoudre l'équation $f^n(x)=x$, c'est à dire un polynôme de degré $2n$. On n'obtiendra donc que des valeurs approchées.

A titre d'exemple voici les deux points de bifurcation suivants.

\begin{displaymath}\left \{ \begin{array}{ccc}
\displaystyle x_{01} &=& \frac{...
...02} &=& \frac{a+1-\sqrt{a^2-2.a-3}}{2.a}
\end{array} \right. \end{displaymath}

Cet exemple, laisse supposer que pour chaque nouvelle branche définie, la bifurcation suivante aura lieu en même temps que sur les autres branches.

On tourne en rond

Quelques notions

Nous allons commencer par définir mathématiquement un cycle, puis nous verrons un théorème important pour l'étude de la suite logistique.

n-cycle

On définit un n-cycle ou cycle d'ordre n de la manière suivant :

\begin{displaymath}\sigma = \left \{ x_0, f(x_0), f^2(x_0), \ldots , f^n(x_0) \right \}\end{displaymath}

avec :

\begin{displaymath}
\left \{
\begin{array}{ccc}
f^p(x) &\neq x,& $ si p$\ ...
...1] \\
f^p(x) &= x,& $ si $\ n = p
\end{array}
\right.
\end{displaymath}

L'ordre du chaos

A partir du diagramme de Feigenbaum, on peut penser que les cycles vont apparaîtres dans l'ordre des puissances de $2$.
C'est effectivement le cas, mais grâce à un mathématicien russe : A.N. Sharkovski, on sait depuis 1964 que ce ne sont pas les seuls. Il a même démontré dans quels ordre apparaîssent les cycles. C'est ce que nous allons voir maintenant.

\begin{displaymath}\begin{array}{lllllll}
3 &\prec 5& \prec 7& \prec 9& \prec ...
... 32& \prec 16& \prec 8& \prec 4& \prec 2& \prec 1
\end{array}\end{displaymath}

La relation $\prec $ est une relation d'ordre sur $\mathbb{N}$. Et ce que Sharkowski a démontré c'est que si une suite contient un cycle d'ordre $m$, alors $\forall n \in \mathbb{N}, m\prec n \Rightarrow$ la suite contient une cycle d'ordre $n$.
Un corollaire immédiat indique donc que si une suite possède un cycle d'ordre $3$, alors elle présente des cycles de tout ordre.
De plus les cycles apparaîssent dans le sens inverse de la flèche, c'est à dire que l'on verra d'abord apparaître des cycles d'ordre $1$, puis d'ordre $2$, puis d'ordre $4$ $\ldots$

Intérêt des cycles

Lorsqu'il n'est plus possible d'atteindre une système stable, il est parfois possible d'obtenir des systèmes oscillants ou périodiques. Dans ce cas même si on ne conserve pas un état constant, on passe cependant par des états parfaitements connus dans leur enchaînement et dans leur constitution.
Ce sont donc des situations intéressantes dans le cas d'applications concrètes (comme un système mécanique) qui peuvent motiver la recherche de cycles.

Cependant l'ensemble des cycles peut être diviser en deux :

En fait, la différence entre un cycle stable et un cycle instable est semblable à celle qu'il existe entre un point fixe stable et un point fixe instabble : le coefficient directeur de la tangente.
On remarquera que d'un point de vue physique, ou plus généralement dans le cas où l'on cherche à connaître l'état d'un système donnée à longs termes, ce sont les cycles stables les plus intéressants.

Recherche d'un 4-cycle

Nous allons voir deux méthodes utilisées pour la recherche d'un $4$-cycle.

Recherche graphique

On cherche tout d'abord les points fixes de la fonction $f^4$, c'est à dire les points d'intersections entre la courbe représentative de $f^4(x)$ et la droite d'équation $y=x$.
\includegraphics[]{img/f4.ps}
Ensuite, on élimine les solutions qui correspondent à des cycles d'ordre inférieur.
\includegraphics[]{img/f1234.ps}
Il nous reste alors $4$ solutions qui correspondent aux valeurs que prend le cycle.

Recherche analytique

On doit trouver les racines d'un polynôme de degré $8$, MAPPLE nous renvoie les 8 valeurs réelles suivantes.

\begin{displaymath}\begin{array}{\vert c @= c\vert c @= c\vert}
\hline
x_1 &...
...4 & 0,8925735924 & x_8 & 0,8696284406\\
\hline
\end{array}\end{displaymath}

Il faut en suite vérifier que les valeurs appartiennent bien à un 4-cycle. Il reste alors les valeurs : $x_1, x_2, x_3, x_4$.
Si on trace le graphique en prenant pour $u_0$ l'une quelconque de ces valeurs, on obtient le graphe suivant.
\includegraphics[]{img/cycle4.ps}

Le chaos

Définitions

Comme beaucoup de mot le chaos mathématique n'a pas le même sens que le chaos quotidien, voyons donc sa définition. Mais commençons par introduire les termes sur lesquelles celle-ci s'appuie.

Sensibilité aux conditions initiales

D'un point de vue mathématique on dit que $f$ montre une dépendance sensible aux conditions initiales lorsque :

\begin{displaymath}\exists \delta > 0, \forall x \in D, \forall \epsilon >0, \ex...
...rt\vert f^p(x) - f^p(y)\vert\vert > \delta \end{array} \right. \end{displaymath}

C'est ce que Lorenz à traduit par : "un battement d'aile de papillon au Brésil peut entraîner une tornade au Texas."

Notion topologique

On dit que $f$ est topologiquement transitive lorsque :

Chaos

Une fonction est f définie sur une partie D d'un espace vectoriel normé est dite chaotique lorsque :

Pour $k=4$, la suite logistique répond à toutes ces conditions donc elle est chotique au sens mathématique du terme.

Illustrations

Nous allons ici présenter un exemple qui montre comment se manifeste l'effet papillon. Puis nous verrons quels problèmes il peut poser dans les calculs scientifiques.

Sensibilité aux conditions initiales

On va étudier à l'aide d'un exmple précis une manifestation de l'effet papillon.
On prend deux valeurs de $u_0$ proches, par exemple $0,1$ et $0,1+10^{-39}$ puis on étudie les comportements des deux suites ainsi définies (en prenant bien soin d'effectuer les calculs avec une précision d'au moins 40 décimales). Pour cela, on va représenter $(v_n)$ en fonction de $(u_n)$. Tant que les deux suites coïncideront, les points appartiendront à la première bissectrice du repère. C'est ce que l'on constate sur la première figure.
\includegraphics[]{img/pap1.ps}
Mais dès que l'on augmente le nombre d'itérations, on obtient quelquechose de semblable à la figure suivante, ce qui montre bien que les deux suites ont des comportements totalement différents.
\includegraphics[]{img/pap2.ps}

Approximations dangereuses

La manifestation de l'effet papillon dans les calculs scientifiques apparaît de deux manières.
Tout d'abord, un système peut être imprédictible de par sa nature même, par exemple lorsqu'il est chaotique, comme c'est le cas pour la suite logistique lorsque $a=4$.
Mais un autre facteur intervient. En effet, les ordinateurs effectuent leurs calculs en précision finie, ils introduisent donc une erreur en troncant les décimales des nombres. Ce qui, comme nous l'avons vu, peut totalement fausser les résultats.
Nous allons illustrer ce phénomène avec un exemple simple.

On étudie toujours la suite logistique, avec le même système de représentation que précédemment, mais cette fois-ci on prend $v_{n+1}=4\. v_n\. (1-v_n)$ et $u_{n+1}=4\. u_n - 4\. u_n^2$ et $u_0=v_0=0,3$. D'un point de vue formel, les deux suites sont identiques, mais prenons deux cas précis.
Dans un premier temps, on prend $u_0=0,3$ et on fait effectuer les calculs à MAPPLE avec une précision de $90$ décimales sur $300$ itérations. On obtient le graphique suivant :

\includegraphics[]{img/papfg1.ps}
Il suffit cependant d'abaisser le nombre de décimales à $89$ pour voir apparaître le graphique suivant :
\includegraphics[]{img/papfg2.ps}
Ce qui traduit bien l'importance du nombre de décimales pour effectuer les calculs. Encore une fois les deux suites ont un comportement différent. Mais cette fois-ci ce n'est pas du à un problème théorique, mais à un problème pratique.

Calculateurs

L'exemple précédent est important en météorologie, et plus généralement dans tous les domaines de la modélisations qui font appel à de nombreux algorithmes récursifs.
Comme nous l'avons vu, pour effectuer des calculs valables à long terme, il faut donc effectuer les opérations avec un grand nombre de décimales. Mais comme les modèles physiques s'appuient en plus sur un grand nombre de variables, il faut alors utiliser des calculateurs surpuissants.
Ainsi, parmi les $20$ plus puissants calculateurs mondiaux, on en retrouve $5$ dédiés aux prévisions météorologiques, et $7$ pour les laboratoires de modélisation.

Conclusion

A travers de TIPE, nous avons mis en évidence le fait que même un système déterministe très simple peut être à l'origine de phénomènes relativement complexes.

Ici, nous avons étudié la suite logistique qui semble être un cas isolé. Mais il existe tout un ensemble de systèmes qui présentent le même comportement.
Il est donc intéressant de comprendre son fonctionnement pour pouvoir décrire des phénomènes plus compliqués.

En effet, aujourd'hui, on en retrouve des applications plus ou moins directe dans différents domaines :
en physique : météorologie,
en biologie : étude des formes du vivant,
en sociologie : évolution des populations,
en économie : modélisation des fluctuations boursières,
en graphisme : fractales.

Bibliographie

Hasard et chaos, David Ruelle : Editions Odiles Jacob

Chaos et déterminisme, Dalmedico, Chabert, Chemla : Editions du Seuil

Dieu joue-t-il aux dés ?, Ian Stewart : Editions Flammarion

Science&Vie Junior : Les indispensables : Equations du second degré

Tangente : N° 64-65

Tangente : Hors-Série : Systèmes dynamiques

Procédures

Toutes les procédures présentées ont été réalisées sous MAPPLE .
A chaque fois elles servent à étudier une suite de type :

\begin{displaymath}
\left \{
\begin{array}{ccc}
u_0 &\in& [0;1]\\
u_{n+1} &=& f(u_n)
\end{array}
\right.
\end{displaymath}

Diagramme de bifurcation

Principe

Comme nous voulons étudier le comportement de la suite en fonction de $a$, on va essayer de représenter son comportement au voisinage de l'infini en fonction de $a$. On met donc en place un graphique à deux dimensions, où figureront en abscisses les valeurs de $a$ et en ordonnées les valeurs de la suite au voisinage de l'infini.

Arguments de la procédures

Procédure :

		bifurc:=proc(Amin,Amax,p,Nmin,Nmax);
		M:=NULL;
		g:=x->(x*(1-x));
		for a from Amin to Amax by p do
		   L:=NULL;
		   t:=0.4;
		   for k from 1 to Nmin do t:=a*evalf(g(t)) od;
		   for k from Nmin to Nmax do
		       L:=L,[a,t];
		       t:=evalf(a*g(t));
		   od;
		   M:=M,plot([L],x=Amin..Amax,style=point,symbol=point);
		od;
		display([M]);
		end:

Représentation en toile d'araignée

Principe

Il s'agit de réprésenter la fonction $f$ qui définit la suite, ainsi que la droite d'équation $y=x$, puis de montrer comment se définit $u_{n+1}$ en fonction de $u_n$.

Arguments de la procédure

Procédure :

		suite:=proc(f,n,u0);
		L:=[u0,0];
		t:=u0;
		for k from 1 to n do
		   L:=L,[t,t],[t,f(t)];
		   t:=f(t);
		od;
		plot([x,f(x),[L]],x=0..1,color=[black,red,blue]);
		end:

Sensibilité aux conditions initiales

Principe

On cherche ici à illustrer le phénomène de sensibilité aux conditions initiales. On prend donc deux suites ne différant que par leur terme initial. Puis on représente les itérés de l'une en fonction des itérés de l'autre.

Arguments de la procédure

Procédure

		pap:=proc(f,u0,v0,n);
		L:=[u0,v0];
		x:=u0;
		y:=v0;
		for k from 1 to n do
		   x:=f(x);
		   y:=f(y);
		   L:=L,[x,y];
		od;
		plot([L],style=point);
	end:

Erreurs d'arrondis

Principe

On utilise le même système de représentation que dans le cas précédent pour illustrer les erreurs d'arrondi que peut commettre l'ordinateur. Ici le terme initial est le même pour les deux suites, mais c'est l'expression de $f$ qui diffère, on prendra par exemple $f$ factorisée puis développée.

Arguments de la procédure

Procédure

		pap2:=proc(f,g,u0,n);
		L:=[u0,u0];
		x:=u0;
		y:=u0;
		for k from 1 to n do
		   x:=f(x);
		   y:=g(y);
		   L:=L,[x,y];
		od;
		plot([L],style=point);
		end:

À propos de ce document...

L'effet papillon

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html tipe4web.tex -split 0 -no_navigation

The translation was initiated by Sébastien Georget on 2003-09-18


Sébastien Georget 2003-09-18