Le sujet du jour est un grand classique, l’une des découvertes majeures du XXe siècle : la théorie du chaos.

On pourrait écrire tout un bouquin sur le sujet — et d’ailleurs il y en a, cf J.Gleick ou I.Stewart — alors je ne vais pas chercher dans ce billet à compléter tout ce que je n’ai pas dit dans la vidéo, mais au moins à pointer vers quelques pistes ou résultats intéressants.

Edit : tous les codes Python des simulations sont là : https://github.com/scienceetonnante/Chaos

L’étude des systèmes dynamiques

Commençons par un peu de formalisme pour bien poser le cadre mathématique dans lequel on étudie les systèmes dynamiques dont on a parlé. Nous en avons vu deux types dans la vidéo : les systèmes en temps continu (pendule, planètes, équations de Lorenz…) et les systèmes en temps discret (transformation logistique, de Hénon…).

Pour les systèmes en temps discret, le jeu est relativement simple. On a des variables qui décrivent l’état du système. Et pour passer au pas de temps suivant, on applique une transformation qui agit sur ces variables.

Pour les systèmes en temps continu, c’est plus subtil. Imaginons que l’on ait un certain nombre N de variables numériques décrivant l’état de notre système à un instant donné : x_1, x_2, x_3...x_N. On peut regrouper toutes ces variables en un vecteur \vec{X} de dimension N (dans la suite, je vais laisser tomber les flèches).

L’espace des états possible (l’espace dans lequel X prend ses valeurs) est appelé espace des phases. On reviendra sur ce terme. Pour schématiser on va dire que l’espace des phases est \mathbb{R}^N, mais on peut très bien avoir des variables qui varient sur un domaine plus restreint.

On considère pour X une équation d’évolution de la forme

\frac{dX}{dt} = F(X(t))

Ceci est une équation différentielle du 1er ordre, et dans cette expression F est une fonction de \mathbb{R}^N vers \mathbb{R}^N.

Toute l’évolution du système est contenue dans cette fonction F. Si on sait calculer F, on peut simuler numériquement l’évolution du système en choisissant un intervalle de temps très petit \Delta t, et en calculant l’évolution \Delta X des variables X par

\Delta X = F(X) \Delta t.

C’est comme ça que j’ai fait toutes les simulations du système de Lorenz (et que lui avait fait à l’époque sur son LGP-30 !)

Autre représentation alternative de F, la voir comme un champ de vecteurs. F nous donne l’évolution de X en renvoyant un vecteur en chaque point de l’espace des phases. Et donc l’intégralité de l’information contenue dans F peut se retrouver dans une représentation graphique sous forme d’un champ de vecteur sur l’espace des phases, un truc du genre :

Pour calculer une trajectoire à partir d’un point de l’espace des phases dans ce champ de vecteur, c’est en principe très simple : on suit les flèches ! « Suivre les flèches » est la version graphique de la méthode de calcul que j’ai présentée ci-dessus, où on fait une simulation par petits intervalles de temps discret. On dit dans les deux cas qu’on intègre la trajectoire.

Une précision importante : j’ai parlé dans ma vidéo de systèmes qui ne sont pas a priori régis par une équation d’évolution du 1er ordre, mais du 2nd ordre. C’est le cas des systèmes mécaniques en général, par exemple le pendule simple

\frac{d^2\theta}{dt^2}=-\frac{g}{L}\sin\theta

Dans ce cas il y a une façon simple d’en faire un système du premier ordre : dédoubler les variables. Pour décrire l’état complet du pendule, et prédire son évolution, son angle \theta ne suffit pas, il nous faut aussi sa vitesse angulaire \omega, qui bien sûr est égale à la dérivée de l’angle.

On peut donc remplacer l’équation du second ordre par les deux équations du premier ordre

\frac{d\omega}{dt}=-\frac{g}{L}\sin\theta
\frac{d\theta}{dt}=\omega

On regroupe donc les 2 variables dans un vecteur, et on est bons. Pour le pendule simple, l’espace des phases est donc à 2 dimensions, et pour le pendule double, à 4 dimensions. On voit donc que l’espace des phases du système de Lorenz est d’une dimension inférieure à celui du double pendule. D’un certain point de vue, on peut dire que le système de Lorenz est un des plus « petits » systèmes continus chaotiques possibles.

D’ailleurs c’est l’occasion de revenir sur une affirmation de la vidéo qui vous a peut-être choquée : mathématiquement, deux orbites ne peuvent jamais se croiser. Ici, on parle bien d’orbites dans l’espace des phases ! Prenons le cas d’une planète dans un champ gravitationnel : il faut 3 nombres pour décrire sa position (x,y,z), mais comme l’équation du mouvement est du second ordre, il faut 6 nombres pour l’espace des phases : aux 3 positions on doit ajouter les 3 vitesses (ou les 3 impulsions).

Les orbites de deux planètes peuvent très bien se croiser en un même point de l’espace, mais pas de l’espace des phases ! Ce sont bien les orbites de l’espace des phases qui ne peuvent pas se croiser.

Une façon simple de le voir : vu que l’évolution d’un point est entièrement déterminée par sa position dans l’espace des phases (en suivant le champ de vecteur), si deux trajectoires se rencontrent, elles doivent forcément suivre la même évolution par la suite (et c’est cette observation qui a donné à Lorenz l’intuition que son attracteur ne pouvait pas avoir une structure simple).

Le modèle de Lorenz

Tout d’abord, laissez moi mentionner l’article fondateur de Lorenz que je n’ai pas cité explicitement. Je vous le recommande car il est d’une rare profondeur. C’est incroyable qu’il soit passé inaperçu des mathématiciens pendant près de 10 ans.

Lorenz, E. N. (1963). Deterministic nonperiodic flow. Journal of the atmospheric sciences, 20(2), 130-141.

(Au fait, je ne l’ai pas précisé, mais ce Lorenz est évidemment différent du LorenTz de la relativité !) Pour les fans de mécanique des fluides, on peut dire un tout petit mot du système de Lorenz, que j’ai présenté dans une forme qui semble ne pas avoir grand chose à voir avec l’atmosphère.

Pour l’origine de l’équation, on peut en gros s’imaginer qu’on part d’un modèle complet d’une couche de fluide soumis à la gravité et à un gradient de température : chaud en bas, froid en haut. Le mouvement de convection correspond à l’élévation du fluide chaud, son refroidissement, puis sa redescente.

Il s’agit donc d’un modèle très simplifié de convection sous l’effet d’un gradient de température, comme on en a à l’intérieur de la terre, dans l’atmosphère, dans une casserole ou dans ces lampes bizarres.

Le modèle de Lorenz s’obtient grossièrement à partir d’une équation initiale, qu’on va simplifier en ne gardant que les modes principaux. Et si on tronque à l’extrême, on se retrouve avec seulement 3 variables.

Dans le système d’équations, la variable x représente en gros l’intensité de la convection, la variable y le gradient de température, et la variable z la « non-linéarité » du gradient, c’est-à-dire à quel point le gradient dans l’épaisseur s’éloigne d’un truc gentiment linéaire.

Le système d’équation possède 3 paramètres, j’ai repris les valeurs numériques classiques qui figuraient dans l’article de Lorenz. \rho est en gros le nombre de Rayleigh, et on le prend suffisamment élevé pour que la convection se déclenche. Le paramètre \sigma est assimilable au nombre de Prandtl.

Quand peut-on dire d’un système qu’il est chaotique ?

Il n’y a pas de définition absolument unifiée de ce qui définit un système chaotique. Dans la vidéo, j’ai essentiellement suggéré qu’il s’agissait d’un système soumis à l’effet papillon…Dans la première version de la vidéo, j’ai aussi brièvement mentionné l’histoire du mélange des trajectoires, mais je l’ai finalement coupée dans le montage final, alors on va préciser.

Pour qualifier et quantifier l’effet papillon, on utilise une définition mathématiquement plus précise : on a un système chaotique si deux points très proches initialement divergent dans le temps avec une trajectoire exponentielle. Prenons deux points x_A et x_B séparés initialement par une distance \Delta x(0) faible. Si au bout d’un temps t on a

\Delta x(t) \sim \Delta x(0) exp(\gamma t)

c’est que les deux trajectoires divergent avec un écart qui croit exponentiellement avec le temps (évidemment on regarde ça pour les temps pas trop long, puisque dans un système de Lorenz les trajectoires sont bornées, donc ça ne diverge pas exponentiellement jusqu’à la St-Glinglin…)

Le coefficient \gamma décrit l’intensité de la divergence, et on l’appelle l’exposant de Lyapunov. Physiquement, il est homogène à l’inverse d’un temps, donc on peut le mettre sous une autre forme en écrivant \gamma = 1/\tau et avoir une divergence en e^{t/\tau}. Dans ce cas on appelle \taule temps de Lyapunov, et il correspond en gros au temps au bout duquel deux trajectoires initialement proches auront bien divergé. Pour faire simple, cela est lié au temps au bout duquel on a du mal à prédire l’évolution du système (par exemple quand on dit 2-3 semaines pour la météo).

Mais pour bien qualifier un système chaotique, cette divergence exponentielle ne suffit pas. Pour preuve, considérez le système suivant

\frac{dx}{dt} = x(t)

dont on connait évidemment la solution explicite :

x(t) = e^t

Vous pouvez vous convaincre que par construction, deux points initialement très proches vont diverger de façon exponentielle…et pourtant on peut difficilement le qualifier de système chaotique ! Pour faire la discrimination avec les « vrais » systèmes chaotiques, on peut ajouter une condition supplémentaire : celle du mélange des trajectoires. Clairement un système comme celui-là ne mélange pas les trajectoires.

Dans la version initiale de la vidéo j’avais présenté la petite simulation suivante : on prend plein de points dans l’intervalle 0.37 \pm 10^{-9} (courbe en noir), et plein de points dans l’intervalle 0.55 \pm 10^{-9}. Si on applique successivement la fonction logistique à tous ces points, les trajectoires rouges et noires finissent par diverger et se mélanger.

Mathématiquement, dans un système chaotique, si on prend deux petits intervalles ouverts quelconques, aussi petits qu’on veut, et qu’on simule leur évolution, au bout d’un certain temps les trajectoires seront totalement mélangées. C’est une condition qu’on ajoute, outre l’effet papillon, pour les systèmes chaotiques.

C’est ce qu’illustre ce petit gif animé qui montre les itérations successives d’un système chaotique à partir d’un ensemble de départ.

On trouve parfois une troisième condition : l’existence d’orbites périodiques denses. De façon remarquable, Lorenz avait déjà noté ça dans son article fondateur !

Systèmes continus vs systèmes discrets

En réalité les systèmes continus et les systèmes discrets ne sont pas comme deux mondes à part. On peut notamment les relier au moyen de ce qu’on appelle une section de Poincaré.

Avant de parler de cette idée, qu’il me soit permit de dire un mot de Poincaré, qui d’une certaine manière peut être considéré comme l’un des premiers découvreurs de l’effet papillon. En effet il avait noté avant tout le monde qu’un système de 3 corps en interactions pouvait conduire à des instabilités, des sensibilités aux conditions initiales, et devenait vite imprédictible

En particulier dans Science et Méthode, en 1908, il écrivait :

Une cause très petite, qui nous échappe, détermine un effet considérable que nous ne pouvons pas ne pas voir, et alors nous disons que cet effet est dû au hasard. Si nous connaissions exactement les lois de la nature et la situation de l’univers à l’instant initial, nous pourrions prédire exactement la situation de ce même univers à un instant ultérieur. Mais, lors même que les lois naturelles n’auraient plus de secret pour nous, nous ne pourrons connaître la situation initiale qu’approximativement. Si cela nous permet de prévoir la situation ultérieure avec la même approximation, c’est tout ce qu’il nous faut, nous disons que le phénomène a été prévu, qu’il est régi par des lois ; mais il n’en est pas toujours ainsi, il peut arriver que de petites différences dans les conditions initiales en engendrent de très grandes dans les phénomènes finaux ; une petite erreur sur les premières produirait une erreur énorme sur les derniers. La prédiction devient impossible et nous avons le phénomène fortuit.

Revenons à la section de Poincaré. L’idée est assez simple : prenez un système continu en dimension D (pensez à celui de Lorenz, donc D=3) et considérez un hyperplan de l’espace des phases, de dimension D-1. Les trajectoires vont croiser de nombreuses fois ce plan, et on peut considérer les points d’intersection successifs au fur et à mesure que la trajectoire se prolonge. L’application qui a un point du plan associe le point suivant et une transformation en temps discret sur le plan.

La transformation de Hénon a, en fait, été initialement conçue par Michel Hénon comme une variante du système de Lorenz après section de Poincaré, dans le but de pouvoir révéler la structure fractale de l’attracteur de façon plus facile que le système de Lorenz.

Lorenz lui même avait déjà imaginé une astuce de ce genre. Il avait suggéré que les deux ailes de son attracteur semblaient se recoller au niveau d’un segment, et que toute trajectoire sembler passer par ce segment de façon périodique. On peut donc considérer l’application qui a un point du segment associe le point suivant sur la trajectoire. Lorenz avait montré que l’application en question ressemblait beaucoup à une fonction en forme de tente, qui exhibe un comportement chaotique du même genre que la fonction logistique.

D’ailleurs le caractère chaotique de la fonction logistique n’est pas du tout spécifique de cette fonction en particulier. Si on prend une fonction croissante puis décroissante de [0;1] dans lui-même, on peut obtenir le même genre de comportement, par exemple avec f(x) = \sin(\pi x).

Encore plus fort, ce qu’on a observé sur le diagramme de bifurcation de la fonction logistique est en fait assez générique. En particulier les écarts entre les points pour lesquels on observe un dédoublement.

Dans le cas de la fonction logistique, notons r_n le point de bifurcation au-delà duquel on a une orbite périodique constituée de 2^n points, et ce jusqu’au point r_{n+1}.

On a donc vu que r_1=3, puis que r_2\approx 3.449, et r_3\approx 3.544. On a remarqué que les intervalles sont de plus en plus petits. En fait on peut montrer deux choses : d’une part que r_n tend vers \approx 3.56995..., qui marque donc l’entrée dans le régime chaotique; et d’autre part que le ratio entre un intervalle et le suivant tend vers une constante, C\approx 4.66920, appelée constante de Feigenbaum.

Ce qui est extraordinaire, c’est que cette constante est la même pour toutes les transformations du même genre. On aurait pu prendre un sinus à la place de la fonction logistique, on aurait trouvé la même constante, c’est un truc universel !

Et d’ailleurs on retrouve la même chose pour l’ensemble de Mandelbrot que j’ai juste figuré via la vidéo de El JJ. On retrouve la constante de Feigenbaum comme ratio de taille de cercles successifs sur l’axe réel dans l’ensemble de Mandelbrot.

Chaos et Fractales

C’est du coup le bon moment pour commenter un peu plus les liens qui unissent la théorie du chaos et les fractales. Les deux sont très fréquemment associés, surtout dans la vulgarisation autour du sujet, mais le lien n’est pas si évident que cela à comprendre.

Tout d’abord, si vous connaissez par exemple l’ensemble de Mandelbrot, vous voyez qu’il existe au moins un lien : la notion d’itération successive d’une application. L’ensemble de Mandelbrot est définir à partir de la fonction du plan complexe

f_c(z) = z^2 + c

et consiste à regarder les valeurs de c pour lesquels l’itération répétée de la fonction f_c à partir du point z=0 ne diverge pas à l’infini.

Nous avons vu que dans le domaine des systèmes chaotiques, les fractales surgissent d’au moins deux façons :


  • les attracteurs peuvent avoir une structure fractale (comme l’attracteur de Lorenz ou celui de Hénon)

  • les diagrammes de bifurcation peuvent avoir une structure fractale.

De façon plus philosophique, on peut comprendre le lien entre fractales et systèmes chaotiques par l’idée générale que aussi proches que soient deux points dans l’espace, ils peuvent « être loin » du point de vue des propriétés. Dans le système chaotique, parce que l’évolution du système va les séparer de façon exponentielle. Dans les fractales parce que, par exemple, si on prend une courbe fractale (pensez à la côte bretonne), deux points très proches « à vol d’oiseau » peuvent se trouver à grande distance l’un de l’autre si on suit la courbe. (J’agite un peu les mains mais vous voyez l’idée).

Si on creuse un peu, on peut montrer que certains attracteurs étrange on une structure qui est en gros le produit d’un sous-espace « normal » par un sous-espace fractal du type « ensemble de Cantor« . C’est le cas d’ailleurs pour Hénon et Lorenz.

Ci-dessous un rappel de comment on construit l’ensemble de Cantor : on prend un segment, puis on enlève le tiers du milieu, et on itère.