Retour

Le mouvement brownien

Historique

C'est en 1827 que le botaniste Robert Brown découvrit un mouvement erratique de particules dans un liquide, mouvement qui portera son nom. Cela me donne l'occasion de lever une confusion fréquente: le mouvement observé n'est pas celui de grains de pollen dans de l'eau mais le mouvement de particules micrométriques dans le fluide interne des grains de pollen. En effet, les grains de pollen en question, ceux de la clarkia pulchella, sont trop gros (100 microns environ) pour être très sensibles au mouvement brownien. Le site suivant présente une photographique intéressante de ces grains.

Pour être exact, le mouvement brownien (on écrit aussi MB...) fut constaté bien avant , au début du 18eme par l'abbé Needham, et même prévu depuis le 1er siècle avant JC par Lucrèce, qui l'extrapola depuis la théorie atomique en vigueur à l'époque! Rien de nouveau sous le soleil donc...

Einstein fit une étude poussée du sujet, ce qui donna lieu à l'un des 4 articles de sa mémorable livraison de 1905, et accessoirement à son sujet de thèse! Einstein considérait que la théorie atomique était exacte, ce qui n'était pas évident à l'époque. Il connaissait bien la mécanique statistique. Il est donc parti du principe qu'une particule assez grosse, de l'ordre du micromètre, devait se comporter comme un gros atome, car en équilibre thermodynamique avec les atomes du liquide. Cette particule constituait pour lui un marqueur du comportement des atomes. Il prévoyait donc d'analyser son comportement en le comparant aux prévisions de la théorie cinétique de Boltzmann. Il établit l'équation de diffusion de ces particules dans le liquide, équation qui fut le clou de sa thèse. Il s'aperçut aussi que l'on ne pouvait pas mesurer la vitesse, au sens classique du terme, d'une particule: plus la durée de mesure était petite et plus la vitesse était grande! Plus tard, on s'aperçut qu'une trajectoire brownienne était une fonction continue mais non-dérivable! En fait, le déplacement d'une particule brownienne n'est pas linéaire avec le temps, comme dans un mouvement classique: on ne divise pas la distance par le temps, mais par la racine carrée du temps.

Les travaux d'Einstein ont servi de base à ceux de Jean Perrin, qui obtint le prix Nobel de physique en 1926 pour avoir confirmé que les particules browniennes répondaient bien à la statistique de Boltzmann, étayant de façon rigoureuse la théorie atomique et donnant accessoirement une bonne estimation du nombre d'Avogadro. Il publia ses travaux dans un livre célébre "Les atomes", dont je recommande vivement la lecture à tous les passionnés de physique. Il existe en livre de poche (j'en ai une vielle édition dans la collection Idées chez Gallimard). On retrouve dans ce livre un chapitre sur le mouvement brownien (le §4), qui contient un schéma (fig 8 page 167 de mon édition) qui transcrit l'observation d'un mouvement brownien et que l'on comparera avec les schémas obtenus par notre simulation 2D ci-dessous.

Puis vint le temps de mathématiciens... Car jusqu'à présent, le mouvement brownien était un objet d'étude de physiciens. On manquait singulièrement de modèles mathématiques, d'autant que ce mouvement avait le mauvais goût de ne pas coller aux équations différentielles ordinaires. Imaginez : des variables aléatoires, des trajectoires continues mais non dérivables!

C'est Norbert Wiener qui modèlisa le premier le mouvement brownien de façon efficace en 1923. Puis Paul Lévy, qui en 1933, introduisit un modèle probabiliste convaincant (celui des martingales). Enfin, Kiyoshi Ito inventa, entre 1942 et 1951, le calcul stochastique pour compléter le traitement des équations différentielles stochastiques, qui font intervenir des variables aléatoires. Citons enfin le thèorème de Donsker, établi en 1951, que nous sera fort utile pour nos simulations, puisqu'il stipule qu'une marche aléatoire renormalisée peut représenter le mouvement brownien. Comme une marche aléatoire est facile à programmer, on ne se privera pas d'utiliser ce théorème pour simuler le MB!

Ceux qui suivent noteront que je n'ai pas mentionné Louis Bachelier. J'ai même écrit qu'on ne disposait pas de modèles mathématiques du MB avant 1923, alors que ce monsieur en a pondu un en 1901. Il se trouve que j'ai une sainte horreur des mathématiques financières (que mes camarades,nombreux à faire des maths fi, me pardonnent). Or, Bachelier eut l'exécrable idée d'appliquer son modèle du MB à l'évolution du cours des actions. On sait le résultat de ce genre de méthode... C'est d'autant plus drôle qu'un mathématicien français, Marc Yor, a démontré en 2008 que la modélisation des flux financiers par les modèles du MB était très discutable sur le plan mathématique (voir ses ouvrages ISBN 978-3-540-22347-4 et 978-3-540-89698-2).

Voilà pour le petit tour historique. Vous trouverez un historique plus détaillé, et bien d'autres choses sur la page Wiki consacrée au mouvement brownien. Il existe une multitude de sites, mathématiques, physique et surtout maths fi sur le sujet.

Pour finir, je voudrais citer le texte de Bertrand Duplantier Mouvement brownien, divers et ondoyant, paru dans les actes du séminaire Poincaré (2005) 155-212, qui expose de manière très complète l'histoire du mouvement brownien.

Définition

Pour mettre les choses au point immédiatement, je ne vous parlerai pas de la définition mathématique du MB ni des multiples extensions de celui-ci aux probabilités, au calcul stochastique et aux maths fi. Il existe pour cela d'excellents ouvrages de proba qui feront votre bonheur. Un détail tout de même: très peu sont du niveau visé par TangenteX, c'est à dire CPGE et L1-L2... Nous resterons donc sur les aspects physiques du mouvement brownien!
Voyons d'abord quelles sont les caractéristiques du MB déduites de l'observation:

De ces caractéristiques, les physiciens ont vite déduit, en acceptant le modèle atomique de la matière, que le MB pouvait être provoqué par le choc des molécules du liquide sur la particule, sachant que la particule est très grosse par rapport aux molécules (typiquement la taille d'une molécule est de l'ordre de 10-10 m, et celle de la particule de 10-6 m).

Il a fallu expliquer d'abord pourquoi une grosse particule ne subissait pas le MB alors que les particules micrométriques le subissaient. C'est en fait assez simple : une grosse particule subit un grand nombre de chocs, d'orientations diverses. En moyenne, les chocs s'annulent, la somme vectorielle des impulsions tend vers 0. Il n'en est pas de même pour les petites particules, qui subissent beaucoup moins de chocs. La somme vectorielle des impulsions ne s'annule pas tout à fait et la particule est en mouvement.

La dépendance du mouvement à la température indiquait de façon claire que le MB est directement lié à l'énergie cinétique du milieu. En appliqaunt la cinétique des gaz et la statistique de Boltzmann, on aboutit à un modèle physique réaliste.

Notons en passant, pour ceux qui suivent, qu'une constatation expérimentale est assez génante: le mouvement ne s'arrête jamais. Le liquide, en équilibre thermique, semble fournir un travail permanent aux particules déplacées, ce qui est en contradiction flagrante avec le deuxième principe de la thermodynamique! Heureusement, Einstein a expliqué cette apparente contradiction en 1910, par la notion de fluctuation du nombre d'états microscopiques accessibles dans le système, donc d'une fluctuation d'entropie et donc finalement une fluctuation d'énergie. Ouf!

Nous allons examiner dans la suite deux modèles mathématiques différents du MB. Pour information, ces deux modèles ont fait l'objet de problèmes dans les concours des GE (Ulm en 97 filière MP) et de kholles multiples!

Le modèle "Einstein" du MB - 1905

Puisqu'il s'agit de mouvement, le premier réflexe pour obtenir une équation descriptive du MB est de se tourner vers les lois de Newton. Après tout, il devrait être possible de décrire le mouvement d'une particule brownienne en appliquant la seconde loi! C'est en théorie possible, mais réfléchissez au nombre de molécules du liquide (ou du gaz car le MB existe aussi dans les gaz) qui interagissent avec la particule brownienne: quel est l'ordre de grandeur de N déjà? oui, c'est en pratique complétement irréaliste, trop d'équations à résoudre, bien trop!

Einstein a contourné le problème en abordant la description du MB sous l'angle probabiliste, en appliquant les principes de la mécanique statistique. Il est parti d'un modèle unidimensionnel dans lequel, à un instant t, une particule brownienne pouvait se déplacer à droite ou à gauche, de façon équiprobable, avec une amplitude de déplacement Δ. Cette amplitude est elle même aléatoire, distribuée selon une fonction normalisée (c'est à dire que la probabilité qu'une particule effectue un saut, qq soit l'amplitude du saut, est égale à 1). Cela lui a permis d'établir la densité de probabilité P(x,t) de trouver la particule brownienne en x à l'instant t.

A partir de là, grâce à quelques petits calculs qui font l'objet de kholles bien senties, Einstein arriva à la conclusion que la fonction de densité de probabilité obéissait parfaitement à l'équation de diffusion, déjà bien connue δ(P(x,t)/dt = D*ΔP(x,t), où Δ est le laplacien de P(x,t).

Le coefficient D est le coefficent de diffusion de la particule. Einstein a établi que D = kT/mγ, avec k la constante de Boltzmann et γ le coefficient de friction, T la température. Nous retrouvons donc là le lien entre le MB et la structure atomique de la matière, et aussi le moyen de vérifier N par d'autres moyens que la stoechiométrie chimique! C'est Jean Perrin qui effectua cette vérification, ce qui lui valu le prix Nobel.

Tout cela est bien beau, mais le résultat d'Einstein ne nous donne pas un modèle dynamique du mouvement brownien. Son grand intérêt est de relier assez simplement le MB à la structure discontinue de la matière en introduisant le nombre d'Avogadro N dans la description du MB. Pour avoir un modèle dynamique, il faut se tourner vers Langevin...

Le modèle "Langevin" du MB - 1908

Langevin aborda le problème d'une manière assez différente. Il décida de conserver l'approche "mécanique" en se disant que s'il n'était pas possible de traiter simultanément autant d'équations, on pouvait supposer que la seconde loi était applicable sur les valeurs moyennes de vitesse et d'accélération. Par "valeur moyenne" , il faut entendre la moyenne sur toutes les trajectoires d'une particule brownienne.

En bonne application des méthodes de mécanique, Langevin fait le bilan des forces "moyennes" qui s'exercent sur une particule:

Muni de ce bilan des forces, on peut donc poser l'équation de Langevin : md\(\vec{v}\)(t)/dt + mγ\(\vec{v}\)(t) = \(\vec{F}\)(t), en négligeant bien sur la pesanteur.

Notons au passage une information supplémentaire importante: la particule est en équilibre thermique avec son milieu. Sa valeur quadratique moyenne est donc connue et l'on peut l'écrire <v2(t)> = kT/m, dans un modèle unidimensionnel, avec k, la constante de Boltzmann.

En utilisant toutes ces données, on trouve que la solution de cette équation de Langevin est de la forme  <d(x2(t)/2)/dt> = <d(x2(0)/2)/dt>*exp-γt) + kT/mγ

En examinant cette solution et en l'intégrant par rapport au temps, on déduit au moins deux chose:

Le modèle de Langevin permet, selon les échelles de temps d'expliquer le comportement balistique ou diffusif du MB. Il recolle au modèle d'Einstein en fournissant la même valeur du coefficient de diffusion. Il constitue uen avancée importante en physique, car ce fut la première introduction d'une équation différentielle stochastique, c'est à dire incorporant une fonction aléatoire. Sa solution est ce que l'on appelle un processus stochastique. Langevin, comme Einstein, introduit donc le calcul probabiliste dans l'étude du MB.

Le mouvement brownien à une dimension

Nous venons de survoler, de très haut, deux modèles physiques du MB. Aucun des deux, à première vue, ne se prête à une simulation numérique. C'est pourtant notre but : simuler le mouvement brownien.

Comme je l'ai indiqué plus haut, on peut réaliser une construction approchée du mouvement brownien en utilisant le théorème de Donsker. Il s'agit de calculer une marche aléatoire symétrique en générant un bruit blanc gaussien. Le processus stochastique obtenu simule assez bien le MB.

Nous allons donc simuler par cette technique un mouvement brownien de dimension 1, sur un intervalle de temps compris entre 0 et 1 unité de temps (peu importe). On découpera cet intervalle en un certain nombre de pas, noté N dans le programme.

Pour calculer une trajectoire, on procède de la façon la plus simple possible : l'abscisse x(t) est calculée en ajoutant une valeur de bruit aléatoire à l'abscisse x(t-1). La valeur de bruit est calculée par la fonction grand de Scilab. On s'assure que le bruit suit une loi normale de moyenne nulle et d'écart type 1 (cela correspond à la limite temporelle du calcul ou encore horizon). Dans le code, cela donne ceci:

bruit = grand(M,N,"nor",0,sqrt(T));

// simulation de la marche aléatoire

for k=2:N+1,

   MB(:,k) = MB(:,k-1)+sqrt(T/N)*bruit(:,k-1);

end;

On aurait certes pu faire plus concis en supprimant la boucle for, mais je privilégie la lisibilité...

La matrice MB contient donc un certain nombre de trajectoires (M exactement), chaque ligne de MB contenant les données d'une trajectoire. On verra pourquoi calculer plusieurs trajectoires ci-dessous. En attendant, il est souhaitable d'en visualiser au moins une pour avoir une idée du résultat. Ce ce que fait le bout de code suivant:

xset('window', 1);

clf();

plot2d(temps, MB(1,:));

xtitle('Simulation du mouvement Brownien');

Ces instructions tracent la première trajectoire calculée et stockée dans MB, cette dernière étant stockée dans la première ligne de MB, désignée par MB(1,:). Voici ce que cela donne:

trajectoire MB

Vous pouvez bien sur tracer n'importe quelle trajectoire disponible! Evidemment, si vous faites la manip, la courbe obtenue a toutes les chances d'être différente de celle affichée ci-dessus...

Les cours de physique statistique affirment que les valeurs terminales d'un ensemble de trajectoires browniennes dans le même espace de probabilité sont distribuées selon une loi normale (0,T), de moyenne 0 et de variance T (dans notre cas, T=1). Cela se démontre bien sur, mais ce n'est pas du niveau retenu dans notre site. Cependant, à défaut de le démontrer, on peut le vérifier expérimentalement...

J'ai donc ajouté un bout de code qui trace, sur une même figure, la courbe gaussienne correspondante à la loi mentionnée, et l'histogramme de distribution des valeurs terminales de nos 3000 trajectoires simulées. Le voici:

xset('window', 2);

clf();

x=-4:0.1:4;

histplot(x,MB(:,$)); // MB(:,$) désigne la valeur terminale de chaque trajectoire

plot2d(x,exp(-x^2/(2*T))/sqrt(2*%pi*T),2); // tracé de la gaussienne de moyenne 0 et de variance T

xtitle('Distribution des valeurs terminales des trajectoires');

Voilà ce que cela donne, pour 3000 trajectoires:

Distribution des valeurs terminales MB

Le moins que l'on puisse dire, c'est que ça colle pas trop mal! En augmentant le nombre de trajectoires, on devrait avoir une meilleure adéquation encore (mais attention à la taille limite de la pile de Scilab!). Pour ceux qui ne croient que leur calculette et pas leurs yeux, ils peuvent passer un test de Kolmogorov-Smirnov (avec Scilab ou Excel), on obtient une p-valeur d'environ 0,3, ce qui n'est pas mal du tout!
Le code Scilab de la simulation est téléchargeable ici.

Le mouvement brownien à deux dimensions

Pourquoi s'arrêter en si bon chemin? Après tout, sous sa lamelle de microscope, Brown voyait le mouvement brownien en 2D..

Il n'est pas très compliqué de transformer notre programme 1D en programme 2D. Le principe d'utilisation d'un bruit ajouté aux coordonnées du point précédent reste, si ce n'est qu'ici il faut ajouter un bruit sur x et sur y. Pour le reste, rien de changer.
Le code d'initialisation et de calcul devient:

// Paramètres de la simulation

clear;

T = 5;

N = 1000;

h = T/N;

sh = sqrt(T/N);

// Initialisation des vecteurs de calcul

temps = h*[0:N];

x = zeros(size(temps));

y = zeros(size(temps));

// calcul des vecteurs de bruits sur x et y

bruitX = grand(N,1,"nor",0, sqrt(T));

bruitY = grand(N,1,"nor",0, sqrt(T));

// calcul de la trajectoire

for i = 2:N+1

x(i) = x(i-1) + sh*bruitX(i-1);

y(i) = y(i-1) + sh*bruitY(i-1);

end

Le code de tracé est on ne peut plus simple:

xset('window',1);

clf();

plot2d(x,y,2);

xtitle('Mouvement brownien en 2D');

En lancant le programme sous Scilab, vous devriez obtenir quelque chose de semblable, mais certainement pas d'identique:

trajectoire MB 2D

Le code Scilab de la simulation est téléchargeable ici.


Contenu et design par Dominique Lefebvre - www.tangenteX.com mars 2013 -- Vous pouvez me joindre par mail ou sur PhysiqueX

Licence Creative Commons

Cette œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France .