Vous êtes sur la page 1sur 163

Physique Numérique

Badis Ydri

Departement de Physique, Faculté des Sciences, Université d’Annaba,


Annaba, Algerie.
2 physique numérique, ydri et al.
Contents

Introduction et Références 3

Partie I 7
1 Algorithme d’Euler- Résistance d’Air et Projectiles 7
1.1 Algorithme d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Désintégration Radioactive . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 La Résistance de l’Air . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Code de Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Mouvement d’un Projectile . . . . . . . . . . . . . . . . . . . . . . . 15

2 Algorithmes d’Euler-Cromer et de Verlet-Oscillateur Harmonique 17


2.1 Pendule Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Algorithme d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Algoritme d’Euler-Cromer . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Algorithme de Verlet . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Intégration Numérique 21
3.1 Approximation Rectangulaire . . . . . . . . . . . . . . . . . . . . . 21
3.2 Méthode des Trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Approximation Parabolique oú la Régle de Simpson . . . . . . . . . 23
3.4 Erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Algorithmes de Newton-Raphson et Interpolation 27


4.1 Méthode de Dichotomie . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Algorithme de Newton-Raphson . . . . . . . . . . . . . . . . . . . . 28
4.3 Méthode Hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . 30
4.5 Interpolation Spline Cubique . . . . . . . . . . . . . . . . . . . . . . 31
4.6 Méthode des Moindres Carrés . . . . . . . . . . . . . . . . . . . . . 33
4 physique numérique, ydri et al.

5 Travaux Pratiques 35
5.1 Algorithme d’Euler- Resistance d’Air . . . . . . . . . . . . . . . . . 35
5.2 Mouvement des Projectiles Sous l’Effet de la Résistance de l’Air . . 36
5.3 Oscillateur Harmonique-Algorithmes d’Euler-Cromer et de Verlet . 37
5.4 Intégration Numériques . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5 Algorithmes de Newton-Raphson . . . . . . . . . . . . . . . . . . . 40

Partie II 45
6 Le Systéme Solaire-Les Méthodes de Runge-Kutta 45
6.1 Le Systéme Solaire: Le Probléme . . . . . . . . . . . . . . . . . . . 45
6.2 Algorithmes de Euler et de Euler-Cromer . . . . . . . . . . . . . . . 46
6.3 L’algorithme de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 47
6.3.1 La Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.2 Example 1: L’Oscillateur Harmonique . . . . . . . . . . . . 49
6.3.3 Example 2: Le Systéme Solaire . . . . . . . . . . . . . . . . 49
6.4 Les lois de Kepler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.5 Loi de l’Inverse Carré et Stabilité des Orbites . . . . . . . . . . . . 53
6.6 Unités Astronomiques et Conditions Initiales . . . . . . . . . . . . . 54
6.7 Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . . . 55

7 Le Chaos: Pendule Chaotique 57


7.1 Equation du Mouvement . . . . . . . . . . . . . . . . . . . . . . . . 57
7.2 Algorithmes Numériques . . . . . . . . . . . . . . . . . . . . . . . . 60
7.3 Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.3.1 Effet Papillon:Sensibilité aux Conditions Initiales . . . . . . 61
7.3.2 Section de Poincaré et Attractors . . . . . . . . . . . . . . . 62
7.3.3 Bifurcations: Doublement de Période . . . . . . . . . . . . . 63
7.3.4 Rapport de Feigenbaum . . . . . . . . . . . . . . . . . . . . 64
7.3.5 Brisure Spontanée de Symétrie . . . . . . . . . . . . . . . . 64

8 Dynamique Moléculaire 67
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.2 Le Potentiel de Lennard-Jones . . . . . . . . . . . . . . . . . . . . . 68
8.3 Unités, Conditions aux Limites et Algorithme de Verlet . . . . . . . 69
8.4 Applications Physiques . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4.1 Gaz Dilué . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4.2 La Transition de Fusion . . . . . . . . . . . . . . . . . . . . 73
physique numérique, ydri et al. 5

9 Travaux Pratiques 75
9.1 Algorithme de Runge-Kutta - Le Systéme Solaire . . . . . . . . . . 76
9.2 La Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . 78
9.3 Le Pendule Chaotique et l’Effet Papillon . . . . . . . . . . . . . . . 80
9.4 Sections de Poincaré . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.5 Chaos par Doublement de Période . . . . . . . . . . . . . . . . . . . 84
9.6 Diagrammes de Bifurcation et Brisure Spontanée de la Symétrie . . 86
9.7 Dynamique Moléculaire . . . . . . . . . . . . . . . . . . . . . . . . . 88

Partie III 93
10 Nombres (Pseudo) Aléatoires et Marche Au Hasard 93
10.1 Nombres Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.1.1 Générateur Congruentiel Linéaire . . . . . . . . . . . . . . . 93
10.1.2 Tests Statistiques des Nombres Aléatoires . . . . . . . . . . 94
10.2 Systémes Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
10.2.1 Marches Aléatoires . . . . . . . . . . . . . . . . . . . . . . . 97
10.2.2 Équation de Diffusion . . . . . . . . . . . . . . . . . . . . . 99
10.3 Les générateurs des Nombres Aléatoires RAN 0, 1, 2 . . . . . . . . . 101

11 Intégration Monte Carlo 105


11.1 Intégration Numérique . . . . . . . . . . . . . . . . . . . . . . . . . 105
11.1.1 Approximation Rectangulaire . . . . . . . . . . . . . . . . . 105
11.1.2 Approximation du Point Médian et Intégrales Multidimen-
sionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
11.1.3 Les Sphéres et les Boules dans d Dimensions . . . . . . . . . 108
11.2 Intégration de Monte Carlo: Échantillonnage Simple . . . . . . . . . 109
11.2.1 La Méthode de Rjet: "Hit or Miss" . . . . . . . . . . . . . . 110
11.2.2 La Méthode de l’Échantillon Moyen . . . . . . . . . . . . . . 110
11.2.3 Echantillon Moyen dans les Dimensions Supérieures . . . . . 110
11.3 Le Théorème Central Limite . . . . . . . . . . . . . . . . . . . . . . 111
11.4 Erreurs de Monte Carlo et Déviation Standard . . . . . . . . . . . 113
11.5 Distributions de Probabilités Non Uniformes . . . . . . . . . . . . . 116
11.5.1 La Méthode de Transformation Inverse . . . . . . . . . . . . 116
11.5.2 La Méthode de Rejet de Von Neumann . . . . . . . . . . . . 118

12 Échantillonnage d’ Importance, Algorithme de Metropolis et Mod-


éle d’Ising 119
12.1 L’Ensemble Canonique . . . . . . . . . . . . . . . . . . . . . . . . . 119
12.2 Échantillonnage d’ Importance . . . . . . . . . . . . . . . . . . . . . 120
6 physique numérique, ydri et al.

12.3 Le modéle d’Ising . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


12.4 L’Algorithme de Metropolis . . . . . . . . . . . . . . . . . . . . . . 122
12.5 L’Algorithme de Bain de Chaleur . . . . . . . . . . . . . . . . . . . 125
12.6 L’Approximation du Champ Moyen . . . . . . . . . . . . . . . . . . 125
12.7 Résultats Numériques . . . . . . . . . . . . . . . . . . . . . . . . . . 129
12.8 La Méthode de Jackknife . . . . . . . . . . . . . . . . . . . . . . . . 129

13 Travaux Pratiques 131


13.1 Nombres Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
13.2 Marche au Hasard . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
13.3 Approximation du Point Médian . . . . . . . . . . . . . . . . . . . 136
13.4 Approximations de Monte Carlo . . . . . . . . . . . . . . . . . . . 137
13.5 Distributions de Probabilité Non Uniforme . . . . . . . . . . . . . . 138
13.6 Algorithme de Metropolis et Modèle d’Ising . . . . . . . . . . . . . 140
13.7 Transition de Phase Ferromagnétiques . . . . . . . . . . . . . . . . 142
13.8 La Fonction de Corrélation . . . . . . . . . . . . . . . . . . . . . . . 143
13.9 Hystérésis et Transition de Phase du Premier Ordre . . . . . . . . . 144

Appendix 147
A Éléments de Fortran 147

B Note sur les Erreurs Numériques 149


B.1 Représentation en Virgule Flottante . . . . . . . . . . . . . . . . . . 149
B.2 Epsilon de la Machine et Erreurs d’Arrondi . . . . . . . . . . . . . . 151
B.3 Erreurs Systématiques (algorithmique) . . . . . . . . . . . . . . . . 152

C Exercices 155
Introduction et Références
physique numérique, ydri et al. 3

• La physique numérique est un sous-domaine de la science numérique et de


calcul scientifique.

• En physique numérique, nous combinons des éléments de la physique (surtout


théoriques), des éléments de mathématiques (en particulier les mathéma-
tiques appliquées, telles que l’analyse numérique) et des éléments de l’informatique
(programmation) dans le but de résoudre un probléme physique.

• En physique il existe traditionnellement deux approches. 1) L’approche


théorique et 2) L’approche expérimentale. L’approche numérique est générale-
ment considéré comme un complément á l’approche théorique et parfois
comme un pont entre l’approche théorique et l’approche expérimentale. Au-
jourd’hui nous pouvons même considérer l’approche numérique comme une
troisiéme voie en physique indépendante des deux autre approches.

• L’usage le plus important des ordinateurs en physique est simulation. Les


simulations sont naturellement adaptés pour les problémes non-linéaires qui
ne peuvent pas généralement être résolu par des méthodes analytiques. Le
point de départ d’une simulation numérique est un modéle idéalisé d’un sys-
téme physique d’intérêt. Nous voulons vérifier si le comportement de ce mod-
éle est cohérent avec l’observation expérimentale oú la prévision théorique.
Nous spécifions un algorithme pour la réalisation du modéle sur un ordi-
nateur. L’exécution de l’algorithme sur un ordinateur est une simulation.
Les simulations sont donc des expériences virtuelles. La comparaison entre
simulations et expériences de laboratoire va comme suit

Expérience de labora- Simulation


toire
échantillon modéle
appareil physique programme (le code)
calibration test de code
mesure calcul
analyse des données analyse des données

• Les outils les plus indispensables de la physique numérique sont les lan-
gages de programmation. Dans la plupart des simulations effectuées par des
physiciens professionnels dans leurs recherches les codes sont écrits dans un
langage compilé de haut niveau comme Fortran et C/C++. Dans ces simu-
lations, nous utilisons également des appels á des bibliothéques des routines
telles que LAPACK. Dans ce cours, nous allons écrire tous nos codes dans
un langage compilé de haut niveau. En particulier, nous n’allons pas faire
appel aux bibliothéques numériques .
4 physique numérique, ydri et al.

• L’usage des logiciels mathématiques tels que Maple, Mathematica et MAT-


LAB est seulement efficace pour les calculs relativement faible. Ces logi-
ciels sont des langages interprétés et donc le code qu’ils produisent s’exécute
généralement trop lentement par comparaison avec les langages compilés.

• Comme notre langage de programmation, nous allons utiliser Fortran 77 sous


le systéme d’exploitation Linux. Nous adoptons la distribution Ubuntu de
Linux. Nous allons utiliser les compilateurs Fortran f77 et gfortran. Nous
allons utiliser l’éditeur emacs et pour les graphiques, nous allons utiliser
gnuplot.

• Les références principales que nous allons suivre dans ce cours sont:

– 1)N.J.Giordano, Computational Physics.


– 2)R.H.Landau, M.J.Paez, C.C.Bordeianu, Computational Physics.
– 3)H.Gould, J.Tobochnick, D.Christian, An Introduction To Computer
Simulation Methods.
– 4)R.Fitzpatrick, Computational Physics.
– 5)M. Hjorth-Jensen,Computational Physics.
– 6)Paul L.DeVries, A First Course in Computational Physics.
Partie I
Algorithme d’Euler- Résistance d’Air et
1
Projectiles

1.1 Algorithme d’Euler


Nous considérons l’équation différentielle ordinaire du premier ordre

dy
(1.1)

y = = f (x, y).
dx
Nous prenons la condition initiale générale

y(x0 ) = y0 . (1.2)

On résout cette équation differentielle pour la fonction y = y(x) dans un intervalle


qui commence par x0 . Nous faisons la discrétisation suivante

xn = x0 + n∆x , n = 0, 1, ... (1.3)

L’algorithme d’Euler consiste á remplacer la fonction y(x) dans l’intervalle [xn , xn+1 ]
par la ligne droite reliant les points (xn , yn ) et (xn+1 , yn+1 ). Cela signifie que nous
remplaçons l’équation différentielle ci-dessus par l’équation aux différences finies
donnée par

yn+1 ≃ yn + ∆xf (xn , yn ). (1.4)


8 physique numérique, ydri et al.

Cette équation est une approximation. L’erreur de troncature est donnée par le
prochain terme dans l’expansion de Taylor de la fonction y(x) qui s’écrit
1 df (x, y)
(∆x)2 |x=xn . (1.5)
2 dx
L’erreur par étape est donc proportionnel á (δx)2 . Dans un intervalle unitaire nous
effectuerons N = 1/δx étapes. L’erreur systématique totale est donc proportion-
nelle á
1
N(∆x)2 = . (1.6)
N

1.2 Désintégration Radioactive


Dans une désintégration spontanée, une particule radioactive se désintégre en
d’autres particules sans aucune influence extérieure. Un exemple typique est
l’isotope nucléaires uranium 235. Le moment exact de la désintégration spontanée
est aléatoire. Cela signifie que le nombre −dN (t) des noyaux qui se désintégrent
pendant un intervalle de temps dt doit être proportionnel á dt et le nombre N (t)
de particules présentes á l’instant t. Donc

−dN (t) = N (t) − N (t + dt)


∝ N (t)dt. (2.7)

En d’autres termes la probabilité de désintégration par unité de temps qui est


donnée par (−dN (t)/N (t))/dt est une constante que nous notons 1/τ . (Le signe
moins est dû au fait que dN (t) est négatif puisque le nombre de particules diminue
avec le temps). Nous écrivons
dN (t) N (t)
=− . (2.8)
dt τ
La solution de cette équation différentielle du premier ordre est

N (t) = N0 exp(−t/τ ). (2.9)

Le nombre N0 est le nombre de particules au temps t = 0. Le temps τ est appelée


la durée de vie moyenne. Il est le temps moyen pour la désintégration. Pour
l’uranium 235 la durée de vie moyenne est d’environ 109 année.
L’objectif est maintenant d’obtenir une solution numérique approchée au prob-
léme de la radioactivité en utilisant l’algorithme d’Euler. Dans ce cas particulier,
nous pouvons comparer l’approximation á la solution exacte donnée par la loi de
désintégration exponentielle (2.9). Nous partons de l’expansion de Taylor
physique numérique, ydri et al. 9

2
dN 1 2d N
N (t + ∆t) = N (t) + ∆t + (∆t) + ... (2.10)
dt 2 dt2
Nous obtenons dans la limite ∆t −→ 0
dN N (t + ∆t) − N (t)
= Lim∆t−→0 . (2.11)
dt ∆t
Nous prenons ∆t petit mais non nul. Dans ce cas, nous obtenons l’approximation
dN N (t + ∆t) − N (t)
≃ . (2.12)
dt ∆t
De maniére équivalente
dN
N (t + ∆t) ≃ N (t) + ∆t . (2.13)
dt
En utilisant (2.8) nous obtenons
N (t)
N (t + ∆t) ≃ N (t) − ∆t . (2.14)
τ
Nous allons commencer par le nombre de particules au temps t = 0 donnée par
N (0) = N0 , ce qui est connu. Nous remplaçons t = 0 dans (2.14) pour obtenir
N (∆t) = N (1) en fonction de N (0). La valeur ainsi obtenue de N (1) peut être
utilisé dans l’équation (2.14) pour obtenir N (2∆t) = N (2), etc . Nous sommes
amenés alors á la discrétisation du temps

t ≡ t(i) = i∆t , i = 0, ..., N. (2.15)

En d’autres termes

N (t) = N (i). (2.16)

Le nombre entier N va déterminer l’intervalle de temps total T = N∆t. La solution


numérique (2.14) peut être réécrite comme
N (i)
N (i + 1) = N (i) − ∆t , i = 0, ..., N. (2.17)
τ
C’est l’algorithme d’Euler pour la désintégration radioactive. Pour plus de com-
modité nous changeons le nombre entier i de tel sorte que l’équation ci-dessus
prend la forme
N (i − 1)
N (i) = N (i − 1) − ∆t , i = 1, ..., N + 1. (2.18)
τ
10 physique numérique, ydri et al.

Nous introduisons N̂ (i) = N (i − 1), i.e. N̂ (1) = N (0) = N0 . Nous obtenons

N̂ (i)
N̂ (i + 1) = N̂ (i) − ∆t , i = 1, ..., N + 1. (2.19)
τ
Les temps associés

t ≡ t̂(i + 1) = i∆t , i = 1, ..., N + 1. (2.20)

Cette solution approchée doit être comparée avec la solution exacte (2.9). Le
nombre initial de particules au temps t̂(1) = 0 est N̂ (1) = N0 .

1.3 La Résistance de l’Air


Nous considérons un cycliste conduisant son vélo sur un terrain plat. L’objectif
est de déterminer sa vitesse. La deuxiéme loi de Newton est donnée par
dv
m = F. (3.21)
dt
F est la force exercée par l’athléte sur le vélo. Il est évidemment trés difficile
d’écrire une expression précise de F . On va alors formuler le probléme en termes
de puissance générée par l’athléte pour éviter l’utilisation d’une formule explicite
pour F . En multipliant l’équation ci-dessus par v, nous obtenons
dE
= P. (3.22)
dt
E est l’énergie cinétique et P est la puissance, á savoir
1
E = mv 2 , P = F v. (3.23)
2
Expérimentalement, nous constatons que le rendement des athlétes bien entraînés
est d’environ P = 400 watts sur une période d’une 1h. L’équation ci-dessus peut
aussi être réécrite comme
dv 2 2P
= . (3.24)
dt m
Pour P constante nous obtenons la solution
2P
v2 = t + v02 . (3.25)
m
On remarque l’effet non physique: v −→ ∞ lorsque t −→ ∞. Cela est dû á
l’absence de l’effet du frottement et de résistance de l’air en particulier.
physique numérique, ydri et al. 11

La forme la plus importante de frottement est la résistance de l’air. La force


due á la résistance de l’air (la force de traînée) est

Fdrag = −B1 v − B2 v 2 . (3.26)

Á faibles vitesses le premier terme domine tandis que pour les vitesses importantes,
il est le deuxiéme terme qui domine. Pour des vitesses trés faibles la dépendance
sur v est donnée par Fdrag = −B1 v qui est connue sous le nom de la loi de Stockes.
Pour des vitesses raisonnables la force de traînée est dominé par le second terme,
c’est á dire qu’il est donné pour la plupart des objets par

Fdrag = −B2 v 2 . (3.27)

Le coefficient B2 peut être calculée comme suit. La combinaison vélo-cycliste, qui


se déplace avec la vitesse v, pousse dans un temps dt une masse d’air donnée par
dmair = ρAvdt oú ρ est la densité de l’air et A est la section frontale. L’énergie
cinétique correspondante est

dEair = dmair v 2 /2. (3.28)

Ceci est égale au travail effectué par la force de traînée, c’est á dire

−Fdrag vdt = dEair . (3.29)

De ceci, nous obtenons

B2 = CρA. (3.30)

Le coefficient de traînée est C = 1/2. La force de traînée devient

Fdrag = −CρAv 2 . (3.31)

Tenant compte de la force due á la résistance de l’air, nous constatons qu la loi de


Newton devient
dv
m = F + Fdrag . (3.32)
dt
De maniére équivalente
dv P CρAv 2
= − . (3.33)
dt mv m
Cette équation ne peut pas être résolue exactement. L’algorithme d’Euler donne
la solution approchée
dv
v(i + 1) = v(i) + ∆t (i). (3.34)
dt
12 physique numérique, ydri et al.

En d’autres termes
CρAv 2 (i)
 
P
v(i + 1) = v(i) + ∆t − , i = 0, ..., N. (3.35)
mv(i) m

Cela peut aussi être mise sous la forme (avec v̂(i) = v(i − 1))

CρAv̂ 2 (i)
 
P
v̂(i + 1) = v̂(i) + ∆t − , i = 1, ..., N + 1. (3.36)
mv̂(i) m

Les temps associés

t ≡ t̂(i + 1) = i∆t , i = 1, ..., N + 1. (3.37)

La vitesse initiale v̂(1) au temps t(1) = 0 est connue.

1.4 Code de Fortran


Le mot "Fortran" vient de FORmula TRANslator. Il est le langage de programma-
tion qui est utilisé le plus dans les calculs et simulations numériques de la physique.
Nous allons donné ici un exemple de code en Fortran qui va nous aider á introduir
quleques caractéristiques importantes de Fortran.

Les instructions "program", "return" et "end" : Un programme de For-


tran commence avec l’instruction program et se termine par l’ instruction end.
L’instruction program nous permet de donner un nom au programme. L’ instruc-
tion end peut être précédée par l’instruction return. Le programme va ressembler
á

program radioactivity
c ici c est le code
return
end

Nous avons choisi le nom "radioactivity" pour notre programme. Le "c" dans la
deuxiéme ligne indique que la phrase " ici c’est le code" est seulement un com-
mentaire et non pas une partie du code.

Les instructions "subroutine" et "function": Autres "blocs fonctionnels"


qui peuvent être utiliser dans un programme de Fortran sont les subroutines et
les fonctions. Les subroutines sont inclus entre subroutine et end tandis que les
fonctions sont inclus entre function et end.
physique numérique, ydri et al. 13

Partie déclaration: Aprés l’instruction program vient la partie déclaration du


programme. Nous indiquons les variables et leur types qui seront utilisés dans le
programme. En Fortran, nous avons le type integer pour les variables entiers et le
type double precision pour les variables réels. Dans notre cas, les variables N̂ (i),
t̂(i), τ , ∆t, N0 sont réels alors que N et i sont des nombres entiers.

Tableau: Un tableau A de dimension K est une liste ordonnée de K variables


d’un type donné. Les élements de tableau sont notés A(1), A(2),...,A(K). Dans
notre exemple, N̂ (i) et t̂(i) sont des tableaux réels de dimension N + 1. Nous
déclarons que N̂ (i) et t̂(i) sont réels pour tout i = 1, ..., N + 1 en écrivant N̂ (1 :
N + 1) et t̂(1 : N + 1).

L’instruction "parameter": Parce que un tableau est déclarée au début du


programme, il doit avoir une taille fixe. En d’autres termes la limite supérieure
doit être une constante et non pas une variable. En Fortran une constante est
déclarée par l’instruction "parameter". Dans notre cas, la limite supérieure est
N + 1 et donc N doit être doit être donné une valeur fixe au début du programme
avec l’instruction "parameter".
En mettant toutes les déclarations ensemble nous obtenons

program radioactivity
integer i, N
parameter (N = 100)
doubleprecision N̂ (1 : N + 1), t̂(1 : N + 1), N0, ∆t, τ
c ici c est le code
return
end

Entrées : Les paramétres d’entrées de ce probléme sont N0 , τ et ∆t.

Partie instructions exécutables: Pour le probléme de la radioactivité la partie


principale du code est constitué des équations (2.19) et (2.20). Nous commençons
avec les quantités connues N̂ (1) = N0 á t̂(1) = 0 et nous générons via l’utilisation
successive de (2.19) et (2.20) N̂ (i) et t̂(i) pour tous i > 1.

Boucle "do"..."enddo": Cette procédure sera codée en utilisant la boucle


do...enddo qui commence avec l’instruction do et se termine avec l’instruction
enddo. Nous pouvons également indiquer un pas pas pour la boucle.
14 physique numérique, ydri et al.

Sorties et l’instruction "write": Le résultat du calcul peut être sauvegardé


dans un fichier en utilisant l’instruction write. Dans notre cas, le résultat est le
nombre de particules N̂ (i) et les temps t̂(i). l’instruction write s’écrit

write(10, ∗) t̂(i), N̂ (i)

Les données seront enregistrées dans un fichier appelé fort.10. La boucle do avec
l’instruction write s’écrit

N̂ (1) = N0
t̂(1) = 0
do i = 1, N + 1, 1
N̂ (i + 1) = N̂ (i) − (∆tN̂ (i))/τ
t̂(i + 1) = i∆t
write(10, ∗) t̂(i + 1), N̂ (i + 1)
enddo

Edition d’un fichier Fortran : Nous ouvrons un terminale sous Linux Ubuntu.
Nous tappons emacs pour ouvrir l’éditeur emacs. Nous entrons le code suivant

program radioactivity
integer i, N
parameter (N = 100)
doubleprecision tau, dt, t(1 : N + 1), NN(1 : N + 1), NN0

c paramétres d’ entrées

NN0 = 1000
tau = 1.0d0
dt = 0.01
NN(1) = NN0
t(1) = 0.0d0

c la boucle do

do i = 1, N + 1
NN(i + 1) = NN(i) − (dt ∗ NN(i))/tau
t(i + 1) = i ∗ dt
c l’ instruction write
write (10, ∗) t(i + 1), N(i + 1)
physique numérique, ydri et al. 15

enddo

return
end

Compilation et exécution: Nous sauvegardons notre fichier sous le nom code.f.


Nous compilons en tapant dans le terminale

f77 code.f

Nous pouvons également utiliser le compilateur gfortran au lieu de f77. Nous


exécutons le programme en tapant dans le terminale

./a.out

Nous obtenons le fichier de sortie fort.10. Nous pouvons l’ouvrir en utilisant emacs.

Visualisation: Nous ouvrons gnuplot. Pour tracer le fichier de données fort.10


nous tappons

plot ’fort.10’ u 1 : 2

Ceci va produire le graphique.

1.5 Mouvement d’un Projectile


Il y a deux forces agissant sur le projectile. La force de poids et la force de traînée.
La force de traînée est opposée á la vitesse. Dans ce cas, la loi de Newton est
donnée par

d~v
m = F~ + F~drag
dt
~v
= m~g − B2 v 2
v
= m~g − B2 v~v. (5.38)
16 physique numérique, ydri et al.

L’objectif est de déterminer la position du projectile et donc il faut résoudre les


deux équations
d~x
= ~v . (5.39)
dt
d~v
m = m~g − B2 v~v. (5.40)
dt
En projetant sur les deux axes (l’axe horizontal est x et l’axe vertical est y) on
obtient 4 équations de mouvement données par

dx
= vx . (5.41)
dt
dvx
m = −B2 vvx . (5.42)
dt
dy
= vy . (5.43)
dt
dvy
m = −mg − B2 vvy . (5.44)
dt
Nous rappelons la contrainte
q
v= vx2 + vy2 . (5.45)
L’approche numérique que nous allons employer pour résoudre les 4 équations du
mouvement (5.41)-(5.44) consiste á utiliser l’algorithme d’Euler. Cela donne la
solution approchée donnée par les équations
x(i + 1) = x(i) + ∆tvx (i). (5.46)

B2 v(i)vx (i)
vx (i + 1) = vx (i) − ∆t . (5.47)
m
y(i + 1) = y(i) + ∆tvy (i). (5.48)

B2 v(i)vy (i)
vy (i + 1) = vy (i) − ∆tg − ∆t . (5.49)
m
La contrainte est
q
v(i) = vx (i)2 + vy (i)2 . (5.50)
Dans les équations ci-dessus l’indice i est tel que i = 0, ..., N. La position initiale et
la vitesse initiale sont données, c’est á dire x(0), y(0), vx (0) et vy (0) sont connues.
Algorithmes d’Euler-Cromer et de
2
Verlet-Oscillateur Harmonique

2.1 Pendule Simple


Nous considérons un pendule simple, c’est á dire une particule de masse M sus-
pendue á un fil sans masse qui est accroché á un support rigide. Il y a deux forces
qui agissent sur la particule. Le poids et la tension de la corde. La deuxiéme loi
de Newton s’écrit
d2~s
m = m~g + T~ . (1.1)
dt
Le projection paralléle (par rapport au fil) est

0 = −mg cos θ + T. (1.2)

La projection perpendiculaire s’écrit

d2 s
m = −mg sin θ. (1.3)
dt2
θ est l’angle formé par le fil avec la verticale. Il est clair que s = lθ. La force
mg sin θ est une force de rappel qui signifie qu’elle est toujours dirigée vers la
position d’équilibre θ = 0. Cette force est alors toujours opposée au déplacement
18 physique numérique, ydri et al.

qui est á l’origine de signe moins dans l’équation ci-dessus. Nous obtenons en
utilisant s = lθ l’équation
d2 θ g
2
= − sin θ. (1.4)
dt l
Pour les valeurs petites de θ, nous avons sin θ ≃ θ. Nous obtenons
d2 θ g
2
= − θ. (1.5)
dt l
La solution est une fonction sinusoïdale du temps avec la fréquence Ω =
p
g/l.
Elle est donnée par

θ(t) = θ0 sin(Ωt + φ). (1.6)

Les constantes θ0 et φ dépendent du déplacement et vitesse initiales du pendule.


La fréquence est indépendante de la masse m et de l’amplitude de mouvement et
elle ne dépend que de la longueur l du fil.

2.2 Algorithme d’Euler


La premiére solution numérique est basé sur l’algorithme d’Euler. Elle se trouve
comme suit. Nous devons d’abord remplacer l’équation du mouvement (1.5) par
les deux équations différentielles du premier ordre suivantes

= ω. (2.7)
dt

dω g
= − θ. (2.8)
dt l
En utilisant la définition de la dérivé d’une fonction, á savoir
df f (t + ∆t) − f (t)
= , ∆t −→ 0. (2.9)
dt ∆t
Nous obtenons pour ∆t petit mais non nul les approximations

θ(t + ∆t) ≃ θ(t) + ω(t)∆t


g
ω(t + ∆t) ≃ ω(t) − θ(t)∆t. (2.10)
l
Nous considérons la discrétisation du temps

t ≡ t(i) = i∆t , i = 0, ..., N. (2.11)


physique numérique, ydri et al. 19

En d’autre termes

θ(t) = θ(i) , ω(t) = ω(i). (2.12)

Le nombre entier N va déterminer l’intervalle de temps total T = N∆t. La solution


numérique ci-dessus peut être réécrite comme

g
ω(i + 1) = ω(i) − θ(i)∆t
l
θ(i + 1) = θ(i) + ω(i)∆t. (2.13)

Nous faisons le changement i −→ i + 1 pour que l’entier i prend des valeurs dans
l’intervalle [1, N + 1]. Nous obtenons
g
ω(i) = ω(i − 1) − θ(i − 1)∆t
l
θ(i) = θ(i − 1) + ω(i − 1)∆t. (2.14)

Nous introduisons ω̂(i) = ω(i − 1) et θ̂(i) = θ(i − 1). Nous obtenons avec i =
1, ..., N + 1 les équations
g
ω̂(i + 1) = ω̂(i) − θ̂(i)∆t
l
θ̂(i + 1) = θ̂(i) + ω̂(i)∆t. (2.15)

En utilisant les valeurs de θ et ω au temps i, nous calculons les valeurs correspon-


dantes au temps i + 1. L’angle initial et la vitesse angulaire initiale θ̂(1) = θ(0) et
ω̂(1) = ω(0) sont connues. Ce processus sera répété jusqu’á ce que les fonctions θ
et ω sont déterminés pour tous les temps.

2.3 Algoritme d’Euler-Cromer


Il s’avére que l’algorithme d’Euler ci-dessus ne conserve pas l’énergie. En fait la
méthode d’Euler n’est pas un bon choix pour les systémes oscillatoires en générale.
Une simple modification de l’algorithme dû á Cromer va résoudre ce probléme de
non conservation de l’énergie. Cela va comme suit. Nous utilisons les valeurs de
l’angle et de la vitesse angulaire θ̂(i) et ω̂(i) au temps i pour calculer la vitesse
angulaire ω̂(i + 1) au temps i + 1. Cette étape est la même que dans l’algoritme
d’Euler. Cependant nous allons utiliser θ̂(i) et ω̂(i + 1) (et non pas ω̂(i)) pour
calculer θ̂(i + 1) au temps i + 1. Cette procédure, comme indiqué par Cromer
conserve l’énergie dans les problémes oscillatoire mieux que Euler. En d’autres
termes les équations (2.15) deviennent
20 physique numérique, ydri et al.

g
ω̂(i + 1) = ω̂(i) − θ̂(i)∆t
l
θ̂(i + 1) = θ̂(i) + ω̂(i + 1)∆t. (3.16)
L’erreur peut être calculée comme suit. De ces deux équations nous obtenons
g
θ̂(i + 1) = θ̂(i) + ω̂(i)∆t − θ̂(i)∆t2
l
d2 θ̂
= θ̂(i) + ω̂(i)∆t + |i ∆t2 . (3.17)
dt
En d’autres termes l’erreur par étape est toujours de l’ordre de ∆t2 . Cependant
l’algorithme d’Euler-Cromer fait mieux que l’algorithme d’Euler avec un mouve-
ment périodique.

2.4 Algorithme de Verlet


Nous considérons les développement de Taylor suivants
dθ 1 d2 θ 1 d3 θ
θ(ti + ∆t) = θ(ti ) + ∆t |ti + (∆t)2 2 |ti + (∆t)3 3 |ti + ... (4.18)
dt 2 dt 6 dt

dθ 1 d2 θ 1 d3 θ
θ(ti − ∆t) = θ(ti ) − ∆t|ti + (∆t)2 2 |ti − (∆t)3 3 |ti + ... (4.19)
dt 2 dt 6 dt
La somme de ces deux expressions est
d2 θ
θ(ti + ∆t) = 2θ(ti ) − θ(ti − ∆t) + (∆t)2 2
|ti + O(∆4). (4.20)
dt
Nous écrivons cette équation sous la form
g
θi+1 = 2θi − θi−1 − (∆t)2 θi . (4.21)
l
Cette équation est l’algorithme de Verlet pour l’oscillateur harmonique. D’abord
on remarque que l’erreur est proportionnelle à ∆t4 . Donc cette méthode est plus
précise que les méthodes d’Euler, d’Euler-Cromer et de Runge-Kutta de deuxième
ordre. Ensuite on remarque que dans cette méthode nous n’avons pas besoin de
calculer ω = dθ/dt. Troisièmement, nous remarquons que cette méthode ne peut
pas être lancer étant donné seulement les conditions initiales θ1 et ω1 mais nous
avons besoin aussi de savoir θ2 pour lancer l’algorithme. Généralement, on va
déterminer θ2 en utilisant la méthode d’Euler, à savoir
θ2 = θ1 + ∆t ω1 . (4.22)
Intégration Numérique
3
3.1 Approximation Rectangulaire
Nous considérons une intégrale unidimensionnelle de la forme

Z b
F = f (x)dx. (1.1)
a

En général cette intégral ne peut pas être calculer analytiquement. Toutefois, il est
trés simple á faire numériquement. Le point de départ est la définition de Riemann
de l’intégrale F comme l’aire oú la superficie sous la courbe de la fonction f (x) de
x = a jusqu’a x = b. Ceci est obtenu comme suit. Nous discrétisons l’intervalle
[a, b], c’est á dire nous coupons cette intervalle en N morceaus chacun de longueur
∆x. En d’autre termes nous introduisons les points

b−a
xn = x0 + n∆x , ∆x = (1.2)
N
Il est clair que x0 = a et xN = b. La définition de Riemann est alors donnée par
la limite suivante
 N
X −1 
F = lim  ∆x f (xn ) . (1.3)
∆x−→0 , N −→∞ , b−a=fixed
n=0
22 physique numérique, ydri et al.

La premiére approximation qui peut être faite est de supprimer la limite. Nous
obtenons l’approximation dite rectangulaire donnée par

N
X −1
FN = ∆x f (xn ). (1.4)
n=0

Les algorithmes d’intégration générale vont remplacer l’intégrale F par

N
X
FN = f (xn )wn . (1.5)
n=0

En d’autres termes, nous évaluons la fonction f (x) á N + 1 points dans l’intervalle


[a, b], puis nous prenons la somme des valeurs f (xn ) avec des pondérations corre-
spondantes wn . Par exemple dans l’approximation rectangulaire (1.4), les valeurs
f (xn ) sont additionnés avec des poids égaux wn = ∆x, n = 0, N − 1 et wN = 0. Il
est également clair que l’estimation Fn de l’intégrale F devient exact uniquement
dans la limite de grande N.

3.2 Méthode des Trapèzes


La régle oú bien la méthode des trapèze nous permet d’approcher l’intégrale par
une somme des superficies des trapézes. Dans le sous-intervalle [xn , xn+1 ] nous
remplaçons la fonction f (x) par une ligne droite reliant les deux points (xn , f (xn ))
et (xn+1 , f (xn+1 )). Le trapéze a comme côtés verticaux les deux droites x = xn et
x = xn+1 . La base est l’intervalle ∆x = xn+1 − xn . Il n’est pas difficile de nous
convaincre que la superficie de ce trapéze est

(f (xn+1 ) − f (xn ))∆x (f (xn+1 ) + f (xn ))∆x


+ f (xn )∆x = . (2.6)
2 2
L’intégrale F calculée en utilisant l’approximation des trapéze est donc donnée par
la somme des contributions de tous les sous-intervalle, á savoir

N −1  N −1 
X (f (xn+1 ) + f (xn ))∆x 1 X 1
TN = = f (x0 ) + f (xn ) + f (xN ) ∆x. (2.7)
n=0
2 2 n=1
2

On remarque que les poids sont donnés ici par w0 = ∆x/2, wn = ∆x, n =
1, ..., N − 1 et wN = ∆x/2.
physique numérique, ydri et al. 23

3.3 Approximation Parabolique oú la Régle de Simp-


son
Dans ce cas nous approchons la fonction dans le sous-intervalle [xn , xn+1 ] par une
parabole donnée par

f (x) = αx2 + βx + γ. (3.8)

La superficie correspondante est donc donnée par


Z xn+1  3 xn+1
αx βx2
2
dx(αx + βx + γ) = + + γx . (3.9)
xn 3 2 xn

Nous considérons maintenant l’intégrale


Z 1

dx(αx2 + βx + γ) = + 2γ. (3.10)
−1 3

On remarque que

f (−1) = α − β + γ , f (0) = γ , f (1) = α + β + γ. (3.11)

De maniére équivalente

f (1) + f (−1) f (1) − f (−1)


α= − f (0) , β = , γ = f (0). (3.12)
2 2
Ainsi
1
f (−1) 4f (0) f (1)
Z
dx(αx2 + βx + γ) = + + . (3.13)
−1 3 3 3

En d’autres termes, nous pouvons exprimer l’intégrale de la fonction f (x) =


αx2 +βx+γ sur l’intervalle [−1, 1] en termes des valeurs de cette fonction f (x) á x =
−1, 0, 1. De même on peut exprimer l’intégrale de f (x) sur les sous-intervalles ad-
jacentes [xn−1 , xn ] et [xn , xn+1 ] en termes des valeurs de f (x) á x = xn+1 , xn , xn−1 ,
á savoir

Z xn+1 Z xn+1
dx f (x) = dx(αx2 + βx + γ)
xn−1 xn−1
 
f (xn−1 ) 4f (xn ) f (xn+1 )
= ∆x + + . (3.14)
3 3 3
24 physique numérique, ydri et al.

En ajoutant les contributions de chaque paire de sous-intervalles adjacentes nous


obtenons l’intégrale compléte

N−2
2
 
X f (x2p ) 4f (x2p+1 ) f (x2p+2 )
SN = ∆x + + . (3.15)
p=0
3 3 3

Il est clair que nous devons avoir N (le nombre de sous-intervalles) pair. Nous
calculons
 
∆x
SN = f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + 2f (x4 ) + ... + 2f (xN −2 ) + 4f (xN −1 ) + f (xN ) .
3
(3.16)

Nous pouvons lire directement de cette expression les poids wn dans cette approx-
imation.
Nous rappelons maintenant l’approximation des trapézes donnée par
 N −1 
X ∆x
TN = f (x0 ) + 2 f (xn ) + f (xN ) . (3.17)
n=1
2

Nous rappelons également que N∆x = b − a est la longueur de l’intervalle total


qui est toujours maintenu fixe. Ainsi, en doublant le nombre de sous-intervalles,
nous réduisons par moitié la largeur, á savoir
 2N −1 
X ∆x
4T2N = 2f (x̂0 ) + 4 f (x̂n ) + 2f (x̂2N )
n=1
2
 N −1 N −1 
X X ∆x
= 2f (x̂0 ) + 4 f (x̂2n ) + 4 f (x̂2n+1 ) + 2f (x̂2N )
n=1 n=0
2
 N −1 N −1 
X X ∆x
= 2f (x0 ) + 4 f (xn ) + 4 f (x̂2n+1 ) + 2f (xN ) . (3.18)
n=1 n=0
2

Au-dessus, nous avons utilisé l’identification x̂2n = xn , n = 0, 1, ..., N − 1, N. Ainsi


 N
X −1 N
X −1 
4T2N − TN = f (x0 ) + 2 f (xn ) + 4 f (x̂2n+1 ) + f (xN ) ∆x̂
n=1 n=0
= 3SN . (3.19)
physique numérique, ydri et al. 25

3.4 Erreurs
Les erreurs dans les méthodes d’intégration numériques sont calculés comme suit.
Nous commençons avec le développement de Taylor
1
f (x) = f (xn ) + (x − xn )f (1) (xn ) + (x − xn )2 f (2) (xn ) + ... (4.20)
2!
Ainsi
xn+1
1 (1) 1
Z
dx f (x) = f (xn )∆x + f (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (4.21)
xn 2! 3!

Rectangulaire: L’erreur dans l’intervalle [xn , xn+1 ] dans l’approximation rect-


angulaire est
Z xn+1
1 1
dx f (x) − f (xn )∆x = f (1) (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (4.22)
xn 2! 3!
Cela est de l’ordre de 1/N 2 . Mais nous avons N sous-intervalles. Ainsi, l’erreur
totale est de l’ordre de 1/N.

Trapéze: L’erreur dans l’intervalle [xn , xn+1 ] dans l’approximation trapézoïdale


est
Z xn+1 Z xn+1
1
dx f (x) − (f (xn ) + f (xn+1 ))∆x = dx f (x)
xn 2 xn
1 1
− (2f (xn ) + ∆xf (1) (xn ) + (∆x)2 f (2) (xn ) + ...)∆x
2 2!
1 1 1 (2)
= ( − )f (xn )(∆x)3 + ... (4.23)
3! 2 2!
Ceci est de l’ordre 1/N 3 et donc l’erreur totale est de l’ordre de 1/N 2 .

Parabolic: Afin de calculer l’erreur dans l’intervalle [xn−1 , xn+1 ] dans l’approximation
parabolique, nous calculons
Z xn Z xn+1
2 2
dx f (x) + dx f (x) = 2f (xn )∆x + (∆x)3 f (2) (xn ) + (∆x)5 f (4) (xn ) + ...
xn−1 xn 3! 5!
(4.24)
Aussi, nous calculons
∆x 2 2
(f (xn+1 ) + f (xn−1 ) + 4f (xn )) = 2f (xn )∆x + (∆x)3 f (2) (xn ) + (∆x)5 f (4) (xn ) + ...
3 3! 3.4!
(4.25)
26 physique numérique, ydri et al.

Alors l’erreur dans l’approximation parabolique dans l’intervalle [xn−1 , xn+1 ] est
Z xn+1
∆x 2 2
dx f (x) − (f (xn+1 ) + f (xn−1 ) + 4f (xn )) = ( − )(∆x)5 f (4) (xn(4.26)
) + ...
xn−1 3 5! 3.4!

Ceci est de l’ordre de 1/N 5 . L’erreur totale est donc de l’ordre de 1/N 4 .
Algorithmes de Newton-Raphson et
4
Interpolation

4.1 Méthode de Dichotomie


Soit f est une certaine fonction. Nous sommes intéressés par les solutions (racines)
de l’équation

f (x) = 0. (1.1)
La Méthode de dichotomie (aussi la méthode de la bissection) fonctionne comme
suit. Nous commençons avec deux valeurs x+ et x− de x tel que

f (x− ) < 0 , f (x+ ) > 0. (1.2)


En d’autres termes la fonction f change signe dans l’intervalle entre x− et x+ et
donc il doit exister une racine entre x− et x+ . Si la fonction change de positif à
négatif lorsque nous augmentons x, nous concluons que x+ ≤ x− . Nous coupons
l’intervalle [x+ , x− ] au point
x+ + x−
x= . (1.3)
2
Si f (x)f (x+ ) > 0 alors x+ sera changé au point x autrement x− sera changé au
point x. Nous continuons ce processus jusqu’à ce que le changement de x devient
28 physique numérique, ydri et al.

insignifiant ou jusqu’à ce que l’erreur devient plus petite qu’une certaine tolérance.
L’erreur relative est définie par
x+ − x−
error = . (1.4)
x
Clairement l’erreur absolue e = xi − xf est réduit de moitié à chaque itération et
donc le taux de convergence de la régle de dichotomie est linéaire. C’est vraiment
lent.

4.2 Algorithme de Newton-Raphson


Nous commençons par une conjecture x0 . La nouvelle conjecture x est écrite
comme x0 plus une certaine correction inconnue ∆x, á savoir

x = x0 + ∆x. (2.5)

Ensuite, nous développons la fonction f (x) autour de x0 , á savoir


df
f (x) = f (x0 ) + ∆x |x=x0 . (2.6)
dx
La correction ∆x est déterminé par le point d’intersection de cette approximation
linéaire de f (x) avec l’axe x. Ainsi
df f (x0 )
f (x0 ) + ∆x |x=x0 = 0 =⇒ ∆x = − . (2.7)
dx (df /dx)|x=x0
La dérivée de la fonction f est requis dans ce calcul. Dans des problémes plus
compliqués, il est beaucoup plus simple d’évaluer la dérivée numériquement que
analytiquement. Dans ces cas, la dérivé peut être donné par l’approximation de la
différence avancée (avec δx pas nécessairement égal á ∆x)
df f (x0 + δx) − f (x0 )
|x=x0 = . (2.8)
dx δx
En résumé dans cette méthode nous prenons comme notre nouvelle conjecture x
l’intersection avec l’axe des x de la tangente de la fonction f (x) á la conjecture
précédente x0 . Le processus est répété jusqu’à ce que le changement de x devient
insignifiant.
Maintenant, nous calculons le taux de convergence de l’algorithme de Newton-
Raphson. A partir de xi la conjecture suivante est xi+1 donnée par
f (xi )
xi+1 = xi − . (2.9)
f ′ (x)
physique numérique, ydri et al. 29

L’erreur absolue à l’étape i est ǫi = x − xi , tandis que l’erreur absolue à l’étape


i + 1 est ǫi+1 = x − xi+1 où x est la racine réelle. Alors

f (xi )
ǫi+1 = ǫi + . (2.10)
f ′ (x)

En utilisant l’expansion de Taylor, nous avons

(x − xi )2 ′′
(2.11)

f (x) = 0 = f (xi ) + (x − xi )f (xi ) + f (xi ) + ...
2!
En d’autre termes
ǫ2i ′′
(2.12)

f (xi ) = −ǫi f (xi ) − f (xi ) + ...
2!
Par conséquent, l’erreur est donnée par
′′
ǫ2i f (xi )
ǫi+1 = − . (2.13)
2 f ′ (xi )

Cette convergence est quadratique ce qui est plus rapide que la régle de bissection.

4.3 Méthode Hybride


Nous pouvons combiner la certitude de la régle de bissection de trouver une racine
avec la convergence rapide de l’algorithme de Newton-Raphson dans un algorithme
hybride comme suit. D’abord il faut savoir que la racine est borné dans un certain
intervalle [a, c]. Nous pouvons par exemple utiliser une méthode graphique pour
déterminer ce fait. Ensuite, nous partons d’une certaine conjecture initiale b et
nous prenons une étape de Newton-Raphson comme suit

f (b)
(3.14)

b = b− .
f ′ (b)

Nous vérifions maintenant si cette étape est bornée dans l’intervalle [a, c]. En
d’autres termes, nous devons vérifier que

f (b)
(3.15)
′ ′
a≤b − ′ ≤c ⇔ (b − c)f (b) − f (b)≤0≤(b − a)f (b) − f (b).
f (b)

Par conséquent si (b − c)f (b) − f (b) (b − a)f (b) − f (b) < 0 alors l’étape de
′  ′ 

Newton-Raphson est accepté sinon on prendra plutôt une étape de bissection.


30 physique numérique, ydri et al.

4.4 Interpolation de Lagrange


Le développpement de Taylor nous permet d’approximer une fonction en un point x
si la fonction et ses dérivés sont connus dans un certain point voisin x0 . L’interpolation
de Lagrange tente de approximer la fonction en un point x si seulement les valeurs
de cette fonction dans plusieurs autres points sont connus. Ainsi, cette méth-
ode ne nécessite pas la connaissance des dérivés de la fonction. Nous partons du
développement de Taylor
1
(4.16)
′ ′′
f (y) = f (x) + (y − x)f (x) + (y − x)2 f (x) + ..
2!
Supposons que la fonction est connue en trois points x1 , x2 et x3 . Dans ce cas,
nous pouvons approcher la fonction f (x) par une fonction p(x) et écrire
1
(4.17)
′ ′′
f (y) = p(x) + (y − x)p (x) + (y − x)2 p (x).
2!
Nous avons
′ 1 ′′
f (x1 ) = p(x) + (x1 − x)p (x) + (x1 − x)2 p (x)
2!
′ 1 ′′
f (x2 ) = p(x) + (x2 − x)p (x) + (x2 − x)2 p (x)
2!
1
(4.18)
′ ′′
f (x3 ) = p(x) + (x3 − x)p (x) + (x3 − x)2 p (x).
2!
Nous pouvons trouver immédiatement
1 a2 a3
p(x) = f (x1 ) + f (x2 ) + f (x3 ). (4.19)
1 + a2 + a3 1 + a2 + a3 1 + a2 + a3
Les coefficients a2 et a3 résoudre les équations

a2 (x2 − x)2 + a3 (x3 − x)2 = −(x1 − x)2


a2 (x2 − x) + a3 (x3 − x) = −(x1 − x). (4.20)

Nous trouvons
(x1 − x)(x3 − x1 ) (x1 − x)(x2 − x1 )
a2 = , a3 = − . (4.21)
(x2 − x)(x2 − x3 ) (x3 − x)(x2 − x3 )

Ainsi
(x3 − x1 )(x2 − x1 )
1 + a2 + a3 = . (4.22)
(x2 − x)(x3 − x)
physique numérique, ydri et al. 31

Alors nous obtenons


(x − x2 )(x − x3 ) (x − x1 )(x − x3 ) (x − x1 )(x − x2 )
p(x) = f (x1 ) + f (x2 ) + f (x3(4.23)
).
(x1 − x2 )(x1 − x3 ) (x2 − x1 )(x2 − x3 ) (x3 − x1 )(x3 − x2 )
Ceci est un polynôme quadratique.
Soit x une variable indépendante avec les valeurs tabulées xi , i = 1, 2, ..., n..
La variable dépendante est une fonction f (x) avec fi valeurs tabulées fi = f (xi ).
Nous allons supposer qu’ on peut approximer f (x) par un polynôme de degré n−1,
á savoir

p(x) = a0 + a1 x + a2 x2 + ... + an−1 xn−1 . (4.24)

Un polynôme qui passe par les n points (xi , fi = f (xi )) a été donnée par Lagrange.
Il est donné par

p(x) = f1 λ1 (x) + f2 λ2 (x) + ... + fn λn (x). (4.25)

Yn x − xj
λi (x) = . (4.26)
j(6=i)=1 xi − xj

Nous remarquons

λi (xj ) = δij . (4.27)

n
X
λi (x) = 1. (4.28)
i=1

Le polynôme de Lagrange peut être utilisé pour ajuster l’ensemble du tableau


avec n égal au nombre de points dans le tableau. Mais il est préférable d’utiliser le
polynôme de Lagrange pour adjuster seulement une petite région du tableau avec
une petite valeur de n. En d’autres termes il est préférable d’utiliser plusieurs
polynômes pour couvrir le tableau et par consequent l’ajustement considéré est
locale et non pas globale.

4.5 Interpolation Spline Cubique


Nous considérons les n points (x1 , f (x1 )),(x2 , f (x2 )),...,(xn , f (xn )) dans le plan.
Dans chaque intervalle xj ≤x≤xj+1 , nous allons approximer la fonction f (x) avec
un polynôme cubique de la forme

p(x) = aj (x − xj )3 + bj (x − xj )2 + cj (x − xj ) + dj . (5.29)
32 physique numérique, ydri et al.

Nous supposons que

pj = p(xj ) = f (xj ). (5.30)

En d’autre termes les pj pour j = 1, 2, ..., n − 1 sont connues. De l’équation


ci-dessus, nous concluons que

d j = pj . (5.31)

Nous calculons

(5.32)

p (x) = 3aj (x − xj )2 + 2bj (x − xj ) + cj .

(5.33)
′′
p (x) = 6aj (x − xj ) + 2bj .

Ainsi nous obtenons en substituant x = xj dans p (x) le résultat


′′

′′
pj
bj = . (5.34)
2
En remplaçant x = xj+1 en p (x), nous obtenons le résultat
′′

′′ ′′
pj+1 − pj
aj = , hj = xj+1 − xj . (5.35)
6hj
En remplaçant x = xj+1 en p(x), nous obtenons

pj+1 = aj h3j + bj h2j + cj hj + pj . (5.36)

En utilisant les valeurs de aj et bj , nous obtenons


pj+1 − pj hj ′′
(5.37)
′′
cj = − (pj+1 + 2pj ).
hj 6
Alors
′′ ′′ ′′
pj+1 − pj pj pj+1 − pj
 
hj ′′
− (pj+1 + 2pj ) (x − xj ) + p(5.38)
′′
p(x) = (x − xj )3 + (x − xj )2 + j.
6hj 2 hj 6

En d’autres termes les polynômes sont déterminés á partir de pj et pj . Les pj sont


′′

connus donnés par pj = f (xj ). Il reste á déterminer pj . Nous prenons la dérivée


′′

de l’équation ci-dessus
′′ ′′
pj+1 − pj pj+1 − pj
 
′ 2 ′′ hj ′′ ′′
p (x) = (x − xj ) + pj (x − xj ) + − (pj+1 + 2pj ) .(5.39)
2hj hj 6
physique numérique, ydri et al. 33

Ceci est la dérivée dans l’intervalle [xj , xj+1 ]. Nous calculons


 
pj+1 − pj hj ′′
(5.40)
′ ′′
p (xj ) = − (pj+1 + 2pj ) .
hj 6
La dérivée dans l’intervalle [xj−1 , xj ] est
′′ ′′
pj − pj−1 pj − pj−1 hj−1 ′′
 
(pj + 2pj−1) (5.41)
′ ′′ ′′
p (x) = (x − xj−1 )2 + pj−1 (x − xj−1 ) + − .
2hj−1 hj−1 6
Nous calculons
′′ ′′
pj − pj−1 pj − pj−1 hj−1 ′′
 
(pj + 2pj−1) . (5.42)
′ ′′ ′′
p (xj ) = hj−1 + pj−1hj−1 + −
2 hj−1 6
En appariant les deux expressions pour p (xj ) nous obtenons

pj+1 − pj pj − pj−1
 
(5.43)
′′ ′′ ′′
hj−1 pj−1 + 2(hj + hj−1)pj + hj pj+1 = 6 − .
hj hj−1
Ce sont n − 2 équations puisque j = 2, ..., n − 1 pour les n inconnus pj . Nous
′′

avons besoin en plus de deux équations. Ces derniers sont obtenus en calculant la
dérivée premiére p (x) á x = x1 et x = xn . Nous obtenons les deux équations

6(p2 − p1 )
(5.44)
′′ ′′ ′
h1 (p2 + 2p1 ) = − 6p1 .
h1

6(pn − pn−1 )
(5.45)
′′ ′′ ′
hn−1 (pn−1 + 2pn ) = − + 6pn .
hn−1
Les n équations (5.43), (5.44) and (5.45) correspondent á un systéme tridiagonale
linéaire. En général p1 et pn ne sont pas connus. Dans ce cas nous pouvons utiliser
′ ′

la spline naturelle dans laquel la dérivée seconde s’annule au points d’extrémités


et donc
p2 − p1 pn − pn−1
(5.46)
′ ′
− p1 = − pn = 0.
h1 hn−1

4.6 Méthode des Moindres Carrés


Nous supposons que nous avons N points de données (x(i), y(i)). Nous voulons
adjuster ces données á une courbe linéaire, c’est á dire á la ligne droite yfit = mx+b.
Á cette fin, nous définissons la fonction
N
X N
X
∆= (y(i) − yfit (i))2 = (y(i) − mx(i) − b)2 . (6.47)
i=1 i=1
34 physique numérique, ydri et al.

L’objectif est de minimiser cette fonction par rapport á b et m. Nous avons


∂∆ ∂∆
=0, = 0. (6.48)
∂m ∂b
Nous obtenons la solution
2
P P P P
i j x(j)y(j) −
x(i) i x(i) j y(j)
b= . (6.49)
( i x(i))2 − N i x2i
P P

P P P
i x(i) j y(j) − N i x(i)y(i)
m= . (6.50)
( i x(i))2 − N i x2i
P P
Travaux Pratiques
5
5.1 Algorithme d’Euler- Resistance d’Air
Un cycliste conduit un vélo en ligne droite sur un terrain plat avec une vitesse v.
La force exercée par le cycliste sur le vélo est équivalent á une puissance constante
égale á 200 watt qui peut être maintenue pendant une heure. La force de résistance
de l’air agit contre le mouvement et elle est proportionnelle au carré de la vitesse,
á savoir
Fdrag = −CρAv 2 .
Dans cette equation ρ est la densité de l’air, C est le coefficient de traînée et A est
la section efficace de system cyclist+vélo. La 2eme pour ce system loi de Newton
prend la form

dv P CρAv 2
= − .
dt mv m
L’inconnue est la vitesse v comme une fonction du temps, c’est á dire v = v(t).
Dans cette partie de probléme nous prendrons C = 0.5.
L’approche numérique que nous allons considérer ici est basé sur la méthode
d’Euler. La solution approchée de l’équation différentielle ci-dessus selon la méth-
ode d’Euler est donné par les équations

CρAv̂ 2 (i)
 
P
v̂(i + 1) = v̂(i) + ∆t − . i = 1, ..., N + 1
mv̂(i) m
36 physique numérique, ydri et al.

t̂(i + 1) = i∆t , i = 1, ..., N + 1.


(1) Calculer la vitesse en fonction du temps dans le cas oú la résistance de l’air
est absent et puis dans le cas oú la résistance de l’air est présent. Qu’est-ce
que vous remarquez. Nous donnons les valeurs

m = 70kg , A = 0.33m2 , ρ = 1.2kg/m3 , ∆t = 0.1s , T = 200s.

La vitesse initiale est


v̂(1) = 4m/s , t̂(1) = 0.

(2) Qu’est-ce que vous remarquez si nous changeons le coefficient de traînée


et/ou la puissance. Qu’est-ce que vous remarquez si nous diminuons le pas
de temps.

5.2 Mouvement des Projectiles Sous l’Effet de la


Résistance de l’Air
Nous considérons le mouvement d’un projectile sous l’influence de la force de résis-
tance de l’air. Nous supposons que la force de résistance de l’air est proportionnelle
au carré de la vitesse avec un facteur de proportionnalité egale á B. La deuxiéme
loi de Newton donne les équations du mouvement suivantes
dx dvx
= vx , m = −Bvvx .
dt dt
dy dvy
= vy , m = −mg − Bvvy .
dt dt
La solution numérique de ces équations différentielles selon l’algorithme d’Euler
prend la forme suivante
Bv(i)vx (i)
vx (i + 1) = vx (i) − ∆t .
m
Bv(i)vy (i)
vy (i + 1) = vy (i) − ∆tg − ∆t .
m
q
v(i + 1) = vx2 (i + 1) + vy2 (i + 1).
x(i + 1) = x(i) + ∆t vx (i).
y(i + 1) = y(i) + ∆t vy (i).
Les valeurs initiales de la position et de la vitesse dans les directions x and y
correspond á i = 1 et i prend les valeurs de 1 á N.
physique numérique, ydri et al. 37

(1) Écrire un code de fortran qui implémente l’algorirthme d’Euler ci-dessus.

(2) Nous prenons les valeurs suivantes

B
= 0.00004m−1 , g = 9.8m/s2 .
m
v(1) = 700m/s , θ = 30 degree.
vx (1) = v(1) cos θ , vy (1) = v(1) sin θ.
N = 105 , ∆t = 0.01s.
Calculer la trajectoire du projectile avec et sans la résistance de l’air. Qu’est-
ce que vous remarquez.

(3) Nous pouvons déterminer la portée du projectile á l’aide de l’instruction


conditionnelle "if". Cette déclaration peut être ajouté á l’intérieur de la
boucle "do" comme suit

if(y(i + 1).le.0)exit.

Déterminer la portée du projectile avec et sans la résistance de l’air.

(4) Dans le cas oú la résistance de l’air est absent nous savons que la portée est
maximale lorsque l’angle initial est 45 degrés. Vérifier ce fait numériquement
en considérant plusieurs angles initiales. Plus précisément nous pouvons
ajouter une boucle "do" sur l’angle initial pour étudier la portée en fonction
de l’angle initial.

(5) Dans le cas oú la résistance de l’air n’est pas nulle calculer l’angle sous lequel
la portée est á son maximum.

5.3 Oscillateur Harmonique-Algorithmes d’Euler-


Cromer et de Verlet
Nous considérons un oscillateur harmonique simple composé d’une masse m á la
fin d’une chaîne de longueur l suspendu sous l’influence de la pesanteur g, c’est á
dire un pendule. Nous supposons un mouvement linéaire oú l’angle formé par le
pendule avec la verticale est de petite taille. L’équation du mouvement provenant
de la deuxiéme loi de Newton est
d2 θ g
+ θ = 0.
dt2 l
38 physique numérique, ydri et al.

Cette équation différentielle du second ordre est équivalente aux deux équations
différentielles du premier ordre donné par
dθ dΩ g
=Ω, = − θ.
dt dt l
Nous allons considérer la solution numérique donnée par l’algorithme d’Euler
g
Ωi+1 = Ωi − θi ∆t.
l
θi+1 = θi + Ωi ∆t.
Les autres solutions numériques que nous allons prendre en considération sont
donnés par les algorithmes d’Euler-Cromer and Verlet qui prennent la forme
g
Ωi+1 = Ωi − θi ∆t , θi+1 = θi + Ωi+1 ∆t , Euler − Cromer.
l
g
θi+1 = 2θi − θi−1 − θi (∆t)2 , Verlet.
l
(1) Écrire un code de fortran qui implémente les algorirthmes d’Euler, d’Euler-
Cromer et de Verlet qui sont expliquées ci-dessus.

(2) Calculer l’angle, la vitesse angulaire et l’énergie en fonction du temps. L’énergie


de l’oscillateur est donnée par
1 1g 2
E = Ω2 + θ .
2 2l
Nous prenons les valeurs

g = 9.8m/s2 , l = 1m .

Nous prenons le nombre d’itérations N et l’étape ∆t

N = 10000 , ∆t = 0.05s.

L’angle initiale et la vitesse angulaire initiale sont donnés par

θ1 = 0.1radian , Ω1 = 0.

Á l’aide de l’instruction conditionnelle "if" on peut limiter le temps de mou-


vement á 5 périodes comme suit

if(t(i + 1).ge.5 ∗ period) exit.


physique numérique, ydri et al. 39

(3) Comparer entre les énergies calculées par les methodes d’Euler et d’Euler-
Cromer. Qu’est-ce que vous observez et que pouvez-vous conclure.

(4) Répétez le calcul en utilisant Verlet. Remarquer que cette méthode ne peut
pas démarrer seulement á partir des valeurs initiales θ1 et Ω1 . Il faut aussi
donner l’angle θ2 qui peut être calculé á l’aide d’Euler, i.e.

θ2 = θ1 + Ω1 ∆t.

On remarque que l’algorithme de Verlet ne nécessite pas le calcul de la vitesse


angulaire. Mais afin de calculer l’énergie nous calculons la vitesse á partir
de l’expression
θi+1 − θi−1
Ωi = .
2∆t

5.4 Intégration Numériques


Nous considérons les intégrales á une dimension de la forme
Z b
I= dxf (x).
a

Nous sommes interessé dans le cas générique oú cette intégrale ne peut pas être
calculé explicitement. Ainsi il reste á notre disposition seulement l’approche
numérique qui va nous permettre d’obtenir une valeur approximative pour cette
intégrale. Les algorithmes que nous allons utiliser sont la méthode des rectangles,
la méthode des trapèzes et l’ approximation paraboliques. Dans toutes ces méth-
odes nous divisons le domaine d’intégration en N sous-intervalles de longueur ∆x
comme suite
b−a
xi = x0 + i∆x , i = 0, ..., N , ∆x = , x0 = a, xN = b.
N
La méthode des rectangles est
N
X −1
FN = ∆x f (xi ).
i=0

La méthode des trapézes est


 N −1 
1 X 1
TN = ∆x f (x0 ) + f (xi ) + f (xN ) .
2 i=1
2
40 physique numérique, ydri et al.

L’ approximation paraboliques (la régle de Simpson) est donnée pour N pair


N−2 N−2
2 2
 
∆x X X
SN = f (x0 ) + 4 f (x2i+1 ) + 2 f (x2i ) + f (xN ) .
3 i=0 i=0

Les erreurs numériques dans ces méthodes sont proportionnels á 1/N, 1/N 2 et
1/N 4 respectivement.
(1) Nous prenons l’intégrale
Z 1
I= f (x)dx ; f (x) = 2x + 3x2 + 4x3 .
0

Calculer la valeur de cette intégrale en utilisant la méthode des rectangles.


Comparer avec la valeur exacte.
Remarque: Coder la fonction en utilisant "subroutine" oú "function".

(2) Calculer l’erreur numérique en fonction de N. Comparer avec le résulat


théorique.

(3) Répétez le calcul en utilisant la méthode des trapézes et la régle de Simpson.

(4) Nous prenons maintenant les intégrales


Z π Z e Z +1  
2 1 1 ǫ
I= cos xdx , I = dx , I = lim dx.
0 1 x −1 ǫ−→0 π x2 + ǫ2

5.5 Algorithmes de Newton-Raphson


Une particule de masse m se déplacant dans un puits de potentiel de hauteur V
et de longueur 2a qui s’étend entre −a et +a. Nous sommes intéressés dans les
etats du systéme qui ont des énergies inférieures á V , i.e. les états liés. L’état du
systéme peut être pair ou impair. Les énergies associées avec les fonctions d’onde
paire sont les solutions de l’équation transcendante

α tan αa = β.
r r
2mE 2m(V − E)
α= 2
, β= .
~ ~2
Dans le cas d’un puits de potentiel infinie nous trouvons la solution
(n + 21 )2 π 2 ~2
En = , n = 0, 1....
2ma2
physique numérique, ydri et al. 41

Nous choisissons (en omettant les unités)

~ = 1 , a = 1 , 2m = 1.

Afin de trouver les énergies En numériquement nous utilisons l’algorithme de


Newton-Raphson qui nous permet de trouver les racines de toute équation f (x) = 0
comme suit. Á partir d’une proposition donnée x0 la premiére approximation de
la solution de l’equation f (x) = 0 est obtenu par le point d’intersection de la tan-
gente de la fonction f (x) en x0 avec l’axe des x. Nous appelons cette premiére
approximation x1 qui est donnée par l’équation

f (x0 )
x1 = x0 − .
f ′ (x0 )

En utilisant x1 nous répétons la même étape pour trouver la deuxiéme approxima-


tion et ainsi de suite. L’approximation xi+1 en termes de l’approximation xi est
donnée par
f (xi )
xi+1 = xi − ′ .
f (xi )

(1) Pour V = 10 déterminer le nombre de solutions en utilisant la méthode


graphique. Considérer les fonctions
r
β V
f (α) = tan αa , g(α) = = − 1.
α α2

(2) Trouver á l’aide de la méthode de Newton-Raphson les deux solutions avec


une tolérance 10−8 . Pour la premiére solution nous prenons le point de
départ α = π/a et pour la deuxiéme solution nous prenons le point de départ
α = 2π/a.

(3) Répéter pour V = 20.

(4) Trouver les 4 solutions pour V = 100. Utiliser la méthode graphique pour
déterminer le point de départ chaque fois.

(5) Répéter les questions précédentes en utilisant la méthode de dichotomie.


42 physique numérique, ydri et al.
Partie II
Le Systéme Solaire-Les Méthodes de
6
Runge-Kutta

6.1 Le Systéme Solaire: Le Probléme


Nous considérons le mouvement de la terre autour du soleil. Soit r la distance entre
le soleil et la terre et Ms et Me les masses du soleil et de la terre respectivement.
Nous négligeons l’effet des autres planétes et le mouvement du soleil (c’est á dire
nous supposons que ms >> me ). L’objectif est de calculer la position de la terre
comme une fonction du temps. Nous partons de la deuxiéme loi de Newton

d2~r GMe Ms
Me = − ~r
dt2 r3
GMe Ms ~
= − (xi + y~j). (1.1)
r3
Nous obtenons les deux équations

d2 x GMs
2
= − 3 x. (1.2)
dt r

d2 y GMs
2
= − 3 y. (1.3)
dt r
46 physique numérique, ydri et al.

Nous remplaçons ces deux équations différentielles du second ordre par les quatre
équations différentielles du premier ordre
dx
= vx . (1.4)
dt

dvx GMs
= − 3 x. (1.5)
dt r

dy
= vy . (1.6)
dt

dvy GMs
= − 3 y. (1.7)
dt r
Nous rappelons
p
r= x2 + y 2. (1.8)

6.2 Algorithmes de Euler et de Euler-Cromer


La discrétisation de temps est

t ≡ t(i) = i∆t , i = 0, ..., N. (2.9)

L’intervalle de temps total est T = N∆t. Nous définissons x(t) = x(i), vx (t) =
vx (i), y(t) = y(i), vy (t) = vy (i). Les équations (1.4), (1.5), (1.6), (1.7) et (1.8)
deviennent (avec i = 0, ..., N)
GMs
vx (i + 1) = vx (i) − x(i)∆t. (2.10)
(r(i))3

x(i + 1) = x(i) + vx (i)∆t. (2.11)

GMs
vy (i + 1) = vy (i) − y(i)∆t. (2.12)
(r(i))3

y(i + 1) = y(i) + vy (i)∆t. (2.13)

p
r(i) = x(i)2 + y(i)2 . (2.14)
physique numérique, ydri et al. 47

Ceci est l’algorithme d’Euler. Il peut aussi être réécrit avec x̂(i) = x(i − 1),
ŷ(i) = y(i − 1), v̂x (i) = vx (i − 1), v̂y (i) = vy (i − 1), r̂(i) = r(i − 1) et i = 1, ..., N + 1
comme
GMs
v̂x (i + 1) = v̂x (i) − x̂(i)∆t. (2.15)
(r̂(i))3

x̂(i + 1) = x̂(i) + v̂x (i)∆t. (2.16)

GMs
v̂y (i + 1) = v̂y (i) − ŷ(i)∆t. (2.17)
(r̂(i))3

ŷ(i + 1) = ŷ(i) + v̂y (i)∆t. (2.18)

p
r̂(i) = x̂(i)2 + ŷ(i)2 . (2.19)

Afin de maintenir la conservation de l’énergie, nous utilisons plutôt l’algorithme


d’Euler-Cromer. Nous allons calculer comme dans l’algorithme d’Euler la vitesse
au temps i + 1 en utilisant la position et la vitesse au temps i. Cependant, main-
tenant nous allons calculer la position au temps i + 1 en utilisant la position au
temps i et la vitesse au temps i + 1, á savoir
GMs
v̂x (i + 1) = v̂x (i) − x̂(i)∆t. (2.20)
(r̂(i))3

x̂(i + 1) = x̂(i) + v̂x (i + 1)∆t. (2.21)

GMs
v̂y (i + 1) = v̂y (i) − ŷ(i)∆t. (2.22)
(r̂(i))3

ŷ(i + 1) = ŷ(i) + v̂y (i + 1)∆t. (2.23)

6.3 L’algorithme de Runge-Kutta


6.3.1 La Méthode
Le probléme est encore d’essayer de résoudre l’équation différentielle du premier
ordre
dy
= f (x, y). (3.24)
dx
48 physique numérique, ydri et al.

Dans la méthode d’Euler, la fonction y = y(x) est approximée dans chaque inter-
valle [xn , xn+1 ] par la ligne droite

yn+1 = yn + ∆xf (xn , yn ). (3.25)

La pente de cette ligne est f (xn , yn ) qui est exactement donnée par la pente de la
fonction y = y(x) au début de l’intervalle [xn , xn+1 ].
Étant donné la valeur yn á xn , nous évaluons la valeur yn+1 á xn+1 en utilisant la
méthode de Runge-Kutta comme suit. D’abord le milieu de l’intervalle [xn , xn+1 ]
qui est á la valeur xn + 21 ∆x correspond á la valeur yn+1 calculé en utilisant la
méthode d’Euler, á savoir yn+1 = yn + 21 k1 oú

k1 = ∆xf (xn , yn ). (3.26)

Deuxiémement, la pente á ce point central (xn + 21 ∆x, yn + 12 k1 ) donnée par

k2 1 1
= f (xn + ∆x, yn + k1 ) (3.27)
∆x 2 2
est la valeur de la pente qui sera utilisée pour estimer la valeur correcte de yn+1 á
xn+1 en utilisant á nouveau la méthode d’Euler, á savoir

yn+1 = yn + k2 . (3.28)

L’erreur de cette méthode est proportionnelle á ∆x3 . Ceci peut être demontrée
comme suit. Nous avons
dy 1 d2 y
y(x + ∆x) = y(x) + ∆x + (∆x)2 2 + ...
dx 2 dx
1 d
= y(x) + ∆xf (x, y) + (∆x)2 f (x, y) + ...
 2 dx 
1 ∂f 1 ∂f
= y(x) + ∆x f (x, y) + ∆x + ∆xf (x, y) + ...
2 ∂x 2 ∂y
1 1
= y(x) + ∆xf (x + ∆x, y + ∆xf (x, y)) + O(∆x3 )
2 2
1 1
= y(x) + ∆xf (x + ∆x, y + k1 ) + O(∆x3 )
2 2
= 3
y(x) + k2 + O(∆x ). (3.29)

Notons enfin que cette méthode de Runge-Kutta est proprement dite la méthode
de Runge-Kutta du second ordre. La méthode de Runge-Kutta du premier ordre
est l’algorithme d’Euler. Les méthodes de Runge-Kutta d’ordres supérieurs ne
seront pas discutées ici.
physique numérique, ydri et al. 49

6.3.2 Example 1: L’Oscillateur Harmonique


Nous allons appliquer cette méthode au probléme de l’oscillateur harmonique.
Nous avons les équations différentielles



dt
dω g
= − θ. (3.30)
dt l
Les équations d’Euler s’écrit

θn+1 = θn + ∆tωn
g
ωn+1 = ωn − θn ∆t. (3.31)
l
D’abord, nous considérons la fonction θ = θ(t). Le point de milieu est (tn +
1
2
∆t, θn + 21 k1 ) oú k1 = ∆tωn . Pour la fonction ω = ω(t) le point de milieu est
(tn + 12 ∆t, ωn + 21 k3 ) oú k3 = − gl ∆tθn . Par conséquent, nous avons

k1 = ∆tωn
g
k3 = − ∆tθn . (3.32)
l
La pente de la fonction θ(t) á son point de milieu est
k2 1
= ωn + k3 . (3.33)
∆t 2
La pente de la fonction ω(t) á son point de milieu est
k4 g 1
= − (θn + k1 ). (3.34)
∆t l 2
La solution de Runge-Kutta est alors donnée par

θn+1 = θn + k2
ωn+1 = ωn + k4 . (3.35)

6.3.3 Example 2: Le Systéme Solaire


Prenons les équations
dx
= vx . (3.36)
dt
50 physique numérique, ydri et al.

dvx GMs
= − 3 x. (3.37)
dt r

dy
= vy . (3.38)
dt

dvy GMs
= − 3 y. (3.39)
dt r
D’abord, nous considérons la fonction x = x(t). Le point de milieu est (tn +
1
2
∆t, xn + 21 k1 ) oú k1 = ∆t vxn . Pour la fonction vx = vx (t) le point de milieu est
(tn + 12 ∆t, vxn + 21 k3 ) oú k3 = − GM
rn
s
∆t xn . Par conséquent, nous avons

k1 = ∆t vxn
GMs
k3 = − 3 ∆t xn . (3.40)
rn
La pente de la fonction x(t) au point de milieu est
k2 1
= vxn + k3 . (3.41)
∆t 2
La pente de la fonction vx (t) au point de milieu est
k4 GMs 1
= − 3 (xn + k1 ). (3.42)
∆t Rn 2
Ensuite, nous considérons la fonction y = y(t). Le point de milieu est (tn +
1
∆t, yn + 21 k1 ) oú k1 = ∆t vyn . Pour la fonction vy = vy (t) le point de milieu est
′ ′
2
(tn + 21 ∆t, vyn + 12 k3 ) oú k3 = − GM ∆t yn . Par conséquent, nous avons
′ ′
s
rn


k1 = ∆t vyn
GMs
(3.43)

k3 = − 3 ∆t yn .
rn
La pente de la fonction y(t) au point de milieu est

k2 1 ′
= vyn + k3 . (3.44)
∆t 2
La pente de la fonction vy (t) au point de milieu est

k4 GMs 1 ′
= − 3 (yn + k1 ). (3.45)
∆t Rn 2
physique numérique, ydri et al. 51

Dans les équations ci-dessus


r
1 1 ′
Rn = (xn + k1 )2 + (yn + k1 )2 . (3.46)
2 2
Les solutions de Runge-Kutta sont alors donnés par

xn+1 = xn + k2
vx(n+1) = vxn + k4

yn+1 = yn + k2
(3.47)

vy(n+1) = vyn + k4 .

6.4 Les lois de Kepler


Les lois de Kepler sont donnés par les trois énoncés suivants:
• Les planétes se déplacent sur des orbites elliptiques autour du soleil. Le soleil
réside dans l’un des deux foyers.
• La ligne joignant le soleil avec n’importe quelle planéte balaie des aires égales
dans des temps égaux.
• Étant donné un orbite avec une période T et un demi-grand axe a le rapport
T 2 /a3 est une constante.
La démonstration de ces trois lois se déroule comme suit. Nous travaillons en
coordonnées polaires. La deuxiéme loi de Newton s’écrit
GMs Me
Me~r¨ = − r̂. (4.48)
r2
˙
Nous utilisons r̂˙ = θ̇θ̂ et θ̂ = −θ̇r̂ pour obtenir ~r˙ = ṙr̂ + r θ̇θ̂. La decomposition de
la deuxiéme loi de Newton donne les deux équations

r θ̈ + 2ṙθ̇ = 0. (4.49)

GMs
r̈ − r θ̇2 = − . (4.50)
r2
Nous rappelons que le moment angulaire par unité de masse est définie par ~l =
~r × ~r˙ = r 2 θ̇r̂ × θ̂. Ainsi l = r 2 θ̇. L’équation (4.49) est précisément l’exigence que
le moment angulaire est conservé. En effet, nous calculons
52 physique numérique, ydri et al.

dl
= r(r θ̈ + 2ṙ θ̇) = 0. (4.51)
dt
Maintenant on remarque que l’aire balayée par le vecteur ~r dans un intervalle de
temps dt est dA = (r × rdθ)/2 oú dθ est l’angle parcouru par ~r au cours de dt.
Clairement
dA 1
= l. (4.52)
dt 2
En d’autres termes la planéte balaie des aires égales dans des temps égaux parce
que l est conservée. Ceci est la deuxiéme loi de Kepler.
La seconde équation (4.50) devient maintenant

l2 GMs
r̈ = 3
− 2 (4.53)
r r
En multipliant cette équation avec ṙ, nous obtenons
d 1 l2 GMs
E = 0 , E = ṙ 2 + 2 − . (4.54)
dt 2 2r r
Ceci est précisément la loi de la conservation de l’énergie. E est l’énergie par unité
de masse. La solution dt en termes de dr est donnée par
dr
dt = s   (4.55)
l2 GMs
2 E− 2r 2
+ r

Cependant dt = (r 2 dθ)/l. Ainsi


ldr
dθ = s   (4.56)
2
r 2 2 E − 2rl 2 + GMs
r

En intégrant cette équation, nous obtenons (avec u = 1/r)


ldr
Z
θ = s  
2 l2 GMs
r 2 E − 2r2 + r

du
Z
= − q . (4.57)
2E 2GMs
l2
+ l2
u − u2
physique numérique, ydri et al. 53

Cette intégrale peut être calculée explicitement. Nous obtenons


s
2l2 E
 
u−C GMs
(4.58)

θ = − arccos +θ , e= 1+ 2 2 , C = 2 .
eC G Ms l

En inversant cette équation, nous obtenons une équation d’un ellipse avec excen-
tricité e parce que E < 0, á savoir
1
(4.59)

= C(1 + e cos(θ − θ )).
r
Ceci est la premiére loi de Kepler. L’angle sous lequel r est maximale est θ−θ = π.

Cette distance est précisément (1 + e) oú a est le demi-grand axe de l’ellipse parce


que ea est la distance entre le soleil qui est á l’un des deux foyers et le centre de
l’ellipse. Ainsi nous obtenons la relation

1 l2
(1 − e2 )a = = . (4.60)
C GMs
De l’équation (4.52), nous pouvons obtenir la troisiéme loi de Kepler. En
intégrant les deux côtés de l’équation sur une seule période T , puis en prenant le
carré, nous arrivons á
1
A2 = l2 T 2 . (4.61)
4
A est la surface de l’ellipse.√ Ainsi A = πab oú le demi-petit axe b est liée au
demi-grand axe a par b = a 1 − e2 . Alors
1
π 2 a4 (1 − e2 ) = l2 T 2 . (4.62)
4
En utilisant l’équation (4.60), nous obtenons la formule souhaitée

T2 4π 2
= . (4.63)
a3 GMs

6.5 Loi de l’Inverse Carré et Stabilité des Orbites


Un objet avec une masse génère un champ de gravitation. En d’autres termes des
lignes de champ de gravitation émanera de l’objet et rayonnent vers l’extérieur
á l’infini. Le nombre de lignes de champ N est proportionnelle á la masse. La
densité des lignes de champ traversant une sphére de rayon r qui entoure cet objet
est donnée par N/4πr 2 . Telle est l’origine de la loi du carré inverse.
54 physique numérique, ydri et al.

Ainsi tout autre objet placé dans ce champ gravitationnel subira une force de
gravitation proportionnelle au nombre de lignes de champ qui pass au travers. Si
la distance entre ce deuxiéme objet et la source est augmentée, la force deviendra
plus faible parce que le nombre de lignes de champ qui pass au travers diminue á
mesure que nous allons plus loin de la source.
Il sera l’un des éléments les plus importants de nos simulations numériques
de vérifier la loi du carré inverse de maniére aussi précise que possible. En par-
ticulier, nous aimerions faire remarquer que les orbites des planétes deviennent
généralement instables pour autre lois de force.

6.6 Unités Astronomiques et Conditions Initiales


Pour les simulations numériques, il est important d’utiliser les unités appropriées.
Il est clair que les distances et masses astronomiques dans le systéme interna-
tional SI seront inappropriées pour les simulations numériques, car elles sont
généralement données par des grands nombres. Nous allons utiliser les unités
astronomiques. La distance sera mesurée en unités astronomiques (UA) alors que
le temps sera mesuré en années (yr). Une unité astronomique de longueur (1 UA)
est égale á la distance moyenne entre la Terre et le Soleil, á savoir 1 UA = 1.5×1011
m . L’unité astronomique de la masse peut être trouvé comme suit. En supposant
une orbite circulaire, nous avons

Me v 2 GMs Me
= . (6.64)
r r2
De façon équivalente

GMs = v 2 r. (6.65)

Le rayon est r = 1 UA. La vitesse de la Terre est v = 2πr/1yr = 2π UA / yr. D’oú

GMs = 4π 2 UA3 /yr2 . (6.66)

Pour les simulations numériques, il est également important de déterminer les


conditions initiales correctes. En particulier pour le probléme de la précession du
périhélie de Mercure. L’orbite de Mercure est connu pour être une ellipse avec
l’excentricité e = 0.206 et de rayon (demi-grand axe) a = 0.39 UA avec le Soleil
á l’un des foyers. La distance entre le Soleil et le centre est ea. La premiére
condition initiale est x0 = r1 , y0 = 0 oú r1 est la distance maximale entre Mercure
et le Soleil, c’est á dire r1 = (1 + e)a = 0.47 UA. La deuxiéme condition initiale
est la vitesse (0, v1 ) qui peut être calculé en utilisant la conservation de l’énergie
physique numérique, ydri et al. 55

et la conservation du moment angulaire. Par exemple, en comparant √ avec le point


(0, b) sur l’orbite oú b est le demi-petit axe, c’est á dire b = a 1 − e2 , la vitesse
(v2 , 0) á ce point peut être obtenu en termes de (0, v1 ) á partir de la conservation
du moment angulaire comme suit
r1 v1
r1 v1 = bv2 ⇔ v2 = . (6.67)
b
La conservation de l’énergie s’écrit

GMs Mm 1 GMs Mm 1
− + Mm v12 = − + Mm v22 . (6.68)
r1 2 r2 2

Dans l’équation ci-dessus r2 = e2 a2 + b2 est la distance entre le Soleil et Mercure
lorsque au point (0, b). En substituant la valeur de v2 , nous obtenons une équation
pour v1 . Elle est donnée par
r
GMs 1 − e
v1 = = 8.2 AU/yr. (6.69)
a 1+e

6.7 Précession du Périhélie de Mercure


L’orbite de Mercure est elliptique. L’orientation des axes de l’ellipse tourn avec le
temps. Il s’agit de la précession du périhélie (le point de l’orbite le plus proche
du Soleil) de Mercure. Le périhélie de Mercure fait un tour chaque 23000 ans.
C’est environ 566 secondes d’arc par siécle. Les forces gravitationnelles des autres
planétes (Jupiter, en particulier) conduire á une précession de 523 secondes d’arc
par siécle. Les 43 secondes d’arc par siécle restantes sont comptabilisés par la
relativité générale.
Pour les objets trés proche (comme le Soleil et le Mercure), la force de gravité
prédit par la relativité générale s’écarte de la loi du carré inverse. Cette force est
donnée par

GMs Mm α
F = 2
(1 + 2 ) , α = 1.1 × 10−8UA2 . (7.70)
r r
Nous aimerions, á la fin de cette section, de discuter quelques résultats numériques
obtenus avec la méthode de Runge-Kutta pour différentes valeurs de α. Nous
prenons le pas de temps et le nombre d’itérations dt = 0.0001 et N = 20000. Nous
trouvons que l’angle de la ligne joignant le Soleil et le Mercure avec l’axe horizontal
lorsque le Mercure est au périhélie change de façon linéaire avec le temps. Nous
obtenons les taux suivants de precession
56 physique numérique, ydri et al.


α = 0.0008 , = 8.414 ± 0.019
dt

α = 0.001 , = 10.585 ± 0.018
dt

α = 0.002 , = 21.658 ± 0.019
dt

α = 0.004 , = 45.369 ± 0.017. (7.71)
dt
Ainsi

= aα , a = 11209.2 ± 147.2 degres/(an.α). (7.72)
dt
En extrapolant á la valeur fournie par la relativité générale, á savoir α = 1.1×10−8
nous obtenons

= 44.4 ± 0.6 sec d′ arc/siecle. (7.73)
dt
Le Chaos: Pendule Chaotique
7
7.1 Equation du Mouvement
Nous partons de l’équation du mouvement d’un pendule simple donnée par
d2 θ
ml = −mg sin θ. (1.1)
dt2
Nous considérons l’effet de la résistance de l’air sur le mouvement de la masse m.
Nous allons supposer que la force de résistance de l’air est donnée par la loi de
Stokes. Nous obtenons
d2 θ dθ
ml = −mg sin θ − mlq . (1.2)
dt2 dt
La résistance de l’air va éventuellement drainer toute l’énergie du pendule. Afin
de maintenir le mouvement contre l’effet d’amortissement de la résistance de l’air,
nous allons ajouter une force motrice. Nous allons choisir une force périodique
avec une amplitude mlFd et une fréquence ωD . Cette force provient, par exemple,
si l’on applique un champ électrique périodique avec une amplitude ED et une
fréquence ωD sur la masse m qui est supposé avoir une charge électrique q, c’est
á dire mlFd = qED . Elle peut également provenir des oscillations périodiques
de point de pivot du pendule. En ajoutant la force motrice nous obtenons alors
l’équation du mouvement
d2 θ dθ
ml 2
= −mg sin θ − mlq + mlFD cos ωD t. (1.3)
dt dt
58 physique numérique, ydri et al.

La fréquence naturelle des oscillations est donnée par la fréquence du pendule


simple, á savoir
r
g
ω0 = . (1.4)
l
Nous prendrons toujours ω0 = 1, á savoir l = g. L’équation du mouvement devient
d2 θ 1 dθ
2
+ + sin θ = FD cos ωD t. (1.5)
dt Q dt
Le coefficient Q = 1/q est connu sous le nom de facteur de qualité. Il mesure
le nombre d’oscillations fait par le pendule avant son énergie est drainée. Nous
allons écrire l’équation ci-dessus qui est une équation différentielle de second ordre
comme deux équations différentielles du premier ordre, á savoir

=Ω
dt
dΩ 1
= − Ω − sin θ + FD cos ωD t. (1.6)
dt Q
Ce systéme d’équations différentielles n’admettre pas une solution analytique sim-
ple. L’approximation linéaire correspond á des oscillations de faible amplitude, á
savoir

sin θ ≃ θ. (1.7)

Les équations différentielles deviennent linéaire donnée par



=Ω
dt
dΩ 1
= − Ω − θ + FD cos ωD t. (1.8)
dt Q
Ou de façon équivalente
dθ2 1 dθ
2
=− − θ + FD cos ωD t. (1.9)
dt Q dt
Pour Fd = 0 la solution est donnée par
  r
1 θ(0)  t
− 2Q 1
θ = θ(0) cos ω∗ t + Ω(0) + sin ω∗ t e , ω∗ = 1 − . (1.10)
ω∗ 2Q 4Q2
Pour Fd 6= 0 une solution particuliére est donnée par

θ∞ = FD (a cos ωD t + b sin ωD t). (1.11)


physique numérique, ydri et al. 59

Nous trouvons
1 1 ωD
a= 2
ωD
2
(1 − ωD ) ,b = 2
ωD
. (1.12)
2 2
(1 − ωD ) + 2 2
(1 − ωD ) + Q
Q2 Q2

Pour Fd 6= 0 la solution générale est donnée par

θ = θ∞ + θt . (1.13)

2 2
FD (1 − ωD 1 FD (1 − 3ωD
    
) 1 θ(0) ) t
θt = θ(0) − 2 cos ω∗ t + Ω(0) + − 2 sin ω∗ t e− 2Q .
2 2
(1 − ωD ) +
ωD ω∗ 2Q 2Q (1 − ω 2 )2 + D2
ω
Q2 D Q
(1.14)

Les deux derniers termes dépendent des conditions initiales et disparaissent de


façon exponentielle pour les temps trés grandes, c’est á dire qu’ils sont transi-
toires. Le mouvement asymptotique est donnée par θ∞ . Ainsi, pour t −→ ∞ nous
obtenons

θ = θ∞ = FD (a cos ωD t + b sin ωD t). (1.15)

Aussi pour t −→ ∞ nous obtenons



Ω = = FD ωD (−a sin ωD t + b cos ωD t). (1.16)
dt
Nous calculons dans la limite des temps grandes t −→ ∞
Ω2 FD2
θ2 + 2
= F̃D
2
= FD
2
(a2
+ b2
) = 2 . (1.17)
ωD 2 2
(1 − ωD ) +
ωD
Q2

En d’autres termes l’orbite du systéme dans l’espace de phase est une ellipse. Le
mouvement est périodique avec une période égale á la période de la force motrice.
Cette ellipse est aussi appelé un attracteur périodique parce quelles que soient les
conditions initiales la trajectoire du systéme va tendre á cette ellipse dans la limite
des temps grandes t −→ ∞.
Remarquons également que le déplacement angulaire maximal est F̃D . La fonc-
tion F̃D = F̃D (ωD ) présente un comportement de résonance quand la fréquence
approche la fréquence naturelle qui est équivalente á la limite ωD −→ 1. Dans
cette limite F̃D = QFd . La largeur de la fenêtre de résonance est proportionnelle
á 1/Q. Par conséquent pour Q −→ ∞ nous observons que F̃D −→ ∞ quand
ωD −→ 1 tandis que pour Q −→ 0 nous observons F̃D −→ 0 quand ωD −→ 1.
En général, la réponse asymptotique de tout systéme linéaire á une force externe
périodique est périodique avec la même période que la force motrice. En outre,
60 physique numérique, ydri et al.

lorsque la fréquence de la force motrice externe approche l’une des fréquences


propres, la réponse présente un comportement de résonance.
L’élément essentiel dans la dérivation des résultats ci-dessus est la linéarité du
systéme dynamique. Comme nous le verrons briévement le mouvement périodique
n’est pas la seule réponse asymptotique possible d’un systéme dynamique á une
force motrice périodique.

7.2 Algorithmes Numériques


Les équations du mouvement sont

=Ω
dt
dΩ 1
= − Ω − sin θ + F (t). (2.18)
dt Q
La force motrice externe est périodique donnée par l’une des expressions suivantes
F (t) = FD cos ωD t. (2.19)

F (t) = FD sin ωD t. (2.20)

Algorithme d’Euler-Cromer
Numériquement, nous pouvons employer l’algorithme d’Euler-Cromer, afin de ré-
soudre ce systéme d’équations différentielles. D’abord nous choisissons les condi-
tions initiales, par exemple
Ω(1) = 0
θ(1) = 0
t(1) = 0. (2.21)
Pour i = 1, ..., N + 1 nous utilisons
 
1
Ω(i + 1) = Ω(i) + ∆t − Ω(i) − sin θ(i) + F (i)
Q
θ(i + 1) = θ(i) + ∆t Ω(i + 1)
t(i + 1) = ∆t i. (2.22)

F (i) ≡ F (t(i)) = FD cos ωD ∆t(i − 1). (2.23)

F (i) ≡ F (t(i)) = FD sin ωD ∆t(i − 1). (2.24)


physique numérique, ydri et al. 61

Algorithme de Runge-Kutta
Afin d’atteindre une meilleure précision nous employons l’algorithme de Runge-
Kutta. Pour i = 1, ..., N + 1, nous utilisons

k1 = ∆t Ω(i)
 
1
k3 = ∆t − Ω(i) − sin θ(i) + F (i)
Q
 
1
k2 = ∆t Ω(i) + k3
2
     
1 1 1 1
k4 = ∆t − Ω(i) + k3 − sin θ(i) + k1 + F (i + )
Q 2 2 2
(2.25)

θ(i + 1) = θ(i) + k2
Ω(i + 1) = Ω(i) + k4
t(i + 1) = ∆t i. (2.26)

F (i) ≡ F (t(i)) = FD cos ωD ∆t(i − 1). (2.27)

F (i) ≡ F (t(i)) = FD sin ωD ∆t(i − 1). (2.28)

1 1 1
F (i + ) ≡ F (t(i) + ∆t) = FD cos ωD ∆t(i − ). (2.29)
2 2 2

1 1 1
F (i + ) ≡ F (t(i) + ∆t) = FD sin ωD ∆t(i − ). (2.30)
2 2 2

7.3 Chaos
7.3.1 Effet Papillon:Sensibilité aux Conditions Initiales
La solution dans le régime linéaire (faible amplitude) s’écrit

θ = θ∞ + θt . (3.31)

Le régime transitoire est de la forme

θt = f (θ(0), Ω(0))e−t/2Q . (3.32)


62 physique numérique, ydri et al.

Cela tend á zéro pour les temps larges t. L’asymptotique est donc donnée par

θ∞ = FD (a cos ωD t + b sin ωD t). (3.33)

Le mouvement dans l’espace de phase est périodique avec une période égale á la
période de la force motrice. L’orbite dans l’espace de phase est précisément une
ellipse de la forme
Ω2∞
2
θ∞ + 2
= FD2 (a2 + b2 ). (3.34)
ωD
Nous considérons une perturbation des conditions initiales. Nous pouvons imag-
iner que nous avons deux pendules A et B avec conditions initiales légérement
différentes. Alors la différence entre les deux trajectoires est

δθ = δf (θ(0), Ω(0))e−t/2Q . (3.35)

Encore une fois cela tend á zéro pour les temps larges. Si nous traçons ln δθ en
fonction du temps, nous trouvons une ligne droite avec une pente négative. Le
mouvement asymptotique n’est pas sensible aux conditions initiales. Il converge
pour les temps larges vers θ∞ quelle que soit les conditions initiales. La courbe
θ∞ = θ∞ (ω∞ ) est appelé un attracteur (périodique). La raison est parce que
toute trajectoire perturbée va décroître de maniére exponentielle dans le temps á
l’attracteur.
Pour voir un comportement chaotique, nous pouvons par exemple augmenter
Q gardant tout le reste fixée. Nous observons que la pente de la droite ln δθ = λt
commence á diminuer jusqu’á ce qu’elle devient positif á une certaine valeur de Q.
A cette valeur la variation entre les deux pendules augmente de façon exponentielle
avec le temps. C’est le régime chaotique. La valeur de λ = 0 est la valeur oú le
chaos commence. Le coefficient λ est appelé exposant de Lyapunov.
Le pendule chaotique est un systéme déterministe (car il obéit á des équa-
tions différentielles ordinaires), mais il n’est pas prévisible dans le sens que, étant
donné deux pendules identiques, leurs mouvements divergent l’un de l’autre dans
le régime chaotique s’il y a la moindre erreur dans la détermination de leurs con-
ditions initiales. Cette hyper sensibilité aux conditions initiales est connu sous le
nom de l’effet papillon et pourrait être pris comme la définition du chaos lui-même.
Toutefois, le mouvement du pendule chaotioc n’est pas aléatoire. Cela peut
être vu en inspectant les sections de Poincaré.

7.3.2 Section de Poincaré et Attractors


Le mouvement périodique du systéme linéaire avec une période égale á la période de
la force motrice est appelé un mouvement de période 1. Dans ce cas, la trajectoire
physique numérique, ydri et al. 63

se répète exactement une fois chaque période. C’est le seul mouvement possible
dans la limite de faible amplitude.
En général, un mouvement de période N correspond á une orbite du systéme
dynamique qui se répète chaque N périodes de la force extérieure. Ces orbites
existent dans le régime non-linéaire du pendule.
La section de Poincaré est définie comme suit. Nous tracons dans l’espace des
phases θ −Ω un seul point par période de la force motrice extérieure. Nous tracons
par exemple (θ, Ω) pour

ωD t = φ + 2πn. (3.36)
L’angle φ est appelée la phase de Poincaré et n est un entier. Pour un mouvement
de période 1 la section de Poincaré se compose d’un seul point. Pour un mouvement
de période N la section de Poincaré se compose de N points.
Ainsi, dans le régime linéaire si nous tracons (θ, Ω) pour ωD t = 2πn on obtient
un seul point, puisque le mouvement est périodique de période égale á celle de la
force motrice. Cette section de Poincaré est également un attracteur puisque les
orbites de tous les pendules qui ont presque les mêmes conditions initiales vont
converger sur ce point.
Dans le régime chaotique la section de Poincaré est un attracteur connu sous
le nom d’attracteur étrange. C’est une courbe compliquée qui pourrait avoir une
structure fractale et les orbites de tous les pendules qui ont presque les mêmes
conditions initiales vont converger sur cette courbe.

7.3.3 Bifurcations: Doublement de Période


Dans le cas du pendule chaotique nous allons rencontré entre le régime linéaire et
l’émergence du chaos le phénomènes de doublement de période. Dans le régime
linéaire, la section de Poincaré est un point P qui correspond á un mouvement de
période 1 avec une période égale á la période de la force motrice TD = 2π/ωD .
La coordonnée θ ou Ω de ce point P va tracer une ligne quand nous augmentons
le facteur de qualité Q tout en conservant tous le autres paramétres fixés. Nous
finirons par atteindre une valeur Q1 de Q, oú cette ligne se divise en deux lignes.
En regardant plus prés, nous constatons que á Q1 le mouvement devient de période
2, c’est á dire la période devient égale á 2TD .
Dans un mouvement oú la période est TD (au-dessous de Q1 ), nous obtenons
la même valeur de θ chaque fois t = mTD . Nous aurons donc le même point dans
la section de Poincaré chaque fois t = 2nπ/ωD = nTD . Dans un mouvement oú la
période est 2TD (á Q1 ), nous obtenons la même valeur de θ chaque fois t = 2mTD .
Par conséquent la valeur de θ aux moments t = mTD est différente et donc nous
obtenons deux points dans la section de Poincaré.
64 physique numérique, ydri et al.

Quand nous augmentons Q le mouvement devient périodique avec une période


égale á 4TD , puis avec période égale 8TD et ainsi de suite. Le mouvement avec une
période NTD avec N = 2N et N = 0, 1, 2, ... est appelée mouvement de période
N. La section de Poincaré correspondante se compose de N points distincts.
Le digaramme de θ en fonction de Q est appelé un diagramme de bifurcation. Il
a une structure fractale. Nous remarquons ici que normalement dans les oscillations
ordinaires nous obtenons des harmoniques avec des périodes égales á la période
de la force motrice divisé par N = 2N . Mais dans ce cas, nous avons obtenu
des sous-harmoniques avec des périodes égales á la période de la force motrice fois
N = 2N . Ceci est trés caractéristique du chaos. En fait le comportement chaotique
correspond á la limite N −→ ∞. En d’autres termes le chaos est le mouvement
de période N −→ ∞ qui pourrait être considéré comme une autre définition du
chaos.

7.3.4 Rapport de Feigenbaum


Soit QN la valeur critique de Q au-dessus duquel la N −iéme bifurcation est dé-
clenchée. En d’autres termes QN est la valeur oú la transition vers le mouvment
de période N = 2N se produire. Nous définissons le rapport de Feigenbaum par
QN −1 − QN −2
FN = . (3.37)
QN − QN −1
Il peut être démontré que FN −→ F = 4.669 quand N −→ ∞. Il s’agit d’un
rapport universel appelé le rapport de Feigenbaum qui caractérise de nombreux
systémes chaotiques qui souffrent d’une transition vers le chaos par l’intermédiaire
d’une série infinie de bifurcations associées au doublement de période. L’équation
ci-dessus peut alors être réécrite sous la forme
N −2
X 1
QN = Q1 + (Q2 − Q1 ) (3.38)
j=0
Fj

Nous allons définir le point d’accumulation Q∞ par


F
Q∞ = Q1 + (Q2 − Q1 ) (3.39)
F −1
C’est lá oú le chaos se produire. Dans le diagramme de bifurcation, la région
chaotique est une région solide noir.

7.3.5 Brisure Spontanée de Symétrie


Le processus de bifurcation est associée á un phénomène profond connu sous le
nom de brisure spontanée de symétrie. La premiére bifurcation (doublement de
physique numérique, ydri et al. 65

période) correspond á la brisure de la symétrie t −→ t + TD . Le régime linéaire


respecte cette symétrie. Cependant le mouvement de période 2 et en général les
mouvements de périodes N avec N > 2 ne respectent pas cette symétrie.
Il y a un autre genre de brisure spontanée de symétrie qui se produit dans le
pendule chaotique et qui est associé á un diagramme de bifurcation. Ceci se déroule
déjá dans la région de mouvement de période 1 oú on observe la brisure spontanée
de la symétrie spatiale (parité) θ −→ −θ. En effet, il existe des solutions des
équations du mouvement favorisant soit la région gauche ou la région droite de la
verticale du pendule. En d’autres termes, le pendule chaotique dans ces solutions
passent une grande partie de son temps soit dans la région á la gauche (θ < 0)
ou dans la région á la droite (θ > 0) de la verticale du pendule. Cette brisure
de symétrie gauche-droite peut être obtenue par une augmentation progressive de
Q. Nous allons atteindre á partir d’une solution symétrique entre gauche et droite
mais avec des conditions initiales différentes, soit la solution favorisant la gauche
ou la solution favorisant la droite. La symétrie θ −→ −θ est également brisée
spontanément dans les mouvements de périodes N.
66 physique numérique, ydri et al.
Dynamique Moléculaire
8
8.1 Introduction
Dans la dynamique moléculaire, nous tentons de comprendre le comportement
d’un systéme classique á plusieurs particules en simulant la trajectoire de chaque
particule dans le systéme. En pratique, cela peut être appliquée á des systémes
contenant 109 particules au maximum. La dynamique moléculaire est complémen-
taire á la méthode plus puissante de Monte-Carlo. La méthode de Monte Carlo
traite les systémes qui sont en équilibre thermique avec un réservoir de chaleur. La
dynamique moléculaire, de l’autre part, est utile pour étudier la vitesse en temps
réel pour que le systéme passe d’un état microscopique á un autre.
Nous considérons une boîte contenant une collection d’atomes ou de molécules.
Nous allons utiliser la deuxiéme loi de Newton pour calculer les positions et les
vitesses de toutes les molécules en fonction du temps. En utilisant la méthode de
dynamique moléculaire nous pouvons répondre comprendre:

• La transition de fusion.

• Le taux d’équilibration.

• Le taux de diffusion.

Un traitement classique peut être justifiée comme suit. Nous considérons le cas
de l’Argon liquide comme un exemple. L’énergie nécessaire pour exciter un atome
d’Argon est de l’ordre de 10 eV tandis que l’énergie cinétique de centre de masse
68 physique numérique, ydri et al.

d’un atome d’Argon est de 0.1 eV. Ainsi, une collision entre deux atomes d’Argon
ne changera pas leurs configuration électronique. Par conséquent, nous pouvons
ignorer la structure interne des atomes d’Argon. En outre, la longueur d’onde
d’un atome d’Argon qui est de l’ordre de 10−7 A est beaucoup plus petit que
l’espacement entre les atomes d’Argon qui typiquement de l’ordre de 1 A, qui
justifie á nouveau un traitement classique.

8.2 Le Potentiel de Lennard-Jones


Nous considérons une boîte contenant N atomes d’Argon. Par souci de simplicité,
nous supposerons que nos atomes d’Argon se déplacent dans deux dimensions. Les
équations du mouvement de l’atome i qui est situé á la position (xi , yi ) avec une
vitesse (vi,x , vi,y ) s’écrit

dvi,x dxi
= ax,i , = vi,x . (2.1)
dt dt

dvi,y dyi
= ay,i , = vi,y . (2.2)
dt dt
Chaque atome d’Argon subit une force de tous les autres atomes d’Argon. Afin
de calculer cette force, nous avons besoin de déterminer le potentiel d’interaction.
Nous supposons que le potentiel d’interaction entre n’importe quelle paire d’atomes
d’Argon ne dépendent que de la distance entre eux. Soit rij et u(rij ) la distance et
le potentiel d’interaction entre les atomes i et j. Le potentiel total est alors donné
par
N
X −1 N
X
U= u(rij ). (2.3)
i=1 j=i+1

La forme précise de u peut être calculée á partir des premiers principes, á savoir
la mécanique quantique. Toutefois, ce calcul est trés compliqué et dans la plupart
des cas une forme phénoménologique de u sera suffisante.
Pour les grandes séparations rij , le potentiel u(rij ) doit être faiblement attractif
donné par la force de Van der Walls, qui découle de l’interaction électrostatique
entre les moments dipolaires électriques des deux atomes d’Argon. En d’autres
termes u(rij ) pour les grandes séparations est attractif en raison de la polarisation
mutuelle des deux atomes. Le potentiel de Van der Walls peut être calculé á
partir de la mécanique quantique oú il est montré qu’il varie comme 1/rij6 . Pour
les petites séparations rij , le potentiel u(rij ) doit devenir fortement répulsif en
physique numérique, ydri et al. 69

raison du chevauchement des nuages électroniques des deux atomes d’Argon. Cette
répulsion est une conséquence du principe d’exclusion de Pauli. Il s’agit d’une
pratique courante de choisir la partie répulsive du potentiel proportionnelle á 1/rij12 .
Le potentiel total prend la forme

 12  6 
σ σ
u(r) = 4ǫ − . (2.4)
r r

Ceci est le potentiel de Lennard-Jones. Le paramétre σ est de dimension longueur


tandis que le paramétre ǫ est de dimension énergie. Nous observons que le potentiel
á r = σ est 0 identiquement tandis que pour r > 2.5σ le potentiel tend vers zéro
rapidement. Le minimum du potentiel se produit á r = 21/6 σ. La profondeur du
potentiel au minimum est ǫ.
La force de l’atome k sur l’atome i est

  12  6 
24ǫ σ σ
f~k,i = −∇
~ k,i u(rk,i) = 2 − r̂ki . (2.5)
rki rki rki

L’accélération de l’atome i est donnée par


1 X 1 X xi − xk
ax,i = fk,i cos θk,i = fk,i
m k6=i m k6=i rki
  12  6 
24ǫ X xi − xk σ σ
= 2
2 − . (2.6)
m k6=i rki rki rki

1 X 1 X yi − yk
ay,i = fk,i sin θk,i = fk,i
m k6=i m k6=i rki
  12  6 
24ǫ X yi − yk σ σ
= 2
2 − . (2.7)
m k6=i rki rki rki

8.3 Unités, Conditions aux Limites et Algorithme


de Verlet
Unités Réduites Nous allons choisir σ et ǫ comme les unités de distance et
de l’énergie respectivement. Nous allons également choisir la masse m d’un seul
atome d’Argon comme l’unité de masse. Tout le reste est mesuré en termes de σ,
70 physique numérique, ydri et al.

ǫ et m. Par exemple la vitesse est mesurée en unités de (ǫ/m)1/2 et le temps en


unités de σ(ǫ/m)1/2 . Les unités réduites sont données par
σ = ǫ = m = 1. (3.8)
Pour les atomes d’Argon, nous avons les valeurs
σ = 3.4 × 10−10 m , ǫ = 1.65 × 10−21 J = 120kB J , m = 6.69 × 10−26 kg. (3.9)
Ainsi
r
m
σ = 2.17 × 10−12 s. (3.10)
ǫ
Par conséquent, une simulation de dynamique moléculaire qui se déroule pendant
2000 étapes avec un pas de temps réduit ∆t = 0.01 correspond á un temps total
réduit de 2000 × 0.01 = 20 ce qui équivaut á un temps réel de 20σ(ǫ/m)1/2 =
4.34 × 10−11 s.

Conditions aux Limites Périodiques Le nombre total d’atomes dans un sys-


téme physique réel est énorme de l’ordre de 1023 . Si le systéme est placé dans
une boîte, la fraction d’atomes du systéme á proximité des parois de la boîte est
négligeable par rapport au nombre total d’atomes. Dans une simulations typique,
le nombre total d’atomes est seulement de l’ordre de 103 − 105 et dans ce cas
la fraction d’atomes prés des murs est considérable et leur effet ne peut pas être
négligé.
Afin de réduire les effets de bord, nous allons utiliser des conditions aux limites
périodiques. En d’autres termes la boîte est en fait un tore et il n’y a pas des parois.
Soit Lx et Ly les longueurs de la boîte dans les directions x et y respectivement. Si
un atome traverse les parois de la boîte dans une direction particuliére, nous allons
ajouter ou soustraire la longueur de la boîte dans cette direction comme suit
if (x > Lx ) then x = x − Lx
if (x < 0) then x = x + Lx . (3.11)

if (y > Ly ) then y = y − Ly
if (y < 0) then y = y + Ly . (3.12)
La séparation maximale dans la direction x entre deux particules est seulement
Lx /2 tandis que la séparation maximale dans la direction y est seulement Ly /2.
Ceci peut être mis en œuvre comme suit
if (xij > Lx /2) then xij = xij − Lx
if (xij < −Lx /2) then xij = xij + Lx . (3.13)
physique numérique, ydri et al. 71

if (yij > Ly /2) then yij = yij − Ly


if (yij < −Ly /2) then yij = yij + Ly . (3.14)

Algorithme de Verlet L’algorithme numérique que nous allons utiliser est


l’algorithme de Verlet. Nous considérons les expansions de Taylor avancée et re-
tardée d’une fonction f données par
2 3
df 1 2d f 1 3d f
f (tn + ∆t) = f (tn ) + ∆t |tn + (∆t) 2 |tn + (∆t) 3 |tn + ... (3.15)
dt 2 dt 6 dt

df 1 d2 f 1 d3 f
f (tn − ∆t) = f (tn ) − ∆t |tn + (∆t)2 2 |tn − (∆t)3 3 |tn + ... (3.16)
dt 2 dt 6 dt
En ajoutant ces expressions nous obtenons
d2 f
f (tn + ∆t) = 2f (tn ) − f (tn − ∆t) + (∆t)2 |t + O(∆t4 ). (3.17)
dt2 n
On remarque que l’erreur est proportionnelle á ∆t4 , c’est á dire cette méthode est
plus précise que les méthodes d’Euler, d’Euler-Cromer et Runge-Kutta de second
ordre. Nous avons donc pour l’atome i les équations

xi,n+1 = 2xi,n − xi,n−1 + (∆t)2 ax,i,n . (3.18)

yi,n+1 = 2yi,n − yi,n−1 + (∆t)2 ay,i,n . (3.19)

La force et l’accélération sont données par


  12  6 
24ǫ σ σ
fk,i,n = 2 − . (3.20)
rki,n rki,n rki,n

1 X xi,n − xk,n
ax,i,n = fk,i,n . (3.21)
m k6=i rki,n

1 X yi,n − yk,n
ay,i,n = fk,i,n . (3.22)
m k6=i rki,n

La séparation rki,n entre les deux atomes k et i est donnée par


q
rki,n = (xi,n − xk,n )2 + (yi,n − yk,n ). (3.23)
72 physique numérique, ydri et al.

Dans la méthode de Verlet, il n’est pas nécessaire de calculer les composantes


dxi,n /dt et dyi,n /dt de la vitesse. Toutefois, nous aurons besoin de la vitesse pour
calculer l’énergie. Donc nous allons aussi calculer la vitesse en utilisant les équa-
tions suivantes
xi,n+1 − xi,n−1
vx,i,n = . (3.24)
2∆t

yi,n+1 − yi,n−1
vy,i,n = . (3.25)
2∆t
Notons que la méthode de Verlet ne peut pas auto-démarrer. En d’autres termes,
étant donné les conditions initiales xi,1 , yi,1 , vx,i,1 et vy,i,1 , nous devons aussi avoir
xi,2 , yi,2, vx,i,2 et vy,i,2 pour que l’algorithme de Verlet démarre correctement ce qui
peut être déterminé á l’aide de la méthode d’Euler.

8.4 Applications Physiques


8.4.1 Gaz Dilué
Un gaz á l’équilibre thermique est caractérisé par une température T . La dy-
namique moléculaire nous permet d’étudier comment un gaz dilué se rapproche
de l’équilibre. La température du gaz peut être calculé en utilisant les simula-
tions de dynamique moléculaire comme suit. Selon le théorème d’équipartition,
l’énergie thermique moyenne de chaque degré de liberté quadratique dans un gaz
en équilibre thermique est égale á kB T /2. En d’autres termes

1 1 1
kB T = < m~v 2 > . (4.26)
2 d 2
La moyenne <> peut être comprise de deux maniéres différentes mais équivalentes.
Nous pouvons suivre le mouvement d’un seul atome et prendre la moyenne dans
le temps de son énergie cinétique. Le même résultat peut être obtenu en prenant
la moyenne de l’énergie cinétique des différents atomes. Dans ce dernier cas, nous
écrivons
N
1 1 X1 2
kB T = m~v . (4.27)
2 dN i=1 2 i

Une autre façon de mesurer la température T d’un gaz dilué est á travers une étude
de la distribution des vitesses atomiques. Un gaz classique en équilibre thermique
physique numérique, ydri et al. 73

obéit á la distribution de Maxwell. Les distributions de vitesse en deux dimensions


sont données par
v − 2kmv2T
P (v) = C e B . (4.28)
kB T

2 2
1 −
mvx 1 −
mvy

P (vx ) = Cx √ e 2kB T , P (vy ) = Cy √ e 2kB T . (4.29)


kB T kB T
Rappelons que la probabilité par unité de v de trouver un atome avec la vitesse
v est égale P (v) alors que la probabilité par unité de vx,y de trouver un atome
avec une vitesse vx,y est égale P (vx,y ). Les constantes C et Cx,y sont déterminés
á partir de la condition de normalisation. Il y a un pic dans la distribution P (v).
Clairement la température est liée á l’emplacement de pic qui se produit dans
P (v). Elle est donnée par

2
kB T = mvpeak . (4.30)

8.4.2 La Transition de Fusion


Ce sujet est extrêmement important et il est discuté en détail dans le probléme de
laboratoire.
74 physique numérique, ydri et al.
9
Travaux Pratiques
76 physique numérique, ydri et al.

9.1 Algorithme de Runge-Kutta - Le Systéme So-


laire
Partie I Nous considérons un systéme solaire composé d’une seule planéte en
mouvement autour du soleil. Le soleil est trés lourd comparé á la planéte et par
conséquence nous pouvons supposer qu’ elle est fixée au centre du systéme. La
deuxiéme loi de Newton donne les équations du mouvement suivantes

dx dvx GMs dy dvy GMs


vx = , = − 3 x , vy = , = − 3 y.
dt dt r dt dt r
Nous allons utiliser ici les unités astronomiques défini par GMs = 4π 2 AU3 /yr2 .

(1) Ecrire un code de Fortran dans lequel nous réalisons l’algorithme de Runge-
Kutta pour le probléme du mouvement du systéme solaire.

(2) Calculer la trajectoire, la vitesse et l’énergie en fonction du temps. Qu’est-ce


que vous observez pour l’énergie.

(3) Selon la premiére loi de Kepler l’orbite de n’importe quel planéte est une
ellipse avec le soleil á l’un des deux foyers. Dans la suite nous allons con-
sidérer les planétes qui ont des orbites circulaires avec une grande précision.
Ces planétes sont Vénus, Terre, Mars, Jupiter et Saturne. Les rayons en
unités astronomiques sont donnés par

avenus = 0.72 , aearth = 1 , amars = 1.52 , ajupiter = 5.2 , asaturn = 9.54.

Vérifiez que la premiére loi de Kepler est respecté par ces planétes.
Afin de répondre aux questions 2 et 3 ci-dessus nous prenons les conditions
initiales

x(1) = a , y(1) = 0 , vx (1) = 0 , vy (1) = v.

La valeur choisie pour la vitesse initiale est trés important pour obtenir une
orbite correcte et doit être déterminé par exemple en supposant que l’orbite
est circulaire et par conséquent la force centrifuge est équilibrée par la force
d’attraction gravitationnelle. Nous obtenons v = GMs /a. Nous prenons le
pas et le nombre d’itérations ∆t = 0.01 yr , N = 103 − 104 .
physique numérique, ydri et al. 77

Partie II

(1) Selon la troisiéme loi de Kepler le carré de la période de n’importe quel


planéte est directement proportionnelle au cube de grand rayon de son or-
bite. Pour les orbites circulaires le facteur de proportionnalité est égal á 1
exactement. Vérifiez ce fait. Nous pouvons mesurer la période d’une planéte
en observant quand la planéte revient á son point le plus éloigné du soleil.

(2) En changeant la vitesse initiale nous pouvons obtenir une orbite elliptique.
Vérifiez ce fait.

(3) Les lois fondamentales qui régissent le mouvement du systéme solaire sont
la loi d’attraction gravitationelle universelle de Newton et la deuxiéme loi
du mouvement de Newton. La loi d’ attraction universelle stipule que la
force entre le soleil et une planéte est inversement proportioanl au carré de
la distance entre eux. Nous supposerons maintenant que cette force est in-
versement proportionnelle á une puissance différente de la distance. Calculer
les orbites pour des puissances entre 1 et 3. Qu’est-ce que vous observez et
Qu’en concluez-vous.
78 physique numérique, ydri et al.

9.2 La Précession du Périhélie de Mercure


Selon la premiére loi de Kepler les orbites des planétes sont des ellipses avec le
Soleil á l’un des deux foyers. Cette loi peut être obtenu á partir de l’application
de la deuxiéme loi de Newton pour le systéme constitué du Soleil et une planéte
unique. L’effet des autres planétes sur le mouvement produira un changement
d’orientation de l’ellipse orbital dans le plan de mouvement de la planéte. Ainsi,
le point le plus proche au Soleil sur l’orbite (le périhélie) va précesser autour du
Soleil. Toutes les planétes souffrent de cet effet, mais parce qu’elles sont tous plus
loin du Soleil avec des périodes plus longues que Mercure leurs taux de précession
sont plus petites que celle de Mercure.
Cependant, il a été établi trés tôt que la précession du périhélie de Mercure
dû aux effets newtoniens s’écarte de la précession observée par la quantité 43
arcseconde par siécle. Il s’avére que cette effet peut seulement être expliqué dans
le contexte de la relativité générale. La grande masse du Soleil courbe l’espace-
temps qui est ressenti le plus par Mercure en raison de sa proximité. Cette courbure
d’espace-temps peut être approchée par l’effet de la loi de force
GMs Mm α
F = (1 + ) , α = 1.1.10−8AU 2 .
r2 r2
(1) Inclure la force ci-dessus dans le code. La position initiale et la vitesse initiale
de Mercure sont

x0 = (1 + e)a , y0 = 0.
r
GMs 1 − e
vx0 = 0 , vy0 = .
a 1+e
Ainsi, Mercure est initialement au point le plus éloigné du Soleil, parce que
a est le demi-grand axe de Mercure (a = 0, 39 AU) et e est son excentricité
(e = 0, 206), et donc ea est la distance entre
√ le Soleil et le centre de l’ellipse.
Le demi-petit axe est défini par b = a 1 − e2 . La vitesse initiale a été
calculée á partir de l’application des principes de la conservation du moment
angulaire et de la conservation de l’énergie entre le point initial ci-dessus et
le point (0, b).

(2) Le taux de précession du périhélie de Mercure est trés petit, car α est trés
faible. En fait, il ne peut pas être mesurée directement dans une simulation
numérique avec un temps limité. Donc nous allons choisir une valeur plus
grande de α, par exemple α = 0, 0008 AU 2 . Nous allons travailler également
avec N = 20000 , dt = 0, 0001. Calculer l’orbite avec ces valeurs et l’angle θ
entre le vecteur position de Mercure et l’axe horizontal comme une fonction
physique numérique, ydri et al. 79

du temps. Calculer aussi la distance entre Mercure et le soleil et sa dérivée


par rapport au temps donné par

dr xvx + yvy
= .
dt r
Cette dérivé va s’annuler chaque fois Mercure atteint son point le plus éloigné
du Soleil ou son point le plus proche du soleil (périhélie). Tracer l’angle θp
faite entre le vecteur position de Mercure á son point le plus éloigné et
l’axe horizontal comme une fonction du temps. Qu’est-ce que vous observez.
Déterminer la pente dθp /dt qui est précisément la quantité de la précession
du périhélie de Mercure pour la valeur ci-dessus de α.

(3) Répétez la question ci-dessus pour d’autres valeurs de α. On va prendre α =


0.001, 0.002, 0.004. Chaque fois calculer dθp /dt. Tracer dθp /dt en fonction
de α. Déterminer la pente. En déduire ainsi la quantité de précession pour
la valeur α = 1.1.10−8 AU 2 .
80 physique numérique, ydri et al.

9.3 Le Pendule Chaotique et l’Effet Papillon


Nous considérons un pendule d’une masse m et longueur l déplaçant sous l’influence
de la force de gravité. Le mouvement du pendule est en général non-linéaire, car
l’angle que le pendule fait avec la verticale n’est pas nécessairement petit et peut
atteindre la valeur maximale π. En fait le pendule peut se balancer á 360 degrés.
Nous allons prendre en compte la force de résistance de l’air qui est supposé être
donnée par la loi de Stokes Fdrag = −mlqdθ/dt.
Cette force de frottement va drainer toute l’énergie du pendule et comme une
conséquence le pendule finira par s’arrêter. Afin de maintenir le mouvement du
pendule contre l’effet d’amortissement de la résistance de l’air, il est nécessaire
d’appliquer une force motrice extérieure. Par souci de simplicité nous allons con-
sidérer une force motrice qui est périodique dans le temps avec une fréquence νd
et d’amplitude fixe mlFD donnée par Fdrive = mlFD sin 2πνD t.
La deuxiéme loi de Newton s’écrit
d2 θ g dθ
2
= − sin θ − q + FD sin 2πνD t.
dt l dt
La propriété la plus importante d’une large classe de solutions de cette équation
différentielle est hyper sensibilité aux conditions initiales connue aussi par le nom
effet papillon qui est la caractéristique déterminante du chaos. Pour cette raison,
ce systéme est appelé le pendule chaotique.

(1) Écrire un code qui réalise l’algorithme d’Euler-Cromer pour le pendule chao-
tique. Nous prendrons la fréquence angulaire g/l associé aux oscillations
p

simples égal á 1, soit l = g. L’angle θ doit toujours être pris entre −π et π,


ce qui peut être maintenue par la commande

if(θi .lt. ∓ π) θi = θi ± 2π.

(2) Le pendule chaotique, peut avoir deux comportements distincts. Dans le


régime linéaire le mouvement est périodique avec une période égale á la péri-
ode de la force motrice extérieure. Dans le régime chaotique le mouvement ne
se répète jamais et toute erreur,même infime, dans la détermination des con-
ditions initiales conduira á une orbite complétement différente dans l’espace
des phases.
Nous prenons les valeurs et les conditions initiales
2 1
dt = 0.04s , 2πνD = s−1 , q = s−1 , N = 1000 − 2000.
3 2
θ1 = 0.2 radian , Ω1 = 0 radian/s.
physique numérique, ydri et al. 81

FD = 0 radian/s2 , FD = 0.1 radian/s2 , FD = 1.2 radian/s2 .


Tracer θ en fonction du temps. Qu’observez-vous pour la première valeur
de Fd . Quelle est la période d’oscillation pour les temps petits et les temps
grands pour la seconde valeur de Fd . Est-ce que le mouvement est périodique
pour la troisième valeur de Fd .
82 physique numérique, ydri et al.

9.4 Sections de Poincaré


Le mouvement du pendule dans le régime chaotique, bien que déterministe n’est
pas prévisible. Cela ne signifie toutefois pas que le mouvement du pendule est
aléatoire qui peut être clairement vu dans les sections de Poincaré. Une section de
Poincaré est une courbe dans l’espace des phases obtenues en traçant un point de
l’orbite par période de la force motrice extérieure. Explicitement nous tracons les
points (θ, Ω) qui correspondent aux instants t = n/νD oú n est un entier. Dans
le régime linéaire la section de Poincaré est constituée d’un seul point. Section de
Poincaré dans le régime chaotique est une courbe qui ne dépend pas des conditions
initiales confirmant ainsi que le mouvement n’est pas aléatoire et qui peuvent
avoir une structure fractale. En conséquence cette courbe est appelé un attracteur
étrange.

(1) Nous considérons deux pendules identiques chaotiques A et B avec conditions


initiales légérement différentes. Par exemple nous prenons

θ1A = 0.2 radian , θ1B = 0.201 radian.


La différence entre les deux mouvements peuvent être mesurés par ∆θi =
θiA − θiB . Calculer ln ∆θ en fonction du temps pour

FD = 0.1 radian/s2 , FD = 1.2 radian/s2 .

Qu’est-ce que vous observez. Est-ce que les deux mouvements sont iden-
tiques. Qu’est-ce qui se passe pour les grands instants. Est-ce que le mou-
vement du pendule est prévisible. Pour la deuxième valeur de Fd utiliser
N = 10000 , dt = 0.01s.

(2) Calculer la vitesse angulaire Ω en fonction de θ pour

FD = 0.5 radian/s2 , FD = 1.2 radian/s2 .


Quel est l’orbite dans l’espace des phases pour les temps petits et qu’est
ce qu’il représente. Quel est l’orbite pour les grands instants. Comparez
entre les deux pendules A et B. Est-ce que l’orbite pour les grandes instants
dépendent des conditions initiales.

(3) Une section de Poincaré est obtenue numériquement en traçant les points
(θ, Ω) de l’orbite qui correspondent aux instans oú la fonction sin πtνD est 0.
Ce sont les instants oú la fonction sin πtνD change de signe. Ils sont obtenus
par la commande
physique numérique, ydri et al. 83

if(sin πνD ti sin πνD ti+1 .lt.0)then


write(∗, ∗)ti , θi , Ωi .
Vérifiez que la section de Poincaré dans le régime linéaire est donnée par un
seul point dans l’espace des phases. Prenez et utilisez FD = 0.5 radian/s2 , N =
104 − 107 , dt = 0.001s. Vérifiez que la section de Poincaré dans le régime
chaotique est un attracteur. Prenez et utilisez FD = 1.2 radian/s2 , N =
105 , dt = 0.04s. Comparez entre les sections de Poincaré des pendules A et
B. Qu’est-ce que vous observez et que concluez-vous.
84 physique numérique, ydri et al.

9.5 Chaos par Doublement de Période


Parmi les propriétés les plus importantes de pendule forcé est le phénomène de
doublement de période. L’orbite périodique de période égale à la période de la
force motrice extérieure est appelée mouvement de période 1. Il existe cependant
d’autres orbites périodiques avec des périodes égales á deux fois, quatre fois et en
général N = 2N fois la période de la force motrice. L’orbite avec une période égale
á N fois la période de la force motrice est appelée mouvement de période N. Le
doublement de période observé dans le pendule forcé est un phénomène nouveau,
qui appartient au monde du chaos. Dans les phénoménes des vibrations standards,
la réponse d’un systéme non-linéaire á une force motrice externe avec une seule
fréquence contient des composants avec des périodes égales á la période de la
force motrice divisée par 2N . En d’autres termes nous obtenons des harmoniques,
par opposition aux sous-harmoniques que nous avons observé dans le pendule
chaotique.
Pour le mouvement de periode N, nous attendons qu’il y a N valeurs différentes
de l’angle θ pour chaque valeur de Fd . La fonction θ = θ(Fd ) est appelé un
diagramme de bifurcation. Formellement, la transition vers le chaos survient dans
la limits N −→ ∞. En d’autres termes le chaos est définie comme un mouvement
de période infinie.

(1) Nous prenons les valeurs et les conditions initiales


2 1
l = g , 2πνD = s−1 , q = s−1 , N = 3000 − 100000 , dt = 0.01s.
3 2
θ1 = 0.2 radian , Ω1 = 0 radian/s.
Déterminer la période de mouvement pour

FD = 1.35 radian/s2 , FD = 1.44 radian/s2 , FD = 1.465 radian/s2 .

Quel est le comportement de la période quand nous augmentons Fd . Est-ce


que les deux derniérs valeurs de Fd se trouvent dans le régime linéaire ou
chaotique du pendule chaotique.

(2) Calculer l’angle θ en fonction de Fd pour les temps t qui satisfont la condition
2πνD t = 2nπ. Nous prenons Fd dans l’intervalle

FD = (1.34 + 0.005k) radian/s2 , k = 1, ..., 30.

Déterminez l’intervalle de la force motrice extérieure dans lequelle les orbites


sont des mouvements á une période, á deux période et á 4 périodes.
physique numérique, ydri et al. 85

Dans ce probléme, il est trés important d’éliminer les transitoires initiales


avant de commencer á mesurer le diagramme de bifurcation. Cela peut être
fait de la façon suivante. Nous calculons le mouvement pour 2N étapes,
mais nous considérons seulement les N derniéres étapes dans le calcul de la
section de Poincaré pour chaque valeur de Fd .
86 physique numérique, ydri et al.

9.6 Diagrammes de Bifurcation et Brisure Spon-


tanée de la Symétrie
Partie I Le pendule chaotique est donnée par l’équation

d2 θ 1 dθ
2
= − sin θ − + FD cos 2πνD t.
dt Q dt

Dans cette simulation, nous prenons les valeurs FD = 1.5 radian/s2 , 2πνD = 23 s−1 .
Afin d’atteindre une meilleure précision numérique, nous utilisons l’algorithme de
Runge-Kutta de deuxiéme ordre.
Dans le régime linéaire les orbites sont périodiques de période égale à la période
TD de la force motrice externe et sont symétriques sous θ −→ −θ. Il existe d’autres
solutions qui sont périodiques avec période égale TD , mais ne sont pas symétriques
sous θ −→ −θ. Dans ces solutions le pendule passe la majorité de son temps dans
la région á la gauche de son axe vertical (θ < 0) ou dans la région á la droite de
son axe vertical (θ > 0).
Ces solutions peuvent être décrites par un diagramme de bifurcation Ω = Ω(Q).
Pour chaque valeur du facteur de qualité Q on calcule la section de Poincaré.
Nous observons que la section de Poincaré se bifurquent à une valeur Q∗ de Q. En
dessous de cette valeur nous obtenons une ligne tandis qu’au-dessus de cette valeur
nous obtenons deux lignes correspondantes aux deux solutions dans lesquelles le
pendule passe la majorité de son temps dans les régions (θ > 0) et (θ < 0).

(1) Réécrire le code pour le pendule chaotique, en utilisant l’algorithme de


Runge-Kutta.

(2) Nous prenons deux ensembles différents de conditions initiales

θ = 0.0 radian , Ω = 0.0 radian/s.

θ = 0.0 radian , Ω = −3.0 radian/s .

Étudier les orbites pour les valeurs Q = 0.5s, Q = 1.24s et Q = 1.3 s.


Qu’est-ce que vous observez.

(3) Tracer le diagramme de bifurcation Ω = Ω(Q) pour les valeurs de Q dans


l’intervalle [1.2, 1.3]. Quelle est la valeur Q∗ pour laquelle la symétrie θ −→
−θ est spontanément brisée.
physique numérique, ydri et al. 87

Partie II Comme nous l’avons déjà vu dans la simulation précédente le dou-


blement de période peut aussi être décrit par un diagramme de bifurcation. Ce
phénomène est un autre exemple d’une brisure spontanée de la symétrie. Dans
ce cas, la symétrie est t −→ t + TD . Il es clair que seulement les orbites avec la
période TD sont symétriques sous cette transformation.
Soit QN la valeur de Q au cours de laquelle la N −iéme bifurcation se produit,
c’est á dire la valeur á laquelle l’orbite passe d’un mouvement de période N/2 vers
un mouvement de période N. Le rapport de Feigenbaum est définie par
QN −1 − QN −2
FN = .
QN − QN −1
Lorsque nous approchons le régime chaotique, c’est à dire lorsque N −→ ∞, le
rapport FN converge rapidement vers une valeur constante égale à F = 4.669.
Ceci est un résultat général qui est valide pour de nombreux systèmes chaotiques.
Tout système dynamique qui contient une transition vers le chaos à travers une
sèrie infinie de bifurcations associés au doublement de période est caractérisée par
un rapport de Feigenbaum égale 4.669 lorsque N −→ ∞.

(1) Calculer l’orbite et la section de Poincaré pour Q = 1.36 s. Quelle est la


période de mouvement. Est-ce-que l’orbite est symétrique sous t −→ t + TD .
Est-ce-que l’orbite est symmetric sous θ −→ −θ.

(2) Tracer le diagramme de bifurcation Ω = Ω(Q) pour deux ensembles dif-


férents de conditions initiales pour les valeurs de Q dans l’intervalle [1.3, 1.36].
Quelle est la valeur Q au cours de laquelle la période est doublée. Quelle est
la valeur de Q au cours de laquelle la symétrie t −→ t+ TD est spontanément
brisée.

(3) Dans cette question, nous utilisons les conditions initiales

θ = 0.0 radian , Ω = 0.0 radian/s.

Calculer l’orbite et la section de Poincaré et tracer le diagramme de bifurca-


tion Ω = Ω(Q) pour les valeurs de Q dans l’intervalle [1.34, 1.38]. Déterminer,
à partir du diagramme de bifurcation les valeurs QN pour N = 1, 2, 3, 4, 5.
Calculer le rapport de Feigenbaum. Calculer le point d’accumulation Q∞ au
cours de lequelle la transition vers le chaos survient.
88 physique numérique, ydri et al.

9.7 Dynamique Moléculaire


Partie I Nous considérons le mouvement en deux dimensions de N atomes
d’argon sur un réseau de dimension L × L. Le potentiel de l’interaction u en-
tre deux atomes dans le gaz séparés par une distance r est donnée par le potentiel
de Lennard-Jones
 12  6 
σ σ
u = 4ǫ − .
r r
La force sur l’atome i exercée par l’atome k est
  12  6 
24ǫ σ σ
fk,i = 2 − .
rki rki rki
Les équations du mouvement de l’atome i sont

d2 xi 1 X xi − xk d2 yi 1 X yi − yk
2
= ax,i = fk,i , 2
= ay,i = fk,i .
dt m k6=i rki dt m k6=i rki

L’algorithme numérique que nous allons utiliser est l’algorithme de Verlet donné
par les équations

xi,n+1 = 2xi,n − xi,n−1 + (∆t)2 ax,i,n , yi,n+1 = 2yi,n − yi,n−1 + (∆t)2 ay,i,n .

Nous allons aussi calculer les vitesses


xi,n+1 − xi,n−1 yi,n+1 − yi,n−1
vx,i,n = , vy,i,n = .
2∆t 2∆t
Pour plus de simplicité, nous allons utiliser des unités réduites σ = ǫ = m = 1.
De plus, afin de réduire les effets de bord nous utilisons des conditions aux limites
périodiques. En d’autres termes la boîte est effectivement un tore et il n’ya pas de
bords. Si un atome traverse les parois de la boîte dans une direction particuliére,
on va ajouter ou soustraire la longueur de la boîte dans cette direction comme
suit:

if (xi > L) then xi = xi − L , if (xi < 0) then xi = xi + L


if (yi > L) then yi = yi − L , if (yi < 0) then yi = yi + L.
La séparation maximale dans la direction x entre deux particules est seulement
L/2. De même, la séparation maximale dans la direction y entre deux particules
est seulement L/2. Ceci peut être réalisé comme suit
physique numérique, ydri et al. 89

if (xij > L/2) then xij = xij − L , if (xij < −L/2) then xij = xij + L

if (yij > L/2) then yij = yij − L , if (yij < −L/2) then yij = yij + L.
Dans ce probléme, nous prendrons toujours N impairs et N un carré parfait.
L’espacement du réseau est définie par
L
a= √ .
N
Il ya clairement N cellules d’aire a×a. Nous choisissons L et N tel√que a > 2σ. Les
positions initiales des atomes sont fixés comme suit. L’atome k = N(i−1)+j sera
placé au centre de la cellule avec des angles (i, j), (i+ 1, j), (i, j + 1) et (i+ 1, j + 1).
Ensuite, nous allons perturbé de façon aléatoire ces positions initiales en ajoutant
des nombres aléatoires dans l’intervalle [−a/4, +a/4] aux coordonnées x et y des
atomes.

1) Écrire un code de dynamique moléculaire suivant les lignes ci-dessus. Prenez


L = 15, N = 25, ∆t = 0.02, Time = 500 et v0 = 1. Comme un premier test
vérifier que l’énergie totale est conservée. Tracer les trajectoires des atomes.
Qu’est-ce que vous observez.

2) Comme un second test, nous proposons de mesurer la température en obser-


vant comment le gaz approche l’équilibre. Utiliser le théorème d’équipartition
N
m X 2 2
kB T = (v + vi,y ).
2N i=1 i,x

Tracer T comme une fonction du temps. Prenez Time = 1000 − 1500. Quelle
est la température du gaz á l’équilibre.

3) On va calculer la distribution des vitesses des atomes d’argon en construisant


un histogramme appropriées comme suit. Nous prenons la valeur Time =
2000. Nous considérons les vitesses de toutes les particules dans tout les
temps. Il y a Time × N valeurs de la vitesse dans cet échantillon. Pour
construire l’histogramme de cet échantillon nous suivons les étapes:

1) trouver le maximum et le minimum.


2) divisant l’intervalle en bacs/cellules.
3) déterminer le nombre de fois une valeur donnée de la vitesse est dans
un bac donné.
90 physique numérique, ydri et al.

4) divisé par la normalisation de la distribution.

Comparer avec la distribution Mawell

v 2 − 2kmv2T
PMaxwell (v) = C e B .
kB T
Déduire la température á partir du pic de la distribution donnée par kB T =
2
mvpeak . Comparer avec la valeur de la température obtenue á partir du
théoréme de l’équipartition. Qu’arrive-t-il si on augmente la vitesse initiale.

Partie II Nous aimerions étudier la transition de fusion. Nous devons d’abord


établir les bonnes conditions pour une phase solide. Il est clair que la température
doit être suffisamment faible et la densité doit être suffisamment élevée. Pour
rendre la température aussi basse que possible, nous allons commencer avec toutes
les particules au repos. Afin d’obtenir une attraction maximale entre les atomes
nous choisissons une faible densité d’environ une particule par unité de surface
réduite. En particulier nous choisissons N = 16 et L = 4.

1) Montrer qu’ avec ces conditions vous obtenez un solide cristallin avec un
réseau triangulaire.

2) Afin d’observer la fusion, nous devons chauffer le systéme. Ceci peut être
réalisé en augmentant l’énergie cinétique des atomes manuellement. Une
façon pratique de faire cela est de redimensionner les positions actuelles et
antérieures des atomes périodiquement (par exemple tous les 1000 étapes)
comme suit

hh = int(n/1000)
if (hh ∗ 1000.eq.n) then
x(i, n) = x(i, n + 1) − R(x(i, n + 1) − x(i, n))
y(i, n) = y(i, n + 1) − R(y(i, n + 1) − y(i, n))
endif.

Cette procédure va redimensionner la vitesse par la quantité R. Nous choi-


sissons R = 1.5. Vérifiez que nous allons en effet atteindre la transition de
fusion par le biais de cette méthode. Qu’advient-il de l’énergie et la tem-
pérature.
Partie III
Nombres (Pseudo) Aléatoires et Marche
10
Au Hasard

10.1 Nombres Aléatoires


Une suite de nombres r1 , r2 , ... est appelé aléatoire s’il n’ya pas de corrélations
entre les nombres. La séquence est appelé uniforme si tous les nombres ont une
probabilité égale de se produire. Soit P (r)dr la probabilité qu’un certain nombre
ri dans la séquence se situe entre r et r + dr, c’est á dire P (r) est la distribution
de probabilité. Une distribution uniforme signifie que P (r) = constante.
La plupart des générateurs de nombres aléatoires sur ordinateurs génèrent des
distributions uniformes entre 0 et 1. Ce sont des séquences de nombres pseudo-
aléatoires parce que á partir d’un nombre donné ri et les éléments qui lui précèdent,
nous pouvons calculer ri+1 . Par conséquent, ces séquences ne sont pas vraiment
au hasard et des corrélations entre les nombres de la suite existent. Des vrais
nombres aléatoires peuvent être trouvées dans les tableaux de nombres obtenus
naturellement par exemple au cours d’une désintégration radioactive.

10.1.1 Générateur Congruentiel Linéaire


Dans cette méthode, nous générons un ensemble de k nombres aléatoires r1 , r2 , ...,
rk dans l’intervalle [0, M − 1] comme suit. Étant donné un nombre aléatoire ri−1 ,
94 physique numérique, ydri et al.

nous générons le nombre aléatoire suivant ri par la règle


 
ari−1 + c
ri = (ari−1 + c) mod M = remainder . (1.1)
M
La notation y = z mod M signifie que nous soustrayons M de z jusqu’á ce que
0≤y≤M − 1. Le premier nombre aléatoire r1 est fourni par l’utilisateur et il est
appelé la graine. Egalement fourni sont le multiplicateur a, l’incrément c et le
module M. Le "remainder" est une fonction intégrée dans la plupart des langages
informatiques. Le nombre entier le plus large possible générée par la règle ci-
dessus est M − 1. Ainsi, la période maximale possible est de M, soit k≤M. En
général, la période k dépend de a, c et M. Pour obtenir une séquence uniforme
dans l’intervalle [0, 1] on divise par M − 1.
Prenons l’exemple suivant: a = 4, c = 1 et M = 9 avec la graine r1 = 3. Nous
obtenons une séquence de longueur 9 donnée par
3, 4, 8, 6, 7, 2, 0, 1, 5. (1.2)
Aprés le dernier nombre 5 nous obtenons 3 et donc la séquence se répète. Dans ce
cas, la période est M = 9.
Il est clair que nous devons choisir les paramétres a, c et M et la graine r1
avec tant de soin pour que nous obtenions la plus longue séquence de nombres
pseudo-aléatoires. La durée maximale possible dépend de la largeur des registres
de processeur. Pour une machine 32-bits, c’est á dire lorsque les mots manipulés
par le processeur ont une largeur de 32 bits, on peut utiliser M = 231 = 2 × 109 .
Les nombres générés par (1.1) sont aléatoires seulement dans le sens où ils sont
répartis uniformément sur toute leur gamme. L’équation (1.1) est liée à la suite
logistique qui est connu pour leur comportement chaotique. Bien que le chaos est
déterministe il semble aléatoire. De la même maniére, bien que l’équation (1.1) est
déterministe les nombres générés semblent aléatoires. C’est la raison pour laquelle
ils sont appelés nombres pseudo-aléatoires.

10.1.2 Tests Statistiques des Nombres Aléatoires


Période : Le premier test consiste á vérifier que le générateur de nombre aléatoire
a une période suffisamment longue pour un probléme donné. Nous pouvons utiliser
le générateur de nombres aléatoires pour tracer la position d’un marcheur aléatoire.
Il est claire que le trajet va se répéter lorsque la période est atteinte.

Uniformité : Le moment numéro k de la distribution des nombres aléatoires est


N
1 X k
< xki >= x . (1.3)
N i=1 i
physique numérique, ydri et al. 95

Soit P (x) la distribution de probabilité des nombres aléatoires. Alors


Z 1
1
k
< xi >= dx xk P (x) + O( √ ). (1.4)
0 N
Pour une distribution uniforme P (x) = 1, nous devons avoir
1 1
< xki >= + O( √ ). (1.5)
k+1 N
En d’autre termes
N

 
1 X k 1
N x − = O(1). (1.6)
N i=1 i k+1
Ceci est un test d’uniformité ainsi q’un test qui nous permet de vérifier si la
séquence des nombres est vraiment aléatoire ou pas. Pour être plus précis, si
< xki > est égal à 1/(k + 1) nous pouvons
√ déduire que la répartition est uniforme,
alors que si l’écart varie comme 1/ N nous pouvons déduire que la distribution
est aléatoire.
Un test direct de l’uniformité est de diviser l’intervalle unité en K sous-intervalles
égales (bins) et placer chaque nombre aléatoire dans l’un de ces bins. Pour une
distribution uniforme, nous devons obtenir N/K nombres dans chaque bin où N
est le nombre totale des nombres aléatoires générés.

Test du Chi-Carré : Dans le test ci-dessus, il y aura des fluctuations statistiques


autour de la valeur idéale N/K pour chaque bin. La question est de savoir si ou
pas ces fluctuations sont compatibles avec les lois de la statistique. La réponse est
basée sur la soi-disant chi carré défini par
K
X (Ni − nideal )2
χ2m = . (1.7)
i=1
nideal
Dans la définition ci-dessus Ni est le nombre des nombres aléatoires qui tombent
dans le bin i et nideal est le nombre attendu des nombres aléatoires dans chaque
cellule.
La probabilité de trouver une valeur particuliére χ2 , qui est inférieur à χ2m , se
trouve être proportionnelle à la fonction gamma incompléte γ(ν/2, χ2m /2) où ν est
le nombre de degrés de liberté donnée par ν = K − 1. Nous avons
γ(ν/2, χ2m /2)
P (χ2 ≤ χ2m ) = = P (ν/2, χ2m /2). (1.8)
Γ(ν/2)
La distribution de χ2m est maximale autour de la valeur χ2m = ν. Cela correspond
à P (ν/2, χ2m /2) = 0.5, ce qui signifie que dans la moitié des essais nous devrions
trouver une valeur de χ2m plus petit que ν.
96 physique numérique, ydri et al.

Test Aléatoire : Soit r1 , r2 , ..., rN une séquence des nombres aléatoires. Un test
trés efficace de hasard est de faire un plot (diagramme) de dispersion (xi = r2i , yi =
r2i+1 ) pour un grand nombre des i. Il doit y avoir aucune régularité dans le plot
sinon la séquence n’est pas aléatoire.

Les Corrélations á Court-Terme : Nous allons définir la fonction d’autocorrélation


< xi xi+j > − < xi >< xi+j >
C(j) =
< xi xi > − < xi >2
< xi xi+j > − < xi >2
= , j = 1, 2, ... (1.9)
< xi xi > − < xi >2
Dans l’équation ci-dessus, nous avons utilisé le fait que dans la limite N −→ ∞,
< xi+j >=< xi >, c’est à dire le choix de l’origine de la séquence n’est pas
pertinent et
N −j N
1 X 1 X
< xi xi+j >= xi xi+j −→ xi xi+j , N −→ ∞. (1.10)
N − j i=1 N i=1

Encore une fois, si xi et xi+j sont des nombres aléatoires indépendants qui sont
distribués avec la distribution de probabilité conjointe P (xi , xi+j ), alors
Z 1 Z 1
< xi xi+j >≃ dx dyxyP (x, y). (1.11)
0 0

Nous avons clairement supposer que N est grand. Pour une distribution uniforme,
à savoir P (x, y) = 1 nous obtenons
1
< xi xi+j >≃ . (1.12)
4

Pour une distrubution aléatoire l’écart de ce résultat est d’ordre 1/ N. Ainsi
dans le cas où les nombres aléatoires ne sont pas corrélés, nous avons

C(j) = 0. (1.13)

10.2 Systémes Aléatoires


La physique quantique et statistique traitent des systémes qui sont aléatoires ou
stochastiques. Ces systémes sont des systémes non déterministes par opposition
aux systémes classiques qui sont déterministes. La dynamique d’un systéme déter-
ministe est donnée par une solution unique des équations du mouvement qui décrit
la physique du systéme á tout moment.
physique numérique, ydri et al. 97

Nous prenons le cas de la diffusion des molécules des fluides. Par exemple
le mouvement des particules de poussiére dans l’atmosphére, le mouvement des
molécules de parfum dans l’air ou le mouvement des molécules de lait dans un
café. Ces mouvements sont tous des exemples de mouvement brownien.
Dans le cas d’une goutte de lait dans un café, la masse blanche de la goutte
de lait se propagera lentement jusqu’á ce que le café prend une couleur brune
uniforme. Au niveau moléculaire, chaque molécule du lait entre en collision avec
les molécules dans le café. Clairement, la goutte de lait change de direction si
souvent que son mouvement apparaît aléatoire. Cette trajectoire peut être décrite
par une marche aléatoire dite aussi une marche au hasard. Il s’agit d’un systéme
dans lequel chaque molécule du lait se déplace d’une seule étape á la fois dans
n’importe quelle direction avec une probabilité égale.
La trajectoire d’une molécule de poussiére, du parfum ou du lait n’est pas
vraiment aléatoire, car il peut en principe être calculé en résolvant les équations
du mouvement de Newton pour toutes les molécules qui nous permet alors de
connaître l’évolution du systéme dans le temps. Bien que cela est possible, en
principe, il n’est pas réalisable dans la pratique. La marche au hasard est donc
effectivement une approximation. Toutefois, le grand nombre de molécules et de
collisions dans le systéme rend la marche au hasard une trés bonne approximation.

10.2.1 Marches Aléatoires


Nous prenons une marche au hasard á une seule dimension. Le marcheur peut alors
prendre des pas de longueur unité le long d’une ligne. Il commence á s0 = 0 et la
premiére étape est choisi au hasard soit á gauche ou á droite avec des probabilités
égales. En d’autres termes il y a une probabilité de 50 pour cent pour que le
marcheur se déplace vers le point s1 = 1 et une chance de 50 cents pour qu’il se
déplace vers le point s1 = −1. Dans la deuxiéme étape le marcheur va encore
se déplacer soit vers la droite ou vers la gauche de point s1 au point s2 avec des
probabilités égales. Ce processus sera répété á maintes reprises. Nous obtenons
alors la position du marcheur xN en fonction du nombre des étape N.
Dans le mouvement d’une molécule dans une solution le temps entre les étapes
est une constante ce qui signifie aue le nombre des étape N est proportionnelle au
temps. Par conséquent xN est la position du marcheur en tant que fonction du
temps.
En général, un marcheur au hasard á une seule dimension peut se déplacer vers
la droite avec une probabilité p ou vers la gauche avec une probabilité q = 1 − p
avec des étapes de longueur égale a. La direction de chaque étape est indépendante
de la précédente. Le déplacement ou la position du marcheur aprés N étapes est
donné par
98 physique numérique, ydri et al.

N
X
xN = si . (2.14)
i=1

Les marcheurs pour p = q = 1/2 peuvent être générés en retournant une pièce de
monnaie N fois. La position est augmenté de a pour les faces et diminué de a pour
les piles.
La moyenne sur un nombre quleconque des marcheurs chacun de N étapes est
N
X
< xN >= < si >= N < s > . (2.15)
i=1

En haut, nous avons utilisé le fait que la moyenne de chaque étape est la même
donnée par
< si >=< s >= p(a) + q(−a) = (p − q)a. (2.16)
Pour p = q = 1/2 nous obtenons < xN >= 0. Une meilleure mesure de la marche
aléatoire est donnée par

N
X 2
x2N = si . (2.17)
i=1

Le carré moyen de déplacement net ∆x2 est définie par


∆x2 =< (xN − < xN >)2 >=< x2N > − < xN >2 . (2.18)
Nous calculons
N X
X N
2
∆x = < (si − < s >)(sj − < s >) >
i=1 j=1
N
X N
X
= < (si − < s >)(sj − < s >) > + < (si − < s >)2 > .(2.19)
i6=j=1 i=1

Dans le premier terme, parce que i 6= j, nous avons < (si − < s >)(sj − < s >
) >=< (si − < s >) >< (sj − < s >) >. Mais < (si − < s >) >= 0. Ainsi
N
X
2
∆x = < (si − < s >)2 >
i=1
= N(< s2i > − < s >2 >)
= N(a2 − (p − q)2 a2 )
= 4Npqa2 . (2.20)
physique numérique, ydri et al. 99

Pour p = q = 1/2 et a = 1 nous obtenons

< x2N > = N. (2.21)

Le point principal est que, parce que N est proportionnel au temps, nous avons
< x2N >∝ t. Ceci est un exemple d’un comportement diffusif.

10.2.2 Équation de Diffusion


La marche aléatoire est couronné de succés dans la simulation de nombreux sys-
témes physiques, car elle est liée aux solutions de l’équation de diffusion. Pour voir
ce fait, nous allons partir de la probabilité P (i, N) pour que le marcheur aléatoire
est au site si aprés N étapes. Cette probabilité est donnée par
 
1
P (i, N) = P (i + 1, N − 1) + P (i − 1, N − 1) . (2.22)
2
Soit τ le temps entre les étapes et a la maille du réseau. Alors t = Nτ et x = ia.
En outre, nous définissons P (x, t) = P (i, N)/a. Nous obtenons
 
1
P (x, t) = P (x + a, t − τ ) + P (x − a, t − τ ) . (2.23)
2
Nous allons réécrire cette équation comme

a2
  
1
P (x, t) − P (x, t − τ ) = P (x + a, t − τ ) − 2P (x, t − τ )
τ 2τ

1
+ P (x − a, t − τ ) 2 . (2.24)
a

Dans la limite de a −→ 0, τ −→ 0 avec le rapport D = a2 /2τ maintenue fixe, on


obtient l’équation

∂P (x, t) ∂ 2 P (x, t)
=D . (2.25)
∂t ∂x2
Ceci est l’équation de diffusion. Généralisation á 3− dimensions est
∂P (x, y, z, t)
= D∇2 P (x, y, z, t). (2.26)
∂t
Une solution particuliére de (2.25) est donnée par
1 − x22 √
P (x, t) = e 2σ , σ = 2Dt. (2.27)
σ
100 physique numérique, ydri et al.

En d’autres termes la distribution spatiale des molécules qui diffusent est toujours

une gaussienne avec une demi-largeur σ qui augmente avec le temps comme t.
La moyenne de n’importe quelle fonction f de x est donnée par
Z
< f (x, t) >= f (x)P (x, t)dx. (2.28)

Nous multiplions les deux côtés de (2.25) par f (x) et puis nous intégrons sur x, á
savoir
∂P (x, t) ∂ 2 P (x, t)
Z Z
f (x) dx = D f (x) dx. (2.29)
∂t ∂x2
Clairement
∂P (x, t) ∂ d d
Z Z Z
< f (x) >(2.30)

f (x) dx = f (x)P (x, t) dx = f (x)P (x, t)dx = .
∂t ∂t dt dt
Ainsi
d ∂ 2 P (x, t)
Z
< f (x) > = D f (x) dx
dt ∂x2
 
∂P (x, t) x=+∞ ∂f (x) ∂P (x, t)
Z
= D f (x) |x=−∞ − D dx. (2.31)
∂x ∂x ∂x
Nous avons P (x = ±∞, t) = 0 et aussi toutes les dérivées spatiales sont nuls á
x = ±∞. Nous obtenons alors

d ∂f (x) ∂P (x, t)
Z
< f (x) > = −D dx. (2.32)
dt ∂x ∂x
Nous choisissons f (x) = x. alors
d ∂P (x, t)
Z
< x > = −D dx = 0. (2.33)
dt ∂x
En d’autres termes < x >= constante. Mais parce que x = 0 á t = 0, nous devons
avoir constante = 0. Ainsi
< x >= 0. (2.34)
Maintenant nous choisissons f (x) = x2 . Alors
d ∂P (x, t)
Z
2
< x > = −2D x dx
dt ∂x
= 2D. (2.35)
Par conséquent
< x2 > = 2Dt. (2.36)
Ceci est le comportement diffusif nous avons observé dans le probléme de la marche
aléatoire.
physique numérique, ydri et al. 101

10.3 Les générateurs des Nombres Aléatoires RAN


0, 1, 2
Les générateurs congruentiels linéaires sont de la forme
ri = (ari−1 + c) mod M. (3.37)
Pour c > 0, les générateurs linéaires sont appelés mélangé. Ils sont désignés
par LCG(a, c, M). Les nombres aléatoires générés par LCG(a, c, M) sont dans la
gamme [0, M − 1].
Pour c = 0 les générateurs linéaires sont appelés multiplicatif. Ils sont désignés
par MLCG(a, M). Les nombres aléatoires générés par MLCG(a, M) sont dans la
gamme [1, M − 1].
Dans le cas oú a est une racine primitive modulo M et M est un nombre
premier, la période du générateur est M − 1. Un certain nombre a est une racine
primitive modulo M signifie que pour tout entier n tel que pgcd(n, M) = 1, il
existe k tel que ak = n mod M.
Un exemple de MLCG est le générateur RAN0 de Park et Miller qui est large-
ment utilisé sur les ordinateurs IBM. Dans ce cas,
a = 16807 = 75 , M = 231 − 1. (3.38)
La période de ce générateur n’est pas trés long donnée par
period = 231 − 2 ≃ 2.15 × 109 . (3.39)
Ce générateur ne peut pas être mis en oeuvre directement dans un langage de haut
niveau á cause de dépassement d’entier. En effet le produit de a et M − 1 dépasse
la valeur maximale pour un entier d’une largeur de 32 bits. La mise en oeuvre
en utilisant un langage assembleur sur une machine 64−bits est simple, mais pas
portable.
Une meilleure solution est donnée par l’algorithme de Schrage. Cet algorithme
permet la multiplication de deux entiers de largeur 32 bits sans utiliser des nombres
intermédiaires qui sont plus grands que 32 bits. Pour voir comment cela fonctionne
explicitement, nous allons factoriser M comme suit
M = aq + r. (3.40)

M
r = M mod a , q = [ ]. (3.41)
r
Dans l’équation ci-dessus [ ] désigne la partie entiére. Remarquons que
M
r = M mod a = M − [ ]a. (3.42)
a
102 physique numérique, ydri et al.

Ainsi, par définition, r < a. Nous allons également exiger que r < q. Alors
r
<< 1. (3.43)
qa
Nous avons également
aXi
Xi+1 = aXi mod M = aXi − [ ]M
M
aXi
= aXi − [ ]M. (3.44)
aq + r
Nous calculons
aXi Xi Xi 1
= =
aq + r q + ar r
q 1 + qa
Xi r
= (1 − )
q qa
Xi Xi r
= − . (3.45)
q aq q
Il est clair que
Xi Xi Xi
= ≃ < 1. (3.46)
aq M −r M
Alors
aXi Xi
[ ] = [ ], (3.47)
M q
si négligeant ǫ = (rXi )/(aq 2 ) n’affecte pas la partie entiére de aXi /M et
aXi Xi
[ ] = [ ] − 1, (3.48)
M q
si négligeant ǫ affecte la partie entiére de aXi /M. Par conséquent nous obtenons
aXi
Xi+1 = aXi − [ ](aq + r)
M
aXi aXi
= a(Xi − [ ]q) − [ ]r (3.49)
M M
Xi Xi
= a(Xi − [ ]q) − [ ]r (3.50)
q q
Xi
= a(Xi mod q) − [ ]r, (3.51)
q
physique numérique, ydri et al. 103

si
Xi
a(Xi mod q) − [ ]r ≥ 0. (3.52)
q
Aussi
aXi
Xi+1 = aXi − [ ](aq + r)
M
aXi aXi
= a(Xi − [ ]q) − [ ]r (3.53)
M M
Xi Xi
= a(Xi − [ ]q + q) − [ ]r + r (3.54)
q q
Xi
= a(Xi mod q) − [ ]r + M, (3.55)
q
si
Xi
a(Xi mod q) − [ ]r < 0. (3.56)
q
Le générateur RAN0 contient des corrélations sériel. Par exemple les vecteurs
á D dimensions (x1 , ..., xD ), (xD+1 , ..., x2D ), ..., qui sont obtenus par des appels
successifs de RAN0 va se résider sur un petit nombre de hyperplans paralléles á
D −1 dimensions. Environ il y aura M 1/D hyperplans. En particulier les séquences
des nombres aléatoires de longueur N ≥ 107 , qui est beaucoup plus moins que la
période M − 1, générés par RAN0 ne passent pas le test du chi-carré.
Le RAN1 est conçu de telle sorte que les corrélations trouvées dans RAN0
sont éliminées en utilisant l’algorithme de Bays-Durham. L’algorithme de Bays-
Durham brouille la séquence afin de supprimer les corrélations sériel faibles. En
d’autres termes il change l’ordre des nombres de sorte que la séquence devient
indépendante de l’ordre et un nombre donné n’est pas corrélée avec les nombres
précédents. Plus précisément, le j éme nombre aléatoire est émis non pas sur
l’appel j, mais sur un appel randomisé tard qui est l’appel j + 32 en moyenne.
Le RAN2 est une amélioration par rapport á RAN1 et RAN0 dú á de L’Ecuyer.
Il utilise deux séquences avec des périodes différentes afin d’obtenir une nouvelle
séquence avec une plus grande période égale á le plus petit commun multiple des
deux périodes. Dans cet algorithme, nous ajoutons les deux séquences modulo le
module M de l’un d’eux. Afin d’éviter un dépassement , nous allons soustraire
plutôt que d’ajouter et si le résultat est négatif, nous ajoutons M − 1 de maniére
á envelopper l’ inetrval [0, M − 1]. L’Ecuyer utilise les deux séquences

M1 = 2147483563 , a1 = 40014 , q1 = 53668 , r1 = 12211. (3.57)


104 physique numérique, ydri et al.

M2 = 2147483399 , a2 = 40692 , q2 = 52774 , r2 = 3791. (3.58)

La période est de 2.3×1018 . Notons également que RAN2 utilise aussi l’algorithme
de Bays-Durham.
Nous concluons cette section en discutant un autre générateur basé sur la méth-
ode congruentiel linéaire qui est le fameux générateur de nombre aléatoire RAND
donné par

RAND = LCG(69069, 1, 232). (3.59)

La période de ce générateur est 232 et la structure en treillis est présente pour les
dimensions supérieures D ≥ 6.
Intégration Monte Carlo
11
11.1 Intégration Numérique
11.1.1 Approximation Rectangulaire
Nous commençons par un examen de l’approximation rectangulaire des intégrales
en une seule dimension. Nous considérons l’intégrale

Z b
F = f (x)dx. (1.1)
a

Nous allons discrétiser l’intervalle [a, b] de tel sorte que nous nous retrouvons avec
N petits intervalles égales de longueur ∆x, á savoir
b−a
xn = x0 + n∆x , ∆x = (1.2)
N
Il est clair que x0 = a et xn = b. La définition de Riemann de l’intégrale est donnée
par la limite suivante
 N
X −1 
F = lim  ∆x f (xn ) . (1.3)
∆x−→0 , N −→∞ , b−a=fixed
n=0

La premiére approximation que nous pouvons faire est de laisser tomber la limite.
Nous obtenons l’approximation que l’on appelle rectangulaire donnée par
106 physique numérique, ydri et al.

N
X −1
FN = ∆x f (xn ). (1.4)
n=0

L’erreur peut être calculé comme suit. Nous commençons avec le développement
de Taylor
1
f (x) = f (xn ) + (x − xn )f (1) (xn ) + (x − xn )2 f (2) (xn ) + ... (1.5)
2!
Ainsi
xn+1
1 (1) 1
Z
dx f (x) = f (xn )∆x + f (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (1.6)
xn 2! 3!
L’erreur dans l’intervalle [xn , xn+1 ] est
Z xn+1
1 1
dx f (x) − f (xn )∆x = f (1) (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (1.7)
xn 2! 3!
Ceci est de l’ordre de 1/N 2 . Mais nous avons N sous-intervalles. Ainsi, l’erreur
totale est de l’ordre de 1/N.

11.1.2 Approximation du Point Médian et Intégrales Mul-


tidimensionnelles
Nous allons commencer par l’intégrale en deux dimensions
Z
F = dx dy f (x, y). (1.8)
R

R est le domaine de l’intégration. Afin de donner l’approximation du point médian


de cette intégrale nous imaginons un rectangle de côtés xb −xa et yb −ya qui entoure
la région R et on le divise en carrés de longueur h. Les points dans la direction
x/y sont
1
xi = xa + (i − )h , i = 1, ..., nx . (1.9)
2

1
yi = ya + (i − )h , i = 1, ..., ny . (1.10)
2
Les nombres des points dans la direction x/y sont
xb − xa yb − ya
nx = , ny = . (1.11)
h h
physique numérique, ydri et al. 107

Le nombre des cellules est donc


(xb − xa )(yb − ya )
n = nx ny = . (1.12)
h2
L’intégrale va être approchée par
ny
nx X
X
F =h 2
f (xi , yj )H(xi , yj ). (1.13)
i=1 j=1

La fonction de Heaviside est définie par

H(xi , yj ) = 1 if (xi , yj ) ∈ R autrement H(xi , yj ) = 0. (1.14)

La généralisation á plusieurs dimensions est simple. Nous obtenons


n1
X nd
X
F =h d
... f (xi11 , ..., xidd )H(xi11 , ..., xidd ). (1.15)
i1 =1 id =1

L’approximation du point médian est une amélioration par rapport á l’approximation


rectangulaire. Pour voir ce fait, nous considérons une intégrale unidimensionnelle
Z
F = dx f (x). (1.16)
R

L’approximation du point médian s’écrit dans ce cas comme suit


nx
X nx
X
F =h f (xi )H(xi ) = h f (xi ). (1.17)
i=1 i=1

Si nous avons nx intervalles [xi , xi+1 ] avec x0 = a et xi = xa + (i − 0.5)h, i =


1, ..., nx − 1, alors le terme hf (xi+1 ) est associée á l’intervalle [xi , xi+1 ]. Il est clair
que nous pouvons écrire cette approximation comme suit

x −1
nX
xi + xi+1
F =h f( ) , xi = xa + ih. (1.18)
i=0
2

L’erreur dans l’intervalle [xi , xi+1 ] est donnée par


Z xi+1
xi + xi+1 1 ′′
f (x) dx − f ( )∆x = f (xi )(∆x)3 + ... (1.19)
xi 2 24

L’erreur totale est alors 1/n2x par comparison á 1/nx de l’approximation rectangu-
laire.
108 physique numérique, ydri et al.

Nous allons faire cet exercice en deux dimensions. Nous écrivons l’erreur comme
Z xi+1 Z yj+1
xi + xi+1 yj + yj+1
f (x, y) dx dy − f ( , )∆x∆y (1.20)
xi yj 2 2

Comme d’habitude, nous utilisons la série de Taylor sous la forme

′ ′ 1 ′′
f (x, y) = f (xi , yj ) + fx (xi , yj )(x − xi ) + fy (xi , yj )(y − yj ) + fx (xi , yj )(x − xi )2
2
1 ′′
(1.21)
′′
+ f (xi , yj )(y − yj )2 + fxy (xi , yj )(x − xi )(y − yj ) + ...
2 y
Nous trouvons
Z xi+1 Z yj+1
xi + xi+1 yj + yj+1 1 ′′
f (x, y) dx dy − f ( , )∆x∆y = fx (xi , yj )(∆x)3 ∆y
xi yj 2 2 24
1 ′′
+ f (xi , yj )∆x(∆y)3 + ...
24 y
(1.22)

Parce que ∆x = ∆y = h, l’erreur individuelle est proportionnelle á h4 . L’erreur


totale est donc nh4 , oú n = nx ny . De plus n est proportionnelle á 1/h2 et par
conséquent l’erreur totale en dimension deux est proportionnelle á h2 que est équiv-
alente á 1/n. Comme nous l’avons déjá vu la même méthode conduit á une erreur
proportionnelle á 1/n2 en dimension un. Ainsi en augmentons le nombre de di-
mensions l’erreur devient pire. Si dans une dimension l’erreur se comporte comme
1/na , l’erreur va se comporter comme 1/na/d en dimension d. En d’autres termes
les méthodes classiques d’intégration numérique deviennent impraticables á des
dimensions suffisamment élevés.

11.1.3 Les Sphéres et les Boules dans d Dimensions


Le volume d’une boule de rayon R dans d dimensions est donnée par
Z
Vd = dx1 ...dxd
x21 +...+x2d ≤R2
Z
= r d−1 dr dΩd−1
x21 +...+x2d ≤R2

Rd
Z
= dΩd−1
d
d
Rd 2π 2
= . (1.23)
d Γ( d2 )
physique numérique, ydri et al. 109

La surface d’une sphére de rayon R dans d dimensions est donnée par


Z
Sd−1 = dx1 ...dxd
x21 +...+x2d =R2
d
2π 2
= Rd−1 . (1.24)
Γ( d2 )

Voici quelques propriétés de la fonction gamma

1 √
Γ(1) = 1 , Γ( ) = π , Γ(n + 1) = nΓ(n). (1.25)
2

Afin de calculer numériquement le volume de la boule dans n’importe quelle di-


mension d il nous faut une formule de récurrence qui relate le volume de la boule
dans d dimensions avec le volume de la boule dans d − 1 dimensions. La dérivation
va comme suit

Z +R Z
Vd = dxd dx1 ...dxd−1
−R x21 +...+x2d−1 ≤R2 −x2d
Z +R Z √R2 −x2 Z
d
d−2
= dxd r dr dΩd−2
−R 0
Vd−1 +R
Z
2 d−1
= dxd (R 2
− xd)
2 . (1.26)
Rd−1 −R

11.2 Intégration de Monte Carlo: Échantillonnage


Simple
Nous allons commencer par l’intégrale unidimensionnelle
Z b
F = dx f (x). (2.27)
a

Un méthode de Monte Carlo est une procédure qui utilise des nombres aléatoires
pour calculer ou estimer l’intégrale ci-dessus. Dans ce qui suit, nous allons décrire
deux simples méthodes de Monte Carlo qui donnent une valeur approximative de
cette intégrale. Comme nous progressons, nous serons en mesure de donner des
méthodes plus sophistiquées de Monte Carlo.
110 physique numérique, ydri et al.

11.2.1 La Méthode de Rjet: "Hit or Miss"


Nous imaginons un rectangle de largeur b−a et de hauteur h tel que h est supérieure
á la valeur maximale de f (x), c’est á dire la fonction f (x) est entiérement contenue
á l’intérieur du rectangle. Pour estimer la valeur de l’intégrale F nous choisissons
n paires de nombres aléatoires uniformes (xi , yi ) oú a ≤ xi ≤ b et 0 ≤ yi ≤ h.
Nous calculons la fonction f aux points xi . Soit Nin le nombre de points aléatoires
(xi , yi ) tel que yi ≤ f (xi ). La valeur de l’intégrale F est alors donnée par
nin
F =A , A = h(b − a). (2.28)
n

11.2.2 La Méthode de l’Échantillon Moyen


Nous partons du théorème des accroissements finis de l’analyse, á savoir
Z b
F = dx f (x) = (b − a) < f > . (2.29)
a

< f > est la valeur moyenne de la fonction f (x) dans la gamme a ≤ x ≤ b. La


méthode de l’échantillon moyen calcule le moyen < f > en choisissant n points
aléatoires xi dans l’intervalle [a, b], qui sont distribués de maniére uniforme, puis
calculer les valeurs de la fonction f (x) á ces points et prendre leur moyenne. En
d’autres termes
n
1X
F = (b − a) f (xi ). (2.30)
n i=1

Ceci est formellement le même que l’approximation rectangulaire. La seule dif-


férence est le fait que ici les points xi sont choisis au hasard dans l’intervalle [a, b]
alors que les points xi dans l’approximation rectangulaire sont choisis avec un es-
pacement égal. Pour les dimensions faibles l’approximation rectangulaire est plus
précise alors que pour les dimensions grandes la méthode de l’échantillon moyen
devient plus précise.

11.2.3 Echantillon Moyen dans les Dimensions Supérieures


Nous commençons avec l’intégrale en deux dimensions

Z
F = dx dy f (x, y). (2.31)
R

Encore une fois nous considérons un rectangle de côtés yb −ya et xb −xa qui entoure
la région R. L’échantillon moyen dans ce cas s’écrit
physique numérique, ydri et al. 111

n
1X
F =A f (xi , yi )H(xi , yi ). (2.32)
n i=1

Les points xi sont aléatoire et réparties uniformément dans l’intervalle [xa , xb ] alors
que les points yi sont aléatoires et réparties uniformément dans l’intervalle [ya , yb ].
A est la surface du rectangle, c’est á dire A = (xb − xa )(yb − ya ). La fonction de
Heaviside est définie par

H(xi , yi ) = 1 si (xi , yi ) ∈ R autrement H(xi , yi ) = 0. (2.33)

Généralisation aux dimensions supérieures est évident. Par exemple, dans trois
dimensions nous aurions
n
1X
Z
F = dx dy dz f (x, y, z) −→ F = V f (xi , yi , zi )H(xi , yi , zi ). (2.34)
R n i=1

V est le volume du parallélépipède qui entoure la région tridimensionnelle R.

11.3 Le Théorème Central Limite


Soit p(x) une fonction de distribution de probabilité. Nous générons (mesurons) n
valeurs xi d’une certaine variable x selon la fonction de distribution de probabilité
p(x). La moyenne de y1 =< xi > est donnée par

n
1X
y1 =< xi >= xi p(xi ). (3.35)
n i=1

Nous répétons cette mesure N fois en obtenant ainsi N moyennes y1 , y2 , ..., yn .


La moyenne z des moyennes yi est
N
1 X
z= yi . (3.36)
N i=1

La question que nous voulons répondre est la suivante: quelle est la fonction de
distribution de probabilité de z.
De toute évidence la probabilité d’obtenir une valeur particuliére z est le pro-
duit des probabilités d’obtenir les moyennes individuelles yi (qui sont supposés
être indépendants) avec la contrainte que la moyenne de yi est z. Soit p̃(y) la
112 physique numérique, ydri et al.

fonction de distribution de probabilité de la moyenne y et soit P (z) la distribution


de probabilité de la moyenne z des moyennes. On peut alors écrire P (z) comme
y1 + ... + yN
Z Z
P (z) = dy1... dyN p̃(y1 )...p̃(yN )δ(z − ). (3.37)
N
La fonction delta exprime la contrainte que z est la moyenne des yi . La fonction
delta peut être écrite comme
y1 + ... + yN 1
Z
y1 +...+yN
δ(z − )= dqeiq(z− N ) . (3.38)
N 2π
Soit µ la moyenne réelle des yi . Nous écrivons
1
Z Z Z
iq iq
iq(z−µ) (µ−y1 )
P (z) = dqe dy1 p̃(y1 )e N ... dyN p̃(yN )e N (µ−yN )

Z N
1
Z
iq
= dqe iq(z−µ)
dy p̃(y)e N (µ−y)
. (3.39)

Mais
q 2 (µ − y)2
 
iq
Z Z
iq
(µ−y)
dy p̃(y)e N = dy p̃(y) 1 + (µ − y) − + ...
N 2N 2
q 2 σN
2
= 1− + ... (3.40)
2N 2
Nous avons utiliser
Z Z Z
dy p̃(y) = 1 , dy p̃(y)y = µ , dy p̃(y)(µ − y)2 =< y 2 > − < y >2 = σN
2
.
(3.41)

Alors
1 q 2 σN
2
Z
P (z) = dqeiq(z−µ) e− 2N

2
1 − 2σN2 (z−µ)2
Z σN
− 2N (q− σiN (z−µ))2
= e N dqe N

(z−µ)2

2Σ2
1 e N
= √ . (3.42)
2π ΣN

σN
ΣN = √ . (3.43)
N
physique numérique, ydri et al. 113

Ceci est la distribution normale. De toute évidence le résultat ne dépend pas des
fonctions originales de distribution de probabilités p(x) et p̃(y).
La moyenne z de N nombres aléatoires yi correspondant á une fonction de
distribution de probabilité p̃(y) est réparti selon la fonction de distribution de
probabilité normale avec une moyenne égale á√la valeur moyenne de p̃(y) et une
variance égale á la variance de p̃(y) divisé par N.

11.4 Erreurs de Monte Carlo et Déviation Stan-


dard

Dans n’importe quelle méthode de Monte Carlo l’erreur va comme 1/ N oú N
est le nombre d’échantillons. Ce comportement est indépendant de l’intégrale et
aussi est indépendant du nombre de dimensions. En revanche, si l’erreur dans une
méthode d’approximation numérique classique se déroule comme 1/N a dans une
dimension (oú N est maintenant le nombre d’intervalles), l’erreur avec la même
a
méthode d’approximation en d dimensions sera proportionelle á 1/N d . Ainsi si
nous augmentons le nombre de dimensions l’erreur devient pire. En d’autres termes
les méthodes classiques d’intégration numérique deviennent impraticables á des
dimensions suffisamment élevés.
Nous considérons á nouveau l’intégrale unidimensionnelle comme un exemple.
Nous prenons
Z b
F = dx f (x). (4.44)
a

L’échantillonnage Monte Carlo simple (échontillon moyen) donne l’approximation

N
1 X
FN = (b − a) < f > , < f >= f (xi ). (4.45)
N i=1

L’erreur est par définition donnée par

∆ = F − FN . (4.46)

Cependant, en général nous ne savons pas le résultat exact F . Le mieux qu’on


puisse faire est de calculer la probabilité que le résultat approximatif FN est dans
un certain intervalle centré autour de résultat exacte F .
Le point de départ est le théorème central limite qui stipule que la moyenne
z de N nombres aléatoires yα correspondant á une fonction de distribution de
114 physique numérique, ydri et al.

probabilité p̃(y) est réparti selon la fonction de distribution de probabilité normale.


Ici la variable y est

N
1 X
y= f (xi ). (4.47)
N i=1

Nous faisons M mesures yα de y. Nous écrivons


N
1 X
yα = f (xi,α ). (4.48)
N i=1

La moyenne z des moyennes est donnée par


M
1 X
z= yα . (4.49)
M α=1

Selon le théorème central limite la moyenne z est réparti selon la fonction de


distribution de probabilité normale avec une moyenne égale á la valeur
√ moyenne
< y > des yα et une variance égale á la variance des yα divisé par M . Nous
écrivons ce résultat sous la forme

s
(z− < y >)2
 
M
2
exp −M 2
. (4.50)
2πσ̃M 2σ̃M

L’écart-type (la déviation standard) de la moyenne σ̃M est donnée par la racine
carrée de la variance

M
1 X
2
σ̃M = (yα − < y >)2 . (4.51)
M − 1 α=1

L’utilisation de M − 1 au lieu de M est connue sous le nom de correction de


Bessel. La raison de cette correction est le fait que le calcul de la moyenne < y >
réduit le nombre de données indépendantes yα par un. Pour trés grand M, on peut
remplacer σ̃M avec l’écart-type (déviation standard) des échantillons σM défini par
M
1 X
2
σ̃M 2
∼ σM = (yα − < y >)2 =< y 2 > − < y >2 . (4.52)
M α=1
physique numérique, ydri et al. 115

L’écart type (déviation standard) de f (x) pour un seul ensemble de mesures avec
N points de données est donnée par
N
1 X
2
σ̃ = (f (xi )− < f >)2 . (4.53)
N − 1 i=1

Encore une fois, parce que N est grand, on peut remplacer σ̃ avec l’écart-type
(déviation standard) σ définie par
N
1 X
2
σ = (f (xi )− < f >)2 =< f 2 > − < f >2 . (4.54)
N i=1

N N
1 X 1 X
< f >= 2
f (xi ) , < f >= f (xi )2 . (4.55)
N i=1 N i=1

L’écart-type de la moyenne σ̃M ∼ σM est donnée en termes de l’écart-type σ̃ ∼ σ


de f (x) par l’équation
σ
σM = √ . (4.56)
N
La démonstration de ce résultat se déroule comme suit. Nous généralisons les
équations (4.54) et (4.55) pour le cas d’un M ensembles des mesures chacun avec
N échantillons. Le nombre total d’échantillons est donc MN. Nous avons
M N
1 XX
2
σ = (f (xi,α )− < f >)2 =< f 2 > − < f >2 . (4.57)
NM α=1 i=1

M N M N
1 XX 1 XX
< f >= 2
f (xi,α ) , < f >= f (xi,α )2 . (4.58)
NM α=1 i=1 NM α=1 i=1

L’écart-type de la moyenne σ̃M ∼ σM est donnée par


M
2 1 X
σM = (yα − < y >)2
M α=1
M  N 2
1 X 1 X
= f (xi,α )− < f >
M α=1 N i=1
M N N   
1 XXX
= f (xi,α )− < f > f (xi,α )− < f > . (4.59)
N 2 M α=1 i=1 j=1
116 physique numérique, ydri et al.

Dans l’équation ci-dessus, nous avons utilisé le fait que < y >=< f >. Pour
chaque set α la somme sur j et i se divise en deux morceaux. Le premier est
la somme sur les éléments de la diagonale avec i = j et le second est la somme
sur les éléments hors diagonaux avec i 6= j. Il est clair que f (xi,α )− < f > et
f (xj,α )− < f > sont en moyenne aussi positive et négative et, par conséquent,
pour des grand nombres M et N les termes hors diagonaux s’annuleront et nous
nous retrouvons avec

M N  2
2 1 XX
σM = f (xi,α )− < f >
N 2 M α=1 i=1
σ2
= . (4.60)
N
L’écart-type de la moyenne σM peut donc être interprétée comme l’erreur probable
dans les N mesures originales. Ceci est parce que si nous faisons M ensembles des
mesures chacun avec N échantillons, l’écart-type de la moyenne σM permettra
d’estimer combien mesures sur les N s’écartont de la moyenne exacte.
Plus précisément la mesure originale Fn de l’intégrale F a une chance de 68
pour cent d’être dans les limites d’ un écart-type σM de la vraie moyenne, et une
chance de 95 pour cent d’être á l’intérieur de 2σM et une chance de 99.7 pour cent
d’être á l’intérieur de 3σM . En général, la proportion des valeurs de données qui
sont dans les limites de z écart-types de la vraie moyenne est définie par la fonction
d’erreur

<y>+zσM √z
(y− < y >)2
 
1 2 z
Z Z
2
exp −x2

p exp − 2
dy = √ dx = erf( √ ).
<y>−zσM
2
2πσM 2σM π 0 2
(4.61)

11.5 Distributions de Probabilités Non Uniformes


11.5.1 La Méthode de Transformation Inverse
Nous considérons deux événements discrets 1 et 2 qui se produisent avec des prob-
abilités p1 et p2 respectivement tels que p1 + p2 = 1. La question est de savoir com-
ment peut-on choisir les deux événements avec les probabilités correctes en utilisant
seulement une distribution de probabilité uniforme. La réponse est comme suit.
Soit r un nombre aléatoire uniforme entre 0 et 1. Nous allons choisir l’événement
1 si r < p1 autrement nous choisissons l’événement 2.
physique numérique, ydri et al. 117

Considérons maintenant trois événements discrets 1, 2 et 3 avec des probabilités


p1 , p2 et p3 respectivement tels que p1 + p2 + p3 = 1. Encore une fois nous allons
choisir un nombre aléatoire r entre 0 et 1. Si r < p1 , alors nous choisissons
l’événement 1, si p1 < r < p1 + p2 nous choisissons l’événement 2 autrement nous
allons choisir l’événement 3.
Nous considérons
Pn maintenant n événements discrets avec des probabilités pi
telles que i=1 pi = 1. Encore une fois nous allons choisir un nombre aléatoire
r entre 0 et 1. Nous choisissons l’événement i si le nombre aléatoire r satisfait
l’inégalité

i−1
X i
X
pj ≤ r ≤ pj . (5.62)
j=1 j=1

Dans
Pn la limite continue, on remplace la probabilité pi avec p(x)dx. La condition
i=1 pi = 1 devient
Z +∞
p(x) dx = 1. (5.63)
−∞

Il est evident que p(x)dx est la probabilité de trouver l’événement x entre x et


x + dx. L’inégalité (5.62) devient l’identité

Z x
(5.64)
′ ′
P (x) ≡ p(x ) dx = r
−∞

Ainsi r est égale á la distribution de probabilité cumulative P (x), c’est á dire á la


probabilité de choisir une valeur inférieure ou égale á x. Cette équation conduit á la
méthode de transformation inverse qui nous permet de générer une distribution de
probabilité non uniforme p(x) á partir d’une distribution de probabilité uniforme r.
Il est clair que nous devons être en mesure de 1) effectuer l’intégrale analytiquement
pour trouver P (x), 2) résoudre l’équation P (x) = r pour trouver x.
Comme premier exemple nous considérons la distribution de Poisson
1 −x
p(x) = e λ , 0 ≤ x ≤ ∞. (5.65)
λ
Nous trouvons
x
P (x) = 1 − e− λ = r. (5.66)

Alors

x = −λ ln(1 − r). (5.67)


118 physique numérique, ydri et al.

Ainsi, étant donné les nombres aléatoires uniformes r, nous pouvons calculer di-
rectement en utilisant la formule ci-dessus les nombres aléatoires x qui sont dis-
x
tribués selon la fonction de distribution de Poisson p(x) = λ1 e− λ .
L’exemple suivant est la distribution Gaussienne en deux dimensions
1 − x2 +y2 2
p(x, y) = e 2σ . (5.68)
2πσ 2
Nous pouvons immédiatement calculer que
Z +∞ Z +∞ Z 1 Z 1
1 2
− x +y
2
dx dy e 2σ 2
= dw dv. (5.69)
2πσ 2 −∞ −∞ 0 0

x = r cos φ , y = r sin φ. (5.70)

r 2 = −2σ 2 ln v , φ = 2πw. (5.71)

Les nombres aléatoires v et w sont clairement réparties uniformément entre 0 et


1. Les nombres aléatoires x (ou y) sont distribués selon la fonction de distribution
de Gauss á une dimension. Cette méthode est connue sous le nom de la méthode
de Box-Muller.

11.5.2 La Méthode de Rejet de Von Neumann


Cette méthode a été proposé par Von Neumann. L’objectif est de générer une
séquence de nombres aléatoires distribués selon une certaine densité de probabilité
normalisée y = p(x). Nous commençons par générer un nombre aléatoire uniforme
rx dans la gamme d’intérêt xmin ≤ rx ≤ xmax oú [xmin , xmax ] est l’intervalle dans
lequel y = p(x) ne s’annule pas. Nous évaluons p(rx ). Nous générons un autre
nombre aléatoire uniforme ry dans la gamme [0, ymax ], oú ymax est la valeur max-
imale de la distribution y = p(x). Si ry < p(rx ), alors nous acceptons le nombre
aléatoire rx d’autre nous le rejetons. Nous répétons ce processus un nombre suff-
isant de fois. Les nombres aléatoires acceptées rx seront distribués en fonction de
y = p(x).
Échantillonnage d’ Importance,
12
Algorithme de Metropolis et Modéle
d’Ising

12.1 L’Ensemble Canonique

Nous considérons les systémes physiques qui sont en contact thermique avec un
environnement. L’environnement est généralement beaucoup plus grande que le
systéme physique d’intérêt et par conséquence l’échange d’énergie entre les deux
ne changera pas la température de l’environement. L’environement est appelé un
bain ou un réservoir de chaleur. Lorsque le systéme atteigne l’équilibre avec le bain
de chaleur sa température sera donnée par la température du bain de chaleur.
Un systéme á l’équilibre avec un bain de chaleur est décrit statistiquement par
l’ensemble canonique dans lequel la température est fixée. En revanche un systéme
isolé est décrit statistiquement par l’ensemble microcanonique dans lequel l’énergie
est fixé. La plupart des systémes dans la nature ne sont pas isolés, mais sont en
contact thermique avec l’environnement. Il s’agit d’un résultat fondamental de la
mécanique statistique que la probabilité de trouver un systéme en équilibre avec
un bain de chaleur á la température T dans un micro-état s avec énergie Es est
donnée par la distribution de Boltzmann
120 physique numérique, ydri et al.

1 −βEs 1
Ps = e , β= . (1.1)
Z kT
La constante de normalisation connstant Z est la fonction de partition. Elle est
définie par
X
Z= e−βEs . (1.2)
s

La somme est sur tous les micro- états du systéme avec N et V fixés. L’énergie
libre de Helmholtz F d’un systéme est donné par

F = −kT ln Z. (1.3)

Dans l’équilibre l’énergie libre est minimale. Toutes les autres grandeurs ther-
modynamiques peuvent étre données par différentes dérivées de F . Par exemple,
l’énergie interne U du systéme qui est la valeur moyenne de l’énergie peut être
exprimée en termes de F comme suit
X 1X ∂ ∂
U =< E >= Es Ps = Es e−βEs = − ln Z = (βF ). (1.4)
s
Z s ∂β ∂β

La chaleur spécifique est donnée par



Cv = U. (1.5)
∂T

12.2 Échantillonnage d’ Importance


Dans n’importe quel intégration de Monte Carlo l’erreur numérique est propor-
tionnelle á l’écart-type de l’intégrande et elle est inversement proportionnel au
nombre d’échantillons. Ainsi, dans le but de réduire l’erreur, nous devrions soit
réduire la variance ou augmenter le nombre d’échantillons. La premiére option
est préférable, car elle ne nécessite aucun temps de calcul supplémentaire. Échan-
tillonnage d’importance nous permet de réduire l’écart-type de l’intégrande et
donc l’erreur en considérant plus souvent dans l’echantillonnage les régions im-
portantes de l’intégrale oú la fonction á intégrer est plus grande. Échantillonnage
d’importance utilise également d’une maniére cruciale les distributions de proba-
bilité non uniformes.
Considérons á nouveau l’intégrale unidimensionnelle
Z b
F = dx f (x). (2.6)
a
physique numérique, ydri et al. 121

Nous introduisons la distribution de probabilité p(x) telle que


Z b
1= dx p(x). (2.7)
a

Nous écrivons l’intégrale comme


b
f (x)
Z
F = dx p(x) . (2.8)
a p(x)
Nous évaluons cette intégrale par échantillonnage en fonction de la distribution de
probabilité p(x). En d’autres termes, nous trouvons un ensemble de N nombres
aléatoires xi qui sont distribués en fonction de p(x) puis estimer l’intégrale par la
somme

N
1 X f (xi )
FN = . (2.9)
N i=1 p(xi )

La distribution de probabilité p(x) est choisi de telle sorte que la fonction f (x)/p(x)
est lentement variable ce qui réduit l’écart-type correspondant.

12.3 Le modéle d’Ising


Nous considérons un réseau périodique dans d dimensions avec n points dans
chaque direction de sorte qu’il y a N = nd points au total dans le réseau. En
chaque point (site du réseau), nous plaçons un spin si qui peut prendre soit la
valeur +1 ou −1. Une configuration de ce systéme de N spins est donc précisé par
un ensemble de nombres {si }. Dans le modéle d’Ising l’énergie de ce systéme de
spins dans la configuration {si } est donnée par

X N
X
EI {si } = − ǫij si sj − H si . (3.10)
<ij> i=1

Le paramétre H est le champ magnétique externe. Le symbole < ij > désigne le


fait que pour chaque i la somme sur j est sur les spins des sites voisins les plus
proches. La somme sur < ij > s’étend sur γN /2 termes oú γ est le nombre de
voisins les plus proches. Dans les dimensions 2, 3, 4 nous avons γ = 4, 6, 8. Le
paramétre ǫij est l’énergie d’interaction entre les spins i et j. Pour les interactions
isotropes ǫij = ǫ. Pour ǫ > 0, on obtient ferromagnétisme tandis que pour ǫ < 0,
on obtient antiferromagnétisme. Nous considérons ici ǫ > 0. L’énergie est
122 physique numérique, ydri et al.

X N
X
EI {si } = −ǫ si sj − H si . (3.11)
<ij> i=1

La fonction de partition est donnée par


XX X
Z= ... e−βEI {si } . (3.12)
s1 s2 sN

Il y a 2N termes dans la somme et β = 1/kB T .


En d = 2, nous avons N = n2 spins dans le réseau carré. La configuration {si }
peut être considéré comme une matrice de dimension n × n. Nous imposons des
condition aux limites périodiques comme suit. Nous considérons une matrice de
dimension (n + 1) × (n + 1) oú la (n + 1)iéme ligne est identifiée avec la premiére
ligne et la (n + 1)iéme colonne est identifié avec la premiére colonne. Le réseau
carré est donc un tore.

12.4 L’Algorithme de Metropolis


L’énergie interne U =< E > peut être mis sous la forme
−βEs
P
s Es e
< E >= P −βEs
. (4.13)
se

En général la valeur moyenne < A > de n’importe quelle grandeur physique A


peut être calculé en utilisant une expression similaire, á savoir
−βEs
P
s As e
< A >= P −βEs
. (4.14)
se

Le nombre As est la valeur de A dans le micro-état s. En général, le nombre N


des micro-états est trés grand. Dans n’importe quelle simulation de Monte Carlo,
nous pouvons seulement générer un trés petit nombre n du nombre total N des
micro-états. En d’autres termes < A > et < E > seront estimés avec
Pn −βEs
s=1 Es e
< E > ≃ < E >n = P n −βEs
. (4.15)
s=1 e

Pn −βEs
s=1 As e
< A > ≃ < A >n = P n −βEs
. (4.16)
s=1 e
physique numérique, ydri et al. 123

Le calcul de < E >n et < A >n procède donc par 1) choisissant au hasard un
micro état s, 2) calculer Es , As et e−βEs puis 3) évaluant la contribution de ce
micro-état aux valeurs moyennes < E >n et < A >n . Cette procédure général de
Monte-Carlo est trés inefficace puisque le micro-état s est trés improbable et donc
sa contribution aux valeurs moyennes est négligeable. Nous avons besoin d’utiliser
l’échantillonnage d’importance. Á cette fin, nous introduisons une distribution de
probabilité ps et réécrire la valeur moyenne < A > sous la form

As −βEs
P
s ps e ps
< A >= P 1 −βE . (4.17)
s ps e
sp
s

Maintenant, nous générons des micro-états s avec des probabilités ps et nous esti-
mons < A > avec < A >n donnée par
Pn As −βEs
s=1 p e
< A >n = Pn 1s −βE . (4.18)
s=1 ps e
s

Ceci est l’échantillonnage d’importantce. L’algorithme de Metropolis est un échan-


tillonnage d’importance avec ps donné par la distribution de Boltzmann, c’est á
dire
e−βEs
ps = Pn −βEs . (4.19)
s=1 e

On obtient alors la moyenne arithmétique


n
1X
< A >n = As . (4.20)
n s=1

L’algorithme de Metropolis, dans le cas des systèmes de spin tels que le modèle
d’Ising, peut être résumé comme suit
1) Choisissez un micro-état initial.

2) Choisissez un spin au hasard et le retourner.

3) Calculer ∆E = Etrial − Eold . Il s’agit de la variation de l’énergie du système


due au retournement du spin.

4) Vérifiez si ∆E ≤ 0. Dans ce cas, le micro-état proposé est accepté.

5) Vérifiez si ∆E > 0. Dans ce cas, calculer le rapport des probabilités w =


e−β∆E .
124 physique numérique, ydri et al.

6) Choisissez un nombre aléatoire uniforme r dans l’inetrval [0, 1].

7) Vérifiez si r ≤ w. Dans ce cas, le micro-état proposé est accepté, sinon il est


rejeté.

8) Répétez les étapes 2) á 7) jusqu’á ce que tous les spins du système sont testés.
Ce balayage compte comme une unité de temps de Monte-Carlo.

9) Répétez les étapes 2) á 8) un nombre suffisant de fois jusqu’á ce que la


thermalisation (c’est á dire l’équilibre) est atteint.

10) Calculer les quantités physiques d’intérêt en n micro-états thermalisés. Cela


peut être effectuée périodiquement, afin de réduire la corrélation entre les
points de données.

11) Calculer les moyennes.

La démonstration que cet algorithme conduit en effet á une séquence d’états qui
sont distribués en fonction de la distribution de Boltzmann va comme suit.
Il est clair que les étapes 2) á 7) correspondent á une probabilitĂŠ de transition
entre les micro-états {si } et {sj } donnée par

W (i −→ j) = min(1, e−β∆E ) , ∆E = Ej − Ei . (4.21)

Puisque seulement le rapport des probabilités w = e−β∆E est exigé, il n’est pas
nécessaire de normaliser la distribution de probabilité de Boltzmann. Il est clair
que cette fonction de probabilité satisfait á la condition de bilan détaillé

W (i −→ j) e−βEi = W (j −→ i) e−βEj . (4.22)

Toute autre fonction de probabilité W qui satisfait á cette condition va générer une
séquence d’états qui sont distribués en fonction de la distribution de Boltzmann.
Cela peut être démontréPcomme suit. En sommant sur l’indice j dans l’équation
ci-dessus et en utilisant j W (i −→ j) = 1, nous obtenons

X
e−βEi = W (j −→ i) e−βEj . (4.23)
j

La distribution de Boltzmann est un vecteur propre de W . En d’autres termes


W laisse l’ensemble d’équilibre en équilibre. Comme il s’avére, cette équation (la
condition de bilan détaillé) est aussi une condition suffisante pour n’importe quel
ensemble d’approcher l’équilibre.
physique numérique, ydri et al. 125

12.5 L’Algorithme de Bain de Chaleur


L’algorithme de bain de chaleur est généralement un algorithme moins performant
que l’algorithme de Metropolis. La probabilité d’acceptation est donnée par

1
W (i −→ j) = min(1, ) , ∆E = Ej − Ei . (5.24)
1 + eβ∆E
Cette probabilité d’acceptation satisfait également la condition de bilan détaillé
pour la distribution de probabilité de Boltzmann. En d’autres termes la condition
d’équilibre qui est suffisante mais pas nécessaire pour un ensemble pour atteindre
l’équilibre n’a pas de solution unique.

12.6 L’Approximation du Champ Moyen


Nous considérons N = L2 spins sur un réseau carré oú L est le nombre de sites
du réseau dans chaque direction. Chaque spin peut prendre deux valeurs possibles
si = +1 et si = −1. Chaque spin interagit seulement avec ses 4 voisins et aussi
avec un champ magnétique H. Le modèle d’Ising á 2 dimensions est donné par
l’énergie
X X
E{s} = −J si sj − H si . (6.25)
<ij> i

Le systéme est supposé être en équilibre avec un bain de chaleur avec température
T . L’équilibre thermique du modèle d’Ising est décrit par l’ensemble canonique.
La probabilité de trouver le modèle d’Ising dans une configuration {s1 , ..., s2N } est
donnée par la distribution de Boltzmann

e−βE{s}
P {s} = . (6.26)
Z
La fonction de partition est donnée par
X X X
Z= e−βE{s} = ... e−βE{s} . (6.27)
{s} s1 s2N

L’aimantation M dans une configuration {s1 , ..., s2N } est le paramètre d’ordre du
système. Elle est définie par
X
M= si . (6.28)
i
126 physique numérique, ydri et al.

La moyenne M est donnée par


X
< M >= < si >= N < s > . (6.29)
i

En-dessus d< si >=< s > puisque tous les spins sont équivalentes. Nous avons
1 ∂ log Z ∂F
< M >= =− . (6.30)
β ∂H ∂H
Afin de calculer < M > nous avons besoin de calculer Z. Dans cette section, nous
utilisons l’approximation du champ moyen. D’abord, nous réécrivons l’énergie
E{s} sous la forme
X X
E{s} = −(J sj )si − H si
<ij> i
X X
= i
Heff si −H si . (6.31)
i i

Le champ magnétique effectif Heff


i
est donnée par
X
i
Heff = −J sj(i) . (6.32)
j(i)

L’indice j(i) parcourt les quatre plus proches voisins du spin i. Dans l’approximation
du champ moyen, nous remplaçons les spins sj(i) par leur moyenne thermique
< s >. Nous obtenons
i
Heff = −γJ < s > , γ = 4. (6.33)

En d’autre termes
X X
E{s} = −(H + γJ < s >) si = Heff si (6.34)
i i

La fonction de partition devient


X N
−βHeff si
Z = e
s1
 N
= e−βHeff
+eβHeff
(6.35)
 N
= 2 cosh βHeff . (6.36)
physique numérique, ydri et al. 127

L’énergie libre devient


 
F = −kT ln Z = −kT N ln 2 cosh βHeff . (6.37)

L’aimantation devient

< M >= N < s >= N tanh βHeff . (6.38)

Ainsi, pour un champ magnétique null nous obtenons la contrainte

< s >= tanh γβJ < s > . (6.39)

Il est clair que < s >= 0 est toujours une solution. Il s’agit de la phase paramag-
nétique á haute température. Pour des températures petite nous avons aussi une
solution < s >6= 0. Il s’agit de la phase ferromagnétique. Il doit exister une tem-
pérature critique Tc qui sépare les deux phases. Nous nous attendons que < s >
approche < s >= 0 quand T tend á Tc par dessous. En d’autres termes prés de
Tc nous pouvons traiter < s > en tant que petit et par conséquent nous pouvons
utiliser l’expansion tanh x = x − 31 x3 . Nous obtenons
1 3
< s >= γβJ < s > − γβJ < s > . (6.40)
3
De façon équivalente
 
3 1 γJ
2
(6.41)

<s> <s> − −T = 0.
T (γβJ)3 kB
Nous obtenons les deux solutions

< s >= 0 , phase paramagnetique


s
3 1
< s >= ± 3
(Tc − T )β , phase ferromagnetique. (6.42)
T (γβJ)

La température critique Tc et l’exposant critique β sont donnés par


γJ 1
Tc = , β= . (6.43)
kB 2
La solution ferromagnétique ne peut exister que pour T < Tc .
L’énergie libre pour un champ magnétique null est

 
F = −kT N ln 2 cosh γβJ < s > . (6.44)
128 physique numérique, ydri et al.

Nous voyons que, pour T < Tc la solution ferromagnétique a une énergie libre
inférieure á la solution paramagnétique < s >= 0. La phase T < Tc est en effet
ferromagnétique. La transition á T = Tc est du second ordre. L’énergie libre
est continue en T = Tc , c’est á dire il n’y a pas de chaleur latente alors que la
chaleur spécifique est logarithmiquement divergente. La théorie du champ moyen
donne la valeur correcte 0 pour l’exposant critique α, bien qu’il ne reproduit pas
la divergence logarithmique. La susceptibilité diverge á T = Tc avec un exposant
critique γ = 1. Ces derniers faits peuvent étre demontrés comme suit. La chaleur
spécifique est donnée par
 
∂ 2 ∂
Cv = − kB T (βF )
∂T ∂T
2
∂ 2 ∂
= −2kB T (βF ) − kB T (βF ). (6.45)
∂T ∂T 2
Ensuite, nous utilisons l’expression β = F − N ln(ex + e−x ) oú x = γβJ < s >.
Nous trouvons
Cv ∂x ∂2x 1 ∂x 2
= 2kB T tanh x + kB T 2 tanh x 2 + kB T 2 2 ( ) . (6.46)
N ∂T ∂T cosh x ∂T
Nous calculons
s s s
2
3kB 1 ∂x 1 3kB 1 ∂ x 1 3kB 3
x=± (Tc − T ) 2 , =∓ (Tc − T )− 2 , 2
=∓ (Tc − T )− 2 .
γJ ∂T 2 γJ ∂T 4 γJ
(6.47)
Il n’est pas difficile de montrer que les termes divergents s’annulent et par con-
séquence
Cv
∼ (Tc − T )−α , α = 0. (6.48)
N
La susceptibilité est donnée par

χ= <M >. (6.49)
∂H
Pour calculer le comportement de χ prés de T = Tc nous considérons l’équation
< s >= tanh(γβJ < s > +βH). (6.50)
Pour un champ magnétique faible, nous pouvons toujours supposer que γβJ <
s > +βH est petit prés de T = Tc et par conséquent nous pouvons développer
l’équation ci-dessus comme
1
< s >= (γβJ < s > +βH) − (γβJ < s > +βH)3. (6.51)
3
physique numérique, ydri et al. 129

En prenant la dérivée par rapport á H des deux côtés de cette équation, nous
obtenons

χ̂ = (γβJ χ̂ + β) − (γβJ χ̂ + β)(γβJ < s > +βH)2 . (6.52)


χ̂ = <s>. (6.53)
∂H
Fixant le champ magnétique á zéro on obtient

χ̂ = (γβJ χ̂ + β) − (γβJ χ̂ + β)(γβJ < s >)2 . (6.54)

En d’autre termes
 
1 − γβJ + γβJ(γβJ < s >) χ̂ = β − β(γβJ < s >)2 .
2
(6.55)

Tc − T 1
2 χ̂ = (1 − (γβJ < s >)2 ). (6.56)
T kB T

Ainsi
1
χ̂ = (Tc − T )−γ , γ = 1. (6.57)
2kB

12.7 Résultats Numériques


Dans les exercices de laboratoire, nous allons calculer la fonction de corrélation, les
exposants critiques ainsi que la transition de phase du premier ordre et le hystérésis
associé.

12.8 La Méthode de Jackknife


Dans les simulations numériques, n’importe quel ensemble de points de donnés va
contenir des corrélations entre les différents points. En d’autres termes les points
de donnés ne sont pas statistiquement indépendant et par conséquence on ne peut
pas utiliser la formule habituelle pour calculer l’écart-type de la moyenne (c’est á
dire l’erreur probable). L’objectif de la méthode de Jackknife est d’estimer l’erreur
dans un ensemble de points de donnés qui contient de corrélation. Cette méthode
fonctionne comme suit:
130 physique numérique, ydri et al.

1) Nous commençons avec un échantillon de N mesures (points de donnés)


{X1 , ..., Xn }. Nous calculons la moyenne
N
1 X
< X >= Xi . (8.58)
N i=1

2) Nous jetons le point de donné Xj . Nous obtenons un échantillon de N −


1 mesures {X1 , ..., Xj−1, Xj+1, ..., Xn }. Cet échantillon est appelé un bac.
Puisque j = 1, ..., N nous avons N bacs. Nous calculons la moyenne
N
1 X
< X >j = ( Xi − Xj ). (8.59)
N − 1 i=1

3) L’écart-type de la moyenne sera estimé en utilisant la formule


N
N −1X
σ12 = (< X >j − < X >)2 . (8.60)
N j=1

L’erreur de Jackknife est σ1 .


Il n’est pas difficile de montrer que
< X > −Xj
< X >j − < X >= . (8.61)
N −1
Ainsi
N
1 X
σ12 = (Xj − < X >)2 = σmean
2
. (8.62)
N(N − 1) j=1

En général, ce résultat ne sera pas vrai et l’estimation de Jackknife de l’erreur


est plus robuste.
4) Ceci peut être généralisé en jetant z points de donnés de {X1 , ...., Xn }. Nous
nous retrouvons avec n = N/z bacs. Nous calculons les moyennnes < X >j
sur les bacs d’une maniére évidente. L’écart-type correspondant sera donné
par
n
n−1X
σz2 = (< X >j − < X >)2 . (8.63)
n j=1

5) z prend les valeurs z = 1, ..., N − 1. L’erreur est le maximum de σz en


fonction de z.
13
Travaux Pratiques
132 physique numérique, ydri et al.

13.1 Nombres Aléatoires


Partie I Nous considérons un générateur de nombres pseudo-aléatoires donnée
par le générateur congruentiel linéaire
 
ari + c
ri+1 = remainder .
M
Les coefficients a, c et M sont le multiplicateur, l’incrément et le module. Le
nombre aléatoire initial est appelé la graine. Nous prenons les valeurs

g1 : a = 106, c = 1283, M = 6075, r1 = 12


g2 : a = 899, c = 0, M = 32768, r1 = 12
g3 : a = 57, c = 1, M = 256, r1 = 10. (1.1)
La fonction “remainder” est réalisé en Fortran par
a
remainder = mod(a, b).
b
1) Calculer la séquence des nombres aléatoires ri obtenus en utilisant les paramétres
ci-dessus. Plot ri en fonction de i. Construire un scatterplot (diagramme de
dispersion) (xi = ri , yi = ri+1 ).
Comparer aussi avec le générateur interne srand.
2) Calculer la moyenne des nombres aléatoires. Qu’est-ce que vous observez.
3) Soit N le nombre générés de nombres aléatoires. Calculer la fonction de
corrélation non-normalisée définie par
N −k
1 X
sum1 (k) = xi xi+k .
N − k i=1

Calculer aussi la fonction de corrélation normalisée


sum1 (k)− < xi >< xi+k >
sum2 (k) = .
sum1 (0)− < xi >2

N −k
1 X
< xi+k >= xi+k .
N − k i=1

Quel est le comportement de ces fonctions en fonction de k.


4) Calculer la période des générateurs ci-dessus.
physique numérique, ydri et al. 133

Partie II (optionnel) La statistique du chi-deux (χ2 ) est defini par


1 X
χ2 = (Ni − nideal )2 .
nideal i

Nous prenons N nombres aléatoires dans l’intervalle [0, 1] qui est divisé en K bins
de longueur δ = 1/K. Soit Ni le nombre de nombres aléatoires qui tombent dans
le bin i. Pour une séquence uniforme de nombres aléatoires le nombre de nombres
aléatoires dans chaque bin est
N
nideal = .
K
1) Vérifier ce résultat pour le générateur "rand" trouvé dans la bibliothéque
standard de Fortran avec une graine donnée par seed = 32768. Nous prenons
K = 10 et N = 1000. Plot Ni en fonction de la position xi de bin i.

2) Le nombre de degrés de liberté est ν = K − 1. La valeur la plus probable de


χ2 est ν. Vérifier ce résultat pour un nombre total de tests egale à L = 1000
et K = 11. Chaque fois calculer le nombre de fois Li dans le L = 1000
tests nous obtenons une valeur spécifique de χ2 . Plot Li en fonction de χ2 .
Qu’est-ce que vous observez.
134 physique numérique, ydri et al.

13.2 Marche au Hasard


Partie I Nous considérons le mouvement d’un marcheur aléatoire dans une seule
dimension. Le marcheur peut se déplacer avec un pas si = a vers la droite avec une
probabilité p ou d’un pas si = −a vers la gauche P
avec une probabilité q = 1 − p.
Aprés N étapes la position de marcheur est xn = i si . Nous prenons

1
p=q= , a = 1.
2
Afin de simuler le mouvement d’un marcheur aléatoire, nous avons besoin d’un
générateur de nombres aléatoires. Dans ce probléme, nous travaillons avec le
générateur "rand" trouvé dans la bibliothéque standard de Fortran. Nous appelons
ce générateur comme suit

call srand(seed)
rand()

La graine est choisie comme suit

seed = 32768.

Le mouvement du marcheur aléatoire est mis en oeuvre avec le code

if (rand() < p) then


xN = xN + a
else
xN = xN − a
endif.

1) Calculer les positions xi de trois marcheurs aléatoires différents en fonction


du nombre de pas i. Nous prenons i = 1, 100. Ploter les trois trajectoires.

2) Nous considérons maintenant le mouvement de K = 500 marcheurs aléa-


toires. Calculer les moyennes

K
1 X (i)
< xN >= x .
K i=1 N
physique numérique, ydri et al. 135

K
1 X (i) 2
< x2N >= (x ) .
K i=1 N

(i)
Dans les équations ci-dessus xN est la position du marcheur aléatoire i aprés
N pas. Etudier le comportement de ces moyennes en fonction de N. Com-
parer avec les prédictions théoriques.

Partie II (optionnel) Nous examinons ensuite un marcheur aléatoire en deux


dimensions sur un réseau de points infini. De n’importe quel point (i, j) sur le
réseau le promeneur peut seulment atteindre l’un des 4 sites du voisinage le plus
proche donnée par (i + 1, j), (i − 1, j), (i, j + 1) et (i, j − 1) avec des probabilities
égales á px , qx , py et qy respectivement de telle sorte que px + qx + py + qy = 1.
Par souci de simplicité, nous supposerons que px = qx = py = qy = 0.25.

1) Calculer les moyennes < ~rN > et < ~rN


2
> en fonction du nombre de pas N
pour une collection de L = 500 marcheurs aléatoires en deux dimensions.
Nous considérons les valeurs N = 10, ..., 1000.
136 physique numérique, ydri et al.

13.3 Approximation du Point Médian


Le volume d’une boule de rayon R en d dimensions est donnée par

Z
Vd = dx1 ...dxd
x21 +...+x2d ≤R2
Z q
= 2 dx1 ...dxd−1 R2 − x21 − ... − x2d−1
d
Rd 2π 2
= .
d Γ( d2 )

1) Ecrire un programme qui calcule l’intégrale tridimensionnelle en utilisant


l’approximation du Point Médian. Nous prenons le pas de discrétisation
h = 2R/N, le rayon R = 1 et le nombre d’étapes dans chaque direction egale
á N = Nx = Ny = 2p oú p = 1, 15.

2) Montrer que l’erreur est proportionnelle á 1/N. Tracer le logarithme de la


valeur absolue de l’erreur en fonction du logarithme de N

3) (optionnel): Essayez l’intégrale bidimensionnelle. Travailler dans le quadrant


positif et de nouveau prenez le pas de discrétisation h = R/N oú R = 1
et N = 2p , = 1, 15. On sait que génériquement l’erreur théorique va au
moins comme 1/N 2 . Qu’est-ce que vous trouvez? Pourquoi trouvez-vous
une discrepancie?
Hint: la dérivée seconde de l’intégrande est singuliére á x = R ce qui change
la dépendance de 1/N 2 á 1/N 1.5 .

4) Afin de calculer numériquement le volume de la boule dans n’importe quelle


dimension d nous utilisons la formule de récursivité

+R
Vd−1
Z
d−1
Vd = dxd (R2 − x2d ) 2 .
Rd−1 −R

Trouvez les volumes dans les dimensions d = 4, 5, 6, 7, 8, 9, 10, 11. Comparer


avec les résultats exacts donnés ci-dessus.
physique numérique, ydri et al. 137

13.4 Approximations de Monte Carlo


Partie I Nous considerons une fois encore les intégrales
Z
Vd = dx1 ...dxd .
x21 +...+x2d ≤R2

1) Utilisez la méthode d’ échantillonnage basée sur la methode de rejet de Monte


Carlo pour trouver les intégrales dans les dimensions d = 2, 3, 4 et 10.
Pour chaque valeur de d nous effectuons M mesures chaque avec N échan-
tillons. Nous considérons M = 1, 10, 100, 150√et N = 2p , p = 10, 19. Vérifiez
que l’erreur exacte dans ce cas va comme 1/ N.
Hint: Comparer l’erreur exacte qui est connue dans ce cas avec l’écart-type
de la moyenne σM . Ces deux quantités doivent être identiques.
2) Utilisez maintenant la méthode d’ échantillonnage basée sur la methode de
la valeure moyenne de Monte Carlo. L’intégrale d’intérêt peut s’écrire sous
la forme

Z q
Vd = 2 dx1 ...dxd−1 R2 − x21 − ... − x2d−1 .

Hint: Comparer√ maintenant l’erreur exacte avec l’écart-type de la moyenne


σM et avec σ/ N oú σ est l’écart-type d’une seul mesure. Ces trois quantités
doivent être identiques.

Partie II (optionnel)
1) La valeur de π peut être donnée par l’intégrale
Z
π= dx dy.
x2 +y 2 ≤R2

Utilisez la méthode de rejet de Monte Carlo pour donner une valeur approx-
imative de π.
2) L’intégrale ci-dessus peut également être mis sous forme
Z +1 √
π=2 dx 1 − x2 .
−1

Utilisez la méthode de la valeur moyenne de Monte Carlo pour donner une


autre approximation de π.
138 physique numérique, ydri et al.

13.5 Distributions de Probabilité Non Uniforme


Partie I La distribution Gaussienne est donnée par

1 (x − µ)2
P (x) = √ exp − .
2πσ 2 2σ

Le paramétre µ est la moyenne et σ est la variance (i.e. la racine carrée de l’écart-


type). Nous choisissons µ = 0 et σ = 1.

1) Ecrire un programme qui calcule une séquence de nombres aléatoires x répar-


tis selon P (x) en utilisant la méthode de transformation inverse (algorithme
de Box-Muller) donnés par les équations

x = r cos φ.

r 2 = −2σ 2 ln v , φ = 2πw.

Le v et w sont des nombres aléatoires uniformes dans l’intervalle [0, 1].

2) Construire un histogramme de la distribution de probabilité obtenue á la


question précédente. Les étapes sont comme suit

a- Déterminer le rang des points x.


b- Nous divisons l’intervalle en u bacs/cellules. La longueur de chaque
cellule est de h = intervalle/u. Nous prenons pour exemple u = 100.
c- Nous déterminons l’emplacement de chaque point x parmi les bacs.
Nous augmentons le compteur du bac correspondant par une unité.
d- La fraction de points dans un bac donnée est égal au nombre de nombres
aléatoires dans ce bac divisé par hN oú N est le nombre total de nombres
aléatoires. Tracer la fraction de points en fonction de x. Nous prenons
N = 10000.

3) Tracer les données sur une échelle logarithmique, i.e. tracer log(fraction) par
rapport á x2 . Trouver le fit et comparer avec la théorie.
physique numérique, ydri et al. 139

Partie II (optionnel)

1) Appliquer la méthode de rejet au probléme ci-dessus.

2) Appliquer l’algorithme de Fernandez et Criado au probléme ci-dessus. La


procédure est la suivante

a- Commencez avec N points xi tel que xi = σ.


b- Choisir au hasard une paire (xi , xj ) á partir de la séquence et apporter
la modification suivante
xi + xj
xi −→ √
2

xj −→ −xi + 2xj .

c- Répétez l’étape 2 jusqu’á ce que nous atteignons l’équilibre. Par exem-


ple essayer M fois oú M = 10, 100, ....
140 physique numérique, ydri et al.

13.6 Algorithme de Metropolis et Modèle d’Ising


Partie I Nous considérons N = L2 spins sur un réseau carré où L est le nombre
de sites dans chaque direction. Chaque spin peut prendre deux valeurs possibles
si = 1 où si = −1 et interagit seulement avec ses 4 proche voisins et aussi avec
un champ magnétique H. Le modèle d’Ising en deux dimensions est donnée par
l’énergie

X X
E = −J si sj − H si .
<ij> i

Le spin trouvé dans le point d’intersection de la ligne i et de la colonne j sera


représentée par l’élément de matrice φ(i, j). L’énergie alors s’écrit

L  
J X
E = − φ(i, j) φ(i + 1, j) + φ(i − 1, j) + φ(i, j + 1) + φ(i, j − 1)
2 i,j=1
X
− H φ(i, j).
i=1

Nous allons imposer des conditions aux limites toroïdal, à savoir

φ(0, j) = φ(n, j) , φ(n + 1, j) = φ(1, j) , φ(i, 0) = φ(i, n) , φ(i, n + 1) = φ(i, 1).

Le système est supposé être en équilibre avec un réservoir de chaleur avec la


température T . Fluctuations thermiques du système sera simulée en utilisant
l’algorithme de Metropolis.

1) Écrire un routine qui calcule l’énergie E et l’aimantation M du modèle d’Ising


dans une configuration φ. L’aimantation est le paramètre d’ordre du système.
Elle est définie par
X X
M= si = φ(i, j).
i i,j=1

2) Écrire un routine qui implémente l’algorithme de Metropolis pour ce système.


La variation de l’énergie due au retournement du spin φ(i, j) est donnée par


∆E = 2Jφ(i, j) φ(i + 1, j) + φ(i − 1, j) + φ(i, j + 1) + φ(i, j − 1)
+ 2Hφ(i, j).
physique numérique, ydri et al. 141

3) Nous choisissons L = 10, H = 0, J = 1, β = 1/T . Nous considérons à la fois


un démarrage à froid et un démarrage à chaud donnée respectivement par

φ(i, j) = +1.

φ(i, j) = signes aleatoire.

Exécuter l’algorithme de Metropolis pour un temps de thermalisation TTH =


26 et étudier l’histoire de l’énergie et l’aimantation pour différentes valeurs
de la température.

4) Ajouter une évolution de Monte Carlo avec TTM = 210 et calculer les
moyennes de E et M.

5) Calculer la chaleur spécifique et la susceptibilité du système. Elles sont


définies par
∂ β ∂
Cv = < E >= (< E 2 > − < E >2 ) , χ = < M >= β(< M 2 > − < M >2 ).
∂β T ∂H

6) Déterminer le √
point critique. Comparez avec le résultat théorique exacte
kB Tc = 2J/ln( 2 + 1).

Partie II (optionnel) Ajouter à votre code un routine séparée qui implémente


la méthode de Jackknife pour un ensemble quelconque de points de données. Cal-
culer les erreurs dans l’énergie, l’aimantation, la chaleur spécifique et la suscepti-
bilité du modèle d’Ising en utilisant la méthode de Jackknife.
142 physique numérique, ydri et al.

13.7 Transition de Phase Ferromagnétiques


Partie I L’exposant critique associé à la chaleur spécifique est donnée par α = 0,
à savoir
Cv
∼ (Tc − T )−α , α = 0.
L2
Cependant la chaleur spécifique diverge logarithmiquement à T = Tc . Cela se
traduit par le fait que le pic croît avec L logarithmiquement, à savoir
Cv
∼ ln L.
L2
Vérifiez ce comportement numériquement. À cette fin, nous prenons des réseaux
entre L = 10 − 30 avec TTH = 210 , TMC = 213 . La température est prise dans la
gamme

T = Tc − 10−2 × step , step = −50, 50.

Tracer le maximum de Cv /L2 par rapport à ln L.

Partie II L’aimantation prés (mais en dessous) de la température critique se


comporte comme
<M > 1
2
∼ (Tc − T )β , β = .
L 8
Nous proposons d’étudier l’aimantation prés de Tc afin de déterminer la valeur de
β numériquement. Nous prenons L = 30 avec TTH = 210 et TMC = 213 . Nous
proposons de tracé < M > contre Tc − T oú T est dans la gamme

T = Tc − 10−3 × step , step = 0, 500.

Partie III La susceptibilité prés de la température critique se comporte comme

χ −γ 7
∼ |T − Tc | , γ = .
L2 4
Déterminer γ numériquement. Utilisez TTH = 210 , TMC = 213 , L = 30 avec T
dans la gamme suivante

T = Tc + 0.1 + 5 × 10−3 step , step = 0, 100.


physique numérique, ydri et al. 143

13.8 La Fonction de Corrélation


Dans cet exercice, nous allons poursuivre notre étude de la transition de phase
ferromagnétique. En particulier, nous allons calculer la fonction de corrélation
défini par l’expression

f (n) = < s0 sn >


 
1 X
= < φ(i, j) φ(i + n, j) + φ(i − n, j) + φ(i, j + n) + φ(i, j − n) > .
4L2 i,j

1) Vérifiez que á T = Tc le comportement de f (n) est donnée par


1 1
f (n) ≃ , η = .
nη 4

2) Vérifiez que á T moins de Tc le comportement de f (n) est donnée par

f (n) =< M >2 .

3) Vérifiez que á T plus de Tc le comportement de f (n) est donné par


1 − nξ
f (n) ≃ a e .

Dans toutes les questions ci-dessus nous prenons des réseaux impair, c’est á
dire L = 2LL + 1 avec LL = 50. Nous considérons également les paramétres
TTH = 210 , TTC = 213 .

4) Prés de Tc la longueur de corrélation diverge comme


1
ξ≃ , ν = 1.
|T − Tc |ν

Vérifiez ce fait. Dans cette question nous prenons LL = 20, TTH = 210 ,
TTC = 215 et les températures

T = Tc + 0.1 × step , step = 0, 10.


144 physique numérique, ydri et al.

13.9 Hystérésis et Transition de Phase du Premier


Ordre
Dans cet exercice, nous considérons l’effet du champ magnétique sur la physique
du modéle d’Ising. Nous allons observer une transition de phase du premier ordre
á H = 0 ou H proche de 0 et un phénoméne d’hystérésis.

Transition de Phase du Premier Ordre: Nous allons calculer l’aimantation


et l’énergie en fonction de H pour des valeurs différentes de la températures T .
L’initialisation se fera une seule fois pour tous les H. La thermalisation sera
effectuée aussi une seule fois pour la premiére valeur du champ magnétique H, par
exemple H = −5. Lorsque le calcul de l’aimantation et l’energie pour H = −5
est terminé, nous commençons lentement (adiabatiquement) á changer le champ
magnétique pour ne pas perdre la thermalisation du systéme d’Ising. Nous essayons
la gamme H = −5, 5 á petits pas égal á 0.25.

1) Pour T < Tc , par exemple T = 0.5 et T = 1.5, déterminer le point de


transition de phase á partir des discontinuités observées dans l’énergie et
l’aimantation. Les sauts de l’énergie et de l’aimantation sont les signaux
typique d’une transition de phase du premier ordre. La transition devrait se
faire á une valeur non nulle de H due á l’hystérésis. Le saut de l’énergie est
associée á une valeur non nulle de la chaleur latente.

2) Pour T > Tc , par exemple T = 3 et T = 5, l’aimantation est une fonction


lisse, i.e. régulier de H prés de H = 0 ce qui signifie qu’au-dessus de Tc il
n’ya pas de distinction entre les états ferromagnétique avec M ≥ 0 et M ≤ 0.

Hystérésis: Nous calculons l’aimantation en fonction de H pour une gamme de


H de −5 á 5 et puis immediatement nous recalculons l’aimantation pour la même
gamme de H dans le sens inverse, i.e. de 5 á −5.

1) Nous devrions observer une boucle de hystérésis.

2) Vérifiez que la fenêtre de la boucle de hystérésis se rétrécit avec l’augmentation


de la température ou l’accumulation de temps de Monte-Carlo .

3) Vérifiez ce qui se passe si l’on augmente la taille du réseau.

Le phénoméne d’hystérésis indique que le comportement du systéme dépend de


son état initial et de son histoire. En d’autres termes le systéme est piégé dans
des états métastables.
Appendix
A
Éléments de Fortran
148 physique numérique, ydri et al.
Note sur les Erreurs Numériques
B
B.1 Représentation en Virgule Flottante
Un nombre réel x peut être mis sous la forme binaire

x = ±m × 2e−bias , 1≤m < 2 , m = b0 .b1 b2 b3 ... (1.1)

Nous considérons une machine de 32 bits. Puisque 1≤m < 2, nous devons avoir
b0 = 1. Nous disons que cette expansion binaire est normalisée. Dans le cas d’une
précision simple, nous utilisons un mot de longueur 32 bits avec un des bits pour le
signe, 8 bits pour l’ exposant e et 23 bits pour la mantisse m. Parce que seulement
8 bits sont utilisés pour stocker l’exposant nous devons avoir e dans la gamme
0≤e≤255. Le paramétre bias est choisi de tel sorte que l’exposant est dans la
gamme −127≤e − bias≤128. En d’autre termes nous choisissons bias = 127. De
cette façon, nous pouvons avoir de trés petits nombres avec des exposants toujours
positifs. Puisque le premier bit de la mantisse est 1 les bits stockés de la mantisse
sont seulement b1 b2 ...b23 . Si b24 , b25 , .. ne sont pas tous nuls la représentation en
virgule flottante n’est pas exacte. Strictement parlant un nombre á virgule flottante
est un nombre pour lequel b24 = b25 = ..0. La représentation en virgule flottante
d’un certain nombre réel non nul est unique en raison de la condition 1≤m < 2.
En résumé, le nombre réel ci-dessus est représenté sur l’ordinateur par

xnormal float = (−1)s 1.f × 2e−127 , 0 < e < 255. (1.2)


150 physique numérique, ydri et al.

Ces nombres sont les nombres á virgule flottante normaux. Le point binaire peut
être déplacé (il est flottant) vers n’importe quelle position dans la chaîne de bits
en choisissant un exposant approprié.
Le nombre normalisé le plus petit est 2−126 . Les nombres á virgule flottante
sous-normaux sont représentées par
xsubnormal float = (−1)s 0.f × 2−126 . (1.3)

Ces nombres ne sont pas normalisées. En fait l’espace compris entre 0 et le plus
petit nombre positif normalisé est rempli par les nombres sous-normaux.
Explicitement nous avons
s e f
bit 31 30-23 22-0
Puisque seulement un nombre fini de bits est utilisé, l’ensemble des nombres de
la machine (les nombres que l’ordinateur peut stocker exactement ou approxi-
mativement) est beaucoup plus petit que l’ensemble des nombres réels. Il y a
un maximum et un minimum. En dépassant le maximum on obtient la condition
d’erreur connue sous le nom de overflow (débordement). En dépassant le minimum
nous obtenons la condition d’erreur connue sous le nom underflow.
Le plus grand nombre correspond au nombre normal flottant avec s = 0, e =
254 et 1.f = 1, 111..1 (avec 23 1 aprés le point binaire). Nous calculons 1.f =
1 + 0.5 + 0.25 + 0.125 + ... = 2. Ainsi xnormal float max = 2 × 2127 ≃ 3.4 × 1038 .
Le plus petit nombre correspond au nombre sous-normal flottant avec s = 0 et
0.f = 0.00...1 = 2−23 . Ainsi xsubnormale float min = 2−149 ≃ 1.4 × 10−45 . Nous
obtenons pour les nombres flottants avec précision simple la gamme

1.4 × 10−45 ≤ precision simple ≤3.4 × 1038 . (1.4)


On remarque que

2−23 ≃ 10−6.9 . (1.5)

Ainsi les nombres flottants avec précision simple ont 7 places décimales d’importance.
Il y a des cas spéciaux. Le zéro ne peut pas être normalisée. Il est représenté
par deux nombres flottants ±0. Aussi ±∞ sont des nombres spéciaux. Enfin NaN
(pas un nombre) est également un cas particulier. Explicitement, nous avons
±0 = (−1)s 0.0...0 × 2−126 . (1.6)

±∞ = (−1)s 1.0...0 × 2127 . (1.7)


physique numérique, ydri et al. 151

NaN = (−1)s 1.f × 2127 , f 6= 0. (1.8)


Les nombres flottants avec double précision occupent 64 bits. Le premier bit
est le signe, 11 bits pour l’exposant et 52 bits pour la mantisse. Ils sont stockés
sous forme de deux mots de longueur 32 bits. Explicitement

s e f f
bit 63 62-52 51-32 31-0
Dans ce cas, bias = 1023. Ils correspondent á peu prés á 16 place décimales de
précision. Ils sont dans la gamme

4.9 × 10−324 ≤ double precision ≤1.8 × 10308 . (1.9)


La description ci-dessus correspond á la convention IEEE 754 adoptée en 1987
par l’ Institute of Electrical and Electronics Engineers (IEEE) et American Na-
tional Standards Institute (ANSI).

B.2 Epsilon de la Machine et Erreurs d’Arrondi


L’écart ǫ entre le nombre 1 et le plus grand nombre suivant est appelé la précision de
la machine. Pour précision simple nous obtenons ǫ = 2−23 . Pour double précision
nous obtenons ǫ = 2−52 .
Alternativement, la précision de la machine ǫm est le plus grand nombre positif
qui, si il est ajouté au nombre stocké en tant que 1 il ne le changera pas, á savoir
1c + ǫm = 1c . (2.10)
Il est clair que ǫm < ǫ. Le nombre xc est la représentation sur l’ordinateur du
nombre x. L’erreur relative ǫx en xc est donc tel que
xc − x
|ǫx | = | |≤ǫm . (2.11)
x
Tous les nombres de précision simple contiennent une erreur á leur 6éme place
décimal et tous les nombres de double précision contiennent une erreur á leur
15éme place décimal.
Une opération sur l’ordinateur ne peut fournir qu’une approximation de la
réponse analytique puisque les nombres sont stockés approximativement. Par ex-
emple la différence a = b − c est sur l’ordinateur ac = bc − cc . Nous calculons
ac b c
= 1 + ǫb − ǫc . (2.12)
a a a
152 physique numérique, ydri et al.

En particulier, la soustraction de deux trés grands nombres á peu prés égales b et


c peut conduire á une erreur trés importante dans la réponse ac . En effet nous
obtenons l’erreur
b
ǫa ≃ (ǫb − ǫc ). (2.13)
a
En d’autres termes le grand nombre b/a peut amplifier considérablement l’erreur.
C’est ce qu’on appelle l’annulation soustractive.
Considérons maintenant l’opération de multiplication de deux nombres b et
c pour produire un certain nombre a, á savoir a = b × c. Cette opération est
représentée sur l’ordinateur par ac = bc × cc . Nous obtenons l’erreur

ǫa = ǫb + ǫc . (2.14)

Considérons maintenant une opération impliquant un grand nombre N d’étapes.


La question que nous voulons poser est de savoir comment l’erreur d’arrondi
s’accumule.
L’observation principale est que l’erreur d’arrondi croit lentement et au hasard
avec N. Elle diverge quand N devient trés grande. En supposant que les erreurs
d’arrondi dans les différentes étapes de l’opération ne sont pas corrélés, nous pou-
vons voir l’accumulation de l’erreur comme un probléme de marche aléatoire avec
un pas égal á la précision de la machine ǫm . Nous savons de l’étude du prob-
lème de marche aléatoire
√ en mécanique statistique que l’erreur d’arrondi total sera
proportionnelle á N , á savoir

ǫro = Nǫm . (2.15)

Ceci est l’estimation la plus conservatrice de l’erreur d’arrondi. Les erreurs d’arrondi
sont analogues aux incertitudes dans les mesures des grandeurs physiques.

B.3 Erreurs Systématiques (algorithmique)


Ce type d’erreurs découlent de l’utilisation de solutions numériques approximative.
En général, l’erreur algorithmique (systématique) est inversement proportionnelle
á une puissance du nombre d’étapes N, soit
α
ǫsys = . (3.16)

L’erreur totale est obtenue en ajoutant l’erreur d’arrondi, á savoir
α √
ǫtot = ǫsys + ǫro = β + Nǫm . (3.17)
N
physique numérique, ydri et al. 153

Il y a naturellement une concurrence entre les deux types d’erreurs. Pour les
petites N, c’est l’erreur systématique qui domine tandis que pour les grandes N
c’est l’erreur d’arrondi qui domine. C’est trés intéressant parce que cela signifie
que, en essayant de diminuer l’erreur systématique (en augmentant N), nous allons
augmenter l’erreur d’arrondi. Le meilleur algorithme est l’algorithme qui donne
une approximation acceptable dans un petit nombre d’étapes de sorte qu’il n’y
aura pas de temps pour les erreurs d’arrondi de croître trop.
A titre d’exemple, considérons le cas β = 2 et α = 1. L’erreur totale est
1 √
ǫtot = + Nǫm . (3.18)
N2
Cette erreur est minimal lorsque
dǫtot
= 0. (3.19)
dN
Pour le calcul avec précision simple (ǫm = 10−7 ), nous obtenons N = 1099. Ainsi
ǫtot = 4 × 10−6 . La plupart de l’erreur est arrondi.
Afin de diminuer l’erreur d’arrondi et donc l’erreur totale dans l’exemple ci-
dessus, nous devons réduire le nombre d’étapes. De plus, pour que l’erreur systé-
matique n’augmente pas quand on diminue le nombre d’étapes nous devons trouver
un autre algorithme qui converge rapidement avec N. Pour un algorithme avec
α = 2 et β = 4 l’erreur totale est
2 √
ǫtot = + Nǫm . (3.20)
N4
Cette erreur est minimale maintenant á N = 67 pour lequel ǫtot = 9 × 10−7 . Nous
avons seulement 1/16 le nombre original d’étapes avec une erreur 4 fois plus petite.
154 physique numérique, ydri et al.
C
Exercices

Exercice 1: Nous donnons les équations différentielles


dx
= v. (0.1)
dt

dv
= a − bv. (0.2)
dt
• Écrivez les solutions exactes.

• Écrivez les solutions numériques de ces équations différentielles à l’aide des


méthodes d’Euler et de Verlet et déterminer les erreurs correspondantes.

Exercise 2: L’équation de mouvement du système solaire en coordonnées po-


laires est
d2 r l2 GM
2
= 3
− 2 . (0.3)
dt r r
Résoudre cette équation à l’aide d’Euler, d’Euler-Cromer et Verlet.

Exercice 3: L’équation de mouvement d’un objet en chute libre est


d2 z
= −g. (0.4)
dt2
156 physique numérique, ydri et al.

• Écrivez les solutions exactes.

• Donner la solution de ce problème en termes de la méthode d’Euler et déter-


miner l’erreur.

• Nous choisissons les conditions initiales z = 0, v = 0 à t = 0. Déterminer


la position et la vitesse entre t = 0 et t = 1 pour N = 4. Comparer avec la
solution exacte et calculer l’erreur à chaque étape. Exprimer le résultat en
termes de l = g∆t2 .

• Donner la solution de ce probléme en termes des méthodes d’Euler-Cromer


et de Verlet et déterminer les erreurs correspondantes.

Exercice 4: L’équation régissant la croissance démographique est


dN
= aN − bN 2 . (0.5)
dt
Le terme linéaire représente le taux de naissance tandis que le terme quadratique
représente le taux de dècés. Donner une solution de ce problème en termes de la
méthodes d’Euler et Verlet et déterminer les erreurs correspondantes.

Exercice 5: Résoudre les équations différentielles suivantes en utilisant la méth-


ode de Runge-Kutta:
d2 r l2 GM
2
= 3
− 2 . (0.6)
dt r r

d2 z
= −g. (0.7)
dt2

dN
= aN − bN 2 . (0.8)
dt

Exercice 6: Le modèle de Lorenz est un système chaotique donnée par les trois
équations différentielles de premier ordre couplés:
dx
= σ(y − x)
dt
dy
= −xz + rx − y
dt
dz
= xy − bz. (0.9)
dt
physique numérique, ydri et al. 157

Ce système est une version simplifiée du système des équations de Navier-Stokes


de la mécanique des fluides qui est pertinent pour le probléme de Rayleigh-B
énard. Trouvez la solution numérique de ces équations en utilisant la méthode de
Runge-Kutta.

Vous aimerez peut-être aussi