physique numérique3 intégration numérique 21 ... généralement trop lentement par comparaison...

163
Physique Numérique Badis Ydri Departement de Physique, Faculté des Sciences, Université d’Annaba, Annaba, Algerie.

Upload: others

Post on 30-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Physique Numérique

Badis Ydri

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

Annaba, Algerie.

Page 2: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

2 physique numérique, ydri et al.

Page 3: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Contents

Introduction et Références 3

Partie I 7

1 Algorithme d’Euler- Résistance d’Air et Projectiles 71.1 Algorithme d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2 Désintégration Radioactive . . . . . . . . . . . . . . . . . . . . . . . 81.3 La Résistance de l’Air . . . . . . . . . . . . . . . . . . . . . . . . . 101.4 Code de Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.5 Mouvement d’un Projectile . . . . . . . . . . . . . . . . . . . . . . . 15

2 Algorithmes d’Euler-Cromer et de Verlet-Oscillateur Harmonique 172.1 Pendule Simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Algorithme d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.3 Algoritme d’Euler-Cromer . . . . . . . . . . . . . . . . . . . . . . . 192.4 Algorithme de Verlet . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Intégration Numérique 213.1 Approximation Rectangulaire . . . . . . . . . . . . . . . . . . . . . 213.2 Méthode des Trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . 223.3 Approximation Parabolique oú la Régle de Simpson . . . . . . . . . 233.4 Erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4 Algorithmes de Newton-Raphson et Interpolation 274.1 Méthode de Dichotomie . . . . . . . . . . . . . . . . . . . . . . . . 274.2 Algorithme de Newton-Raphson . . . . . . . . . . . . . . . . . . . . 284.3 Méthode Hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4 Interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . 304.5 Interpolation Spline Cubique . . . . . . . . . . . . . . . . . . . . . . 314.6 Méthode des Moindres Carrés . . . . . . . . . . . . . . . . . . . . . 33

Page 4: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

4 physique numérique, ydri et al.

5 Travaux Pratiques 355.1 Algorithme d’Euler- Resistance d’Air . . . . . . . . . . . . . . . . . 355.2 Mouvement des Projectiles Sous l’Effet de la Résistance de l’Air . . 365.3 Oscillateur Harmonique-Algorithmes d’Euler-Cromer et de Verlet . 375.4 Intégration Numériques . . . . . . . . . . . . . . . . . . . . . . . . . 395.5 Algorithmes de Newton-Raphson . . . . . . . . . . . . . . . . . . . 40

Partie II 45

6 Le Systéme Solaire-Les Méthodes de Runge-Kutta 456.1 Le Systéme Solaire: Le Probléme . . . . . . . . . . . . . . . . . . . 456.2 Algorithmes de Euler et de Euler-Cromer . . . . . . . . . . . . . . . 466.3 L’algorithme de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 47

6.3.1 La Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.3.2 Example 1: L’Oscillateur Harmonique . . . . . . . . . . . . 496.3.3 Example 2: Le Systéme Solaire . . . . . . . . . . . . . . . . 49

6.4 Les lois de Kepler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.5 Loi de l’Inverse Carré et Stabilité des Orbites . . . . . . . . . . . . 536.6 Unités Astronomiques et Conditions Initiales . . . . . . . . . . . . . 546.7 Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . . . 55

7 Le Chaos: Pendule Chaotique 577.1 Equation du Mouvement . . . . . . . . . . . . . . . . . . . . . . . . 577.2 Algorithmes Numériques . . . . . . . . . . . . . . . . . . . . . . . . 607.3 Chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

7.3.1 Effet Papillon:Sensibilité aux Conditions Initiales . . . . . . 617.3.2 Section de Poincaré et Attractors . . . . . . . . . . . . . . . 627.3.3 Bifurcations: Doublement de Période . . . . . . . . . . . . . 637.3.4 Rapport de Feigenbaum . . . . . . . . . . . . . . . . . . . . 647.3.5 Brisure Spontanée de Symétrie . . . . . . . . . . . . . . . . 64

8 Dynamique Moléculaire 678.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.2 Le Potentiel de Lennard-Jones . . . . . . . . . . . . . . . . . . . . . 688.3 Unités, Conditions aux Limites et Algorithme de Verlet . . . . . . . 698.4 Applications Physiques . . . . . . . . . . . . . . . . . . . . . . . . . 72

8.4.1 Gaz Dilué . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728.4.2 La Transition de Fusion . . . . . . . . . . . . . . . . . . . . 73

Page 5: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 5

9 Travaux Pratiques 759.1 Algorithme de Runge-Kutta - Le Systéme Solaire . . . . . . . . . . 769.2 La Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . 789.3 Le Pendule Chaotique et l’Effet Papillon . . . . . . . . . . . . . . . 809.4 Sections de Poincaré . . . . . . . . . . . . . . . . . . . . . . . . . . 829.5 Chaos par Doublement de Période . . . . . . . . . . . . . . . . . . . 849.6 Diagrammes de Bifurcation et Brisure Spontanée de la Symétrie . . 869.7 Dynamique Moléculaire . . . . . . . . . . . . . . . . . . . . . . . . . 88

Partie III 93

10 Nombres (Pseudo) Aléatoires et Marche Au Hasard 9310.1 Nombres Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

10.1.1 Générateur Congruentiel Linéaire . . . . . . . . . . . . . . . 9310.1.2 Tests Statistiques des Nombres Aléatoires . . . . . . . . . . 94

10.2 Systémes Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 9610.2.1 Marches Aléatoires . . . . . . . . . . . . . . . . . . . . . . . 9710.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 10511.1 Intégration Numérique . . . . . . . . . . . . . . . . . . . . . . . . . 105

11.1.1 Approximation Rectangulaire . . . . . . . . . . . . . . . . . 10511.1.2 Approximation du Point Médian et Intégrales Multidimen-

sionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10611.1.3 Les Sphéres et les Boules dans d Dimensions . . . . . . . . . 108

11.2 Intégration de Monte Carlo: Échantillonnage Simple . . . . . . . . . 10911.2.1 La Méthode de Rjet: "Hit or Miss" . . . . . . . . . . . . . . 11011.2.2 La Méthode de l’Échantillon Moyen . . . . . . . . . . . . . . 11011.2.3 Echantillon Moyen dans les Dimensions Supérieures . . . . . 110

11.3 Le Théorème Central Limite . . . . . . . . . . . . . . . . . . . . . . 11111.4 Erreurs de Monte Carlo et Déviation Standard . . . . . . . . . . . 11311.5 Distributions de Probabilités Non Uniformes . . . . . . . . . . . . . 116

11.5.1 La Méthode de Transformation Inverse . . . . . . . . . . . . 11611.5.2 La Méthode de Rejet de Von Neumann . . . . . . . . . . . . 118

12 Échantillonnage d’ Importance, Algorithme de Metropolis et Mod-éle d’Ising 11912.1 L’Ensemble Canonique . . . . . . . . . . . . . . . . . . . . . . . . . 11912.2 Échantillonnage d’ Importance . . . . . . . . . . . . . . . . . . . . . 120

Page 6: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

6 physique numérique, ydri et al.

12.3 Le modéle d’Ising . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12112.4 L’Algorithme de Metropolis . . . . . . . . . . . . . . . . . . . . . . 12212.5 L’Algorithme de Bain de Chaleur . . . . . . . . . . . . . . . . . . . 12512.6 L’Approximation du Champ Moyen . . . . . . . . . . . . . . . . . . 12512.7 Résultats Numériques . . . . . . . . . . . . . . . . . . . . . . . . . . 12912.8 La Méthode de Jackknife . . . . . . . . . . . . . . . . . . . . . . . . 129

13 Travaux Pratiques 13113.1 Nombres Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 13213.2 Marche au Hasard . . . . . . . . . . . . . . . . . . . . . . . . . . . 13413.3 Approximation du Point Médian . . . . . . . . . . . . . . . . . . . 13613.4 Approximations de Monte Carlo . . . . . . . . . . . . . . . . . . . 13713.5 Distributions de Probabilité Non Uniforme . . . . . . . . . . . . . . 13813.6 Algorithme de Metropolis et Modèle d’Ising . . . . . . . . . . . . . 14013.7 Transition de Phase Ferromagnétiques . . . . . . . . . . . . . . . . 14213.8 La Fonction de Corrélation . . . . . . . . . . . . . . . . . . . . . . . 14313.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 149B.1 Représentation en Virgule Flottante . . . . . . . . . . . . . . . . . . 149B.2 Epsilon de la Machine et Erreurs d’Arrondi . . . . . . . . . . . . . . 151B.3 Erreurs Systématiques (algorithmique) . . . . . . . . . . . . . . . . 152

C Exercices 155

Page 7: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Introduction et Références

Page 8: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons
Page 9: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 3

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

• En physique numérique, nous combinons des éléments de la physique (surtoutthé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’approchethé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 parfoiscomme 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 unetroisiéme voie en physique indépendante des deux autre approches.

• L’usage le plus important des ordinateurs en physique est simulation. Lessimulations sont naturellement adaptés pour les problémes non-linéaires quine peuvent pas généralement être résolu par des méthodes analytiques. Lepoint 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 entresimulations et expériences de laboratoire va comme suit

Expérience de labora-toire

Simulation

échantillon modéleappareil physique programme (le code)calibration test de codemesure calculanalyse 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 desphysiciens professionnels dans leurs recherches les codes sont écrits dans unlangage compilé de haut niveau comme Fortran et C/C++. Dans ces simu-lations, nous utilisons également des appels á des bibliothéques des routinestelles que LAPACK. Dans ce cours, nous allons écrire tous nos codes dansun langage compilé de haut niveau. En particulier, nous n’allons pas faireappel aux bibliothéques numériques .

Page 10: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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écutegénéralement trop lentement par comparaison avec les langages compilés.

• Comme notre langage de programmation, nous allons utiliser Fortran 77 sousle systéme d’exploitation Linux. Nous adoptons la distribution Ubuntu deLinux. Nous allons utiliser les compilateurs Fortran f77 et gfortran. Nousallons utiliser l’éditeur emacs et pour les graphiques, nous allons utilisergnuplot.

• 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 ComputerSimulation Methods.

– 4)R.Fitzpatrick, Computational Physics.

– 5)M. Hjorth-Jensen,Computational Physics.

– 6)Paul L.DeVries, A First Course in Computational Physics.

Page 11: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Partie I

Page 12: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons
Page 13: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

1Algorithme d’Euler- Résistance d’Air et

Projectiles

1.1 Algorithme d’Euler

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

y′=

dy

dx= f(x, y). (1.1)

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 intervallequi 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 nousremplaçons l’équation différentielle ci-dessus par l’équation aux différences finiesdonnée par

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

Page 14: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

8 physique numérique, ydri et al.

Cette équation est une approximation. L’erreur de troncature est donnée par leprochain terme dans l’expansion de Taylor de la fonction y(x) qui s’écrit

1

2(∆x)2

df(x, y)

dx|x=xn

. (1.5)

L’erreur par étape est donc proportionnel á (δx)2. Dans un intervalle unitaire nouseffectuerons N = 1/δx étapes. L’erreur systématique totale est donc proportion-nelle á

N(∆x)2 =1

N. (1.6)

1.2 Désintégration Radioactive

Dans une désintégration spontanée, une particule radioactive se désintégre end’autres particules sans aucune influence extérieure. Un exemple typique estl’isotope nucléaires uranium 235. Le moment exact de la désintégration spontanéeest aléatoire. Cela signifie que le nombre −dN (t) des noyaux qui se désintégrentpendant 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 estdonnée par (−dN (t)/N (t))/dt est une constante que nous notons 1/τ . (Le signemoins est dû au fait que dN (t) est négatif puisque le nombre de particules diminueavec le temps). Nous écrivons

dN (t)

dt= −N (t)

τ. (2.8)

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éela durée de vie moyenne. Il est le temps moyen pour la désintégration. Pourl’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 dedésintégration exponentielle (2.9). Nous partons de l’expansion de Taylor

Page 15: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 9

N (t+∆t) = N (t) + ∆tdNdt

+1

2(∆t)2

d2Ndt2

+ ... (2.10)

Nous obtenons dans la limite ∆t −→ 0

dNdt

= Lim∆t−→0N (t+∆t)−N (t)

∆t. (2.11)

Nous prenons ∆t petit mais non nul. Dans ce cas, nous obtenons l’approximation

dNdt

≃N (t+∆t)−N (t)

∆t. (2.12)

De maniére équivalente

N (t+∆t) ≃ N (t) + ∆tdNdt

. (2.13)

En utilisant (2.8) nous obtenons

N (t+∆t) ≃ N (t)−∆tN (t)

τ. (2.14)

Nous allons commencer par le nombre de particules au temps t = 0 donnée parN (0) = N0, ce qui est connu. Nous remplaçons t = 0 dans (2.14) pour obtenirN (∆t) = N (1) en fonction de N (0). La valeur ainsi obtenue de N (1) peut êtreutilisé dans l’équation (2.14) pour obtenir N (2∆t) = N (2), etc . Nous sommesamené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 solutionnumérique (2.14) peut être réécrite comme

N (i+ 1) = N (i)−∆tN (i)

τ, 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-dessusprend la forme

N (i) = N (i− 1)−∆tN (i− 1)

τ, i = 1, ..., N + 1. (2.18)

Page 16: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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+ 1) = N (i)−∆tN (i)

τ, 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). Lenombre 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’objectifest de déterminer sa vitesse. La deuxiéme loi de Newton est donnée par

mdv

dt= F. (3.21)

F est la force exercée par l’athléte sur le vélo. Il est évidemment trés difficiled’écrire une expression précise de F . On va alors formuler le probléme en termesde puissance générée par l’athléte pour éviter l’utilisation d’une formule explicitepour F . En multipliant l’équation ci-dessus par v, nous obtenons

dE

dt= P. (3.22)

E est l’énergie cinétique et P est la puissance, á savoir

E =1

2mv2 , P = Fv. (3.23)

Expérimentalement, nous constatons que le rendement des athlétes bien entraînésest d’environ P = 400 watts sur une période d’une 1h. L’équation ci-dessus peutaussi être réécrite comme

dv2

dt=

2P

m. (3.24)

Pour P constante nous obtenons la solution

v2 =2P

mt + v20. (3.25)

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.

Page 17: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 11

La forme la plus importante de frottement est la résistance de l’air. La forcedue á la résistance de l’air (la force de traînée) est

Fdrag = −B1v −B2v2. (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épendancesur v est donnée par Fdrag = −B1v 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 = −B2v2. (3.27)

Le coefficient B2 peut être calculée comme suit. La combinaison vélo-cycliste, quise déplace avec la vitesse v, pousse dans un temps dt une masse d’air donnée pardmair = ρAvdt oú ρ est la densité de l’air et A est la section frontale. L’énergiecinétique correspondante est

dEair = dmairv2/2. (3.28)

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

−Fdragvdt = 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ρAv2. (3.31)

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

mdv

dt= F + Fdrag. (3.32)

De maniére équivalente

dv

dt=

P

mv− CρAv2

m. (3.33)

Cette équation ne peut pas être résolue exactement. L’algorithme d’Euler donnela solution approchée

v(i+ 1) = v(i) + ∆tdv

dt(i). (3.34)

Page 18: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

12 physique numérique, ydri et al.

En d’autres termes

v(i+ 1) = v(i) + ∆t

(

P

mv(i)− CρAv2(i)

m

)

, i = 0, ..., N. (3.35)

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

v(i+ 1) = v(i) + ∆t

(

P

mv(i)− CρAv2(i)

m

)

, i = 1, ..., N + 1. (3.36)

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 á introduirquleques 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 radioactivityc ici c est le codereturnend

Nous avons choisi le nom "radioactivity" pour notre programme. Le "c" dans ladeuxié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 etles fonctions. Les subroutines sont inclus entre subroutine et end tandis que lesfonctions sont inclus entre function et end.

Page 19: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 13

Partie déclaration: Aprés l’instruction program vient la partie déclaration duprogramme. Nous indiquons les variables et leur types qui seront utilisés dans leprogramme. En Fortran, nous avons le type integer pour les variables entiers et letype 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 variablesd’un type donné. Les élements de tableau sont notés A(1), A(2),...,A(K). Dansnotre exemple, N (i) et t(i) sont des tableaux réels de dimension N + 1. Nousdé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 duprogramme, il doit avoir une taille fixe. En d’autres termes la limite supérieuredoit être une constante et non pas une variable. En Fortran une constante estdéclarée par l’instruction "parameter". Dans notre cas, la limite supérieure estN +1 et donc N doit être doit être donné une valeur fixe au début du programmeavec l’instruction "parameter".

En mettant toutes les déclarations ensemble nous obtenons

program radioactivityinteger i, Nparameter (N = 100)doubleprecision N (1 : N + 1), t(1 : N + 1),N0,∆t, τc ici c est le codereturnend

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 partieprincipale du code est constitué des équations (2.19) et (2.20). Nous commençonsavec les quantités connues N (1) = N0 á t(1) = 0 et nous générons via l’utilisationsuccessive 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 boucledo...enddo qui commence avec l’instruction do et se termine avec l’instructionenddo. Nous pouvons également indiquer un pas pas pour la boucle.

Page 20: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 lenombre 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 avecl’instruction write s’écrit

N (1) = N0

t(1) = 0do i = 1, N + 1, 1N(i+ 1) = N (i)− (∆tN (i))/τt(i+ 1) = i∆twrite(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 radioactivityinteger i, Nparameter (N = 100)doubleprecision tau, dt, t(1 : N + 1), NN(1 : N + 1), NN0

c paramétres d’ entrées

NN0 = 1000tau = 1.0d0dt = 0.01NN(1) = NN0t(1) = 0.0d0

c la boucle do

do i = 1, N + 1NN(i + 1) = NN(i) − (dt ∗NN(i))/taut(i+ 1) = i ∗ dtc l’ instruction writewrite (10, ∗) t(i+ 1), N(i+ 1)

Page 21: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 15

enddo

returnend

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. Nousexé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.10nous 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 estdonnée par

md~v

dt= ~F + ~Fdrag

= m~g −B2v2~v

v= m~g −B2v~v. (5.38)

Page 22: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

16 physique numérique, ydri et al.

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

d~x

dt= ~v. (5.39)

md~v

dt= m~g − B2v~v. (5.40)

En projetant sur les deux axes (l’axe horizontal est x et l’axe vertical est y) onobtient 4 équations de mouvement données par

dx

dt= vx. (5.41)

mdvxdt

= −B2vvx. (5.42)

dy

dt= vy. (5.43)

mdvydt

= −mg −B2vvy. (5.44)

Nous rappelons la contrainte

v =√

v2x + v2y . (5.45)

L’approche numérique que nous allons employer pour résoudre les 4 équations dumouvement (5.41)-(5.44) consiste á utiliser l’algorithme d’Euler. Cela donne lasolution approchée donnée par les équations

x(i+ 1) = x(i) + ∆tvx(i). (5.46)

vx(i+ 1) = vx(i)−∆tB2v(i)vx(i)

m. (5.47)

y(i+ 1) = y(i) + ∆tvy(i). (5.48)

vy(i+ 1) = vy(i)−∆tg −∆tB2v(i)vy(i)

m. (5.49)

La contrainte est

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 etla vitesse initiale sont données, c’est á dire x(0), y(0), vx(0) et vy(0) sont connues.

Page 23: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

2Algorithmes d’Euler-Cromer et de

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 forcesqui agissent sur la particule. Le poids et la tension de la corde. La deuxiéme loide Newton s’écrit

md2~s

dt= m~g + ~T . (1.1)

Le projection paralléle (par rapport au fil) est

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

La projection perpendiculaire s’écrit

md2s

dt2= −mg sin θ. (1.3)

θ est l’angle formé par le fil avec la verticale. Il est clair que s = lθ. La forcemg sin θ est une force de rappel qui signifie qu’elle est toujours dirigée vers laposition d’équilibre θ = 0. Cette force est alors toujours opposée au déplacement

Page 24: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

18 physique numérique, ydri et al.

qui est á l’origine de signe moins dans l’équation ci-dessus. Nous obtenons enutilisant s = lθ l’équation

d2θ

dt2= −g

lsin θ. (1.4)

Pour les valeurs petites de θ, nous avons sin θ ≃ θ. Nous obtenons

d2θ

dt2= −g

lθ. (1.5)

La solution est une fonction sinusoïdale du temps avec la fréquence Ω =√

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 etelle 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 trouvecomme suit. Nous devons d’abord remplacer l’équation du mouvement (1.5) parles deux équations différentielles du premier ordre suivantes

dt= ω. (2.7)

dt= −g

lθ. (2.8)

En utilisant la définition de la dérivé d’une fonction, á savoir

df

dt=

f(t+∆t)− f(t)

∆t, ∆t −→ 0. (2.9)

Nous obtenons pour ∆t petit mais non nul les approximations

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

ω(t+∆t) ≃ ω(t)− g

lθ(t)∆t. (2.10)

Nous considérons la discrétisation du temps

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

Page 25: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 solutionnumérique ci-dessus peut être réécrite comme

ω(i+ 1) = ω(i)− g

lθ(i)∆t

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

Nous faisons le changement i −→ i+ 1 pour que l’entier i prend des valeurs dansl’intervalle [1, N + 1]. Nous obtenons

ω(i) = ω(i− 1)− g

lθ(i− 1)∆t

θ(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

ω(i+ 1) = ω(i)− g

lθ(i)∆t

θ(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 lamé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 denon conservation de l’énergie. Cela va comme suit. Nous utilisons les valeurs del’angle et de la vitesse angulaire θ(i) et ω(i) au temps i pour calculer la vitesseangulaire ω(i + 1) au temps i + 1. Cette étape est la même que dans l’algoritmed’Euler. Cependant nous allons utiliser θ(i) et ω(i + 1) (et non pas ω(i)) pourcalculer θ(i + 1) au temps i + 1. Cette procédure, comme indiqué par Cromerconserve l’énergie dans les problémes oscillatoire mieux que Euler. En d’autrestermes les équations (2.15) deviennent

Page 26: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

20 physique numérique, ydri et al.

ω(i+ 1) = ω(i)− g

lθ(i)∆t

θ(i+ 1) = θ(i) + ω(i+ 1)∆t. (3.16)

L’erreur peut être calculée comme suit. De ces deux équations nous obtenons

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

lθ(i)∆t2

= θ(i) + ω(i)∆t +d2θ

dt|i∆t2. (3.17)

En d’autres termes l’erreur par étape est toujours de l’ordre de ∆t2. Cependantl’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

θ(ti +∆t) = θ(ti) + ∆tdθ

dt|ti +

1

2(∆t)2

d2θ

dt2|ti +

1

6(∆t)3

d3θ

dt3|ti + ... (4.18)

θ(ti −∆t) = θ(ti)−∆tdθ

dt|ti +

1

2(∆t)2

d2θ

dt2|ti −

1

6(∆t)3

d3θ

dt3|ti + ... (4.19)

La somme de ces deux expressions est

θ(ti +∆t) = 2θ(ti)− θ(ti −∆t) + (∆t)2d2θ

dt2|ti +O(∆4). (4.20)

Nous écrivons cette équation sous la form

θi+1 = 2θi − θi−1 −g

l(∆t)2θi. (4.21)

Cette équation est l’algorithme de Verlet pour l’oscillateur harmonique. D’abordon remarque que l’erreur est proportionnelle à ∆t4. Donc cette méthode est plusprécise que les méthodes d’Euler, d’Euler-Cromer et de Runge-Kutta de deuxièmeordre. Ensuite on remarque que dans cette méthode nous n’avons pas besoin decalculer ω = dθ/dt. Troisièmement, nous remarquons que cette méthode ne peutpas être lancer étant donné seulement les conditions initiales θ1 et ω1 mais nousavons besoin aussi de savoir θ2 pour lancer l’algorithme. Généralement, on vadéterminer θ2 en utilisant la méthode d’Euler, à savoir

θ2 = θ1 +∆t ω1. (4.22)

Page 27: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

3Intégration Numérique

3.1 Approximation Rectangulaire

Nous considérons une intégrale unidimensionnelle de la forme

F =

∫ b

a

f(x)dx. (1.1)

En général cette intégral ne peut pas être calculer analytiquement. Toutefois, il esttrés simple á faire numériquement. Le point de départ est la définition de Riemannde l’intégrale F comme l’aire oú la superficie sous la courbe de la fonction f(x) dex = 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

xn = x0 + n∆x , ∆x =b− a

N(1.2)

Il est clair que x0 = a et xN = b. La définition de Riemann est alors donnée parla limite suivante

F = lim(

∆x−→0 , N−→∞ , b−a=fixed)

(

∆x

N−1∑

n=0

f(xn)

)

. (1.3)

Page 28: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

22 physique numérique, ydri et al.

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

FN = ∆x

N−1∑

n=0

f(xn). (1.4)

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

FN =

N∑

n=0

f(xn)wn. (1.5)

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 valeursf(xn) sont additionnés avec des poids égaux wn = ∆x, n = 0, N − 1 et wN = 0. Ilest également clair que l’estimation Fn de l’intégrale F devient exact uniquementdans 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 parune somme des superficies des trapézes. Dans le sous-intervalle [xn, xn+1] nousremplaç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 etx = xn+1. La base est l’intervalle ∆x = xn+1 − xn. Il n’est pas difficile de nousconvaincre que la superficie de ce trapéze est

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

2+ f(xn)∆x =

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

2. (2.6)

L’intégrale F calculée en utilisant l’approximation des trapéze est donc donnée parla somme des contributions de tous les sous-intervalle, á savoir

TN =N−1∑

n=0

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

2=

(

1

2f(x0) +

N−1∑

n=1

f(xn) +1

2f(xN)

)

∆x. (2.7)

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

Page 29: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 uneparabole donnée par

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

La superficie correspondante est donc donnée par∫ xn+1

xn

dx(αx2 + βx+ γ) =

(

αx3

3+

βx2

2+ γx

)xn+1

xn

. (3.9)

Nous considérons maintenant l’intégrale

∫ 1

−1

dx(αx2 + βx+ γ) =2α

3+ 2γ. (3.10)

On remarque que

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

De maniére équivalente

α =f(1) + f(−1)

2− f(0) , β =

f(1)− f(−1)

2, γ = f(0). (3.12)

Ainsi∫ 1

−1

dx(αx2 + βx+ γ) =f(−1)

3+

4f(0)

3+

f(1)

3. (3.13)

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

∫ xn+1

xn−1

dx f(x) =

∫ xn+1

xn−1

dx(αx2 + βx+ γ)

= ∆x

(

f(xn−1)

3+

4f(xn)

3+

f(xn+1)

3

)

. (3.14)

Page 30: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

24 physique numérique, ydri et al.

En ajoutant les contributions de chaque paire de sous-intervalles adjacentes nousobtenons l’intégrale compléte

SN = ∆x

N−22

p=0

(

f(x2p)

3+

4f(x2p+1)

3+

f(x2p+2)

3

)

. (3.15)

Il est clair que nous devons avoir N (le nombre de sous-intervalles) pair. Nouscalculons

SN =∆x

3

(

f(x0) + 4f(x1) + 2f(x2) + 4f(x3) + 2f(x4) + ...+ 2f(xN−2) + 4f(xN−1) + f(xN)

)

.

(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

TN =

(

f(x0) + 2

N−1∑

n=1

f(xn) + f(xN)

)

∆x

2. (3.17)

Nous rappelons également que N∆x = b − a est la longueur de l’intervalle totalqui est toujours maintenu fixe. Ainsi, en doublant le nombre de sous-intervalles,nous réduisons par moitié la largeur, á savoir

4T2N =

(

2f(x0) + 4

2N−1∑

n=1

f(xn) + 2f(x2N)

)

∆x

2

=

(

2f(x0) + 4

N−1∑

n=1

f(x2n) + 4

N−1∑

n=0

f(x2n+1) + 2f(x2N)

)

∆x

2

=

(

2f(x0) + 4N−1∑

n=1

f(xn) + 4N−1∑

n=0

f(x2n+1) + 2f(xN)

)

∆x

2. (3.18)

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

4T2N − TN =

(

f(x0) + 2N−1∑

n=1

f(xn) + 4N−1∑

n=0

f(x2n+1) + f(xN)

)

∆x

= 3SN . (3.19)

Page 31: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

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

1

2!(x− xn)

2f (2)(xn) + ... (4.20)

Ainsi∫ xn+1

xn

dx f(x) = f(xn)∆x+1

2!f (1)(xn)(∆x)2 +

1

3!f (2)(xn)(∆x)3 + ... (4.21)

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

∫ xn+1

xn

dx f(x)− f(xn)∆x =1

2!f (1)(xn)(∆x)2 +

1

3!f (2)(xn)(∆x)3 + ... (4.22)

Cela est de l’ordre de 1/N2. Mais nous avons N sous-intervalles. Ainsi, l’erreurtotale est de l’ordre de 1/N .

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

xn

dx f(x)− 1

2(f(xn) + f(xn+1))∆x =

∫ xn+1

xn

dx f(x)

− 1

2(2f(xn) + ∆xf (1)(xn) +

1

2!(∆x)2f (2)(xn) + ...)∆x

= (1

3!− 1

2

1

2!)f (2)(xn)(∆x)3 + ... (4.23)

Ceci est de l’ordre 1/N3 et donc l’erreur totale est de l’ordre de 1/N2.

Parabolic: Afin de calculer l’erreur dans l’intervalle [xn−1, xn+1] dans l’approximationparabolique, nous calculons∫ xn

xn−1

dx f(x) +

∫ xn+1

xn

dx f(x) = 2f(xn)∆x+2

3!(∆x)3f (2)(xn) +

2

5!(∆x)5f (4)(xn) + ...

(4.24)

Aussi, nous calculons

∆x

3(f(xn+1) + f(xn−1) + 4f(xn)) = 2f(xn)∆x+

2

3!(∆x)3f (2)(xn) +

2

3.4!(∆x)5f (4)(xn) + ...

(4.25)

Page 32: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

26 physique numérique, ydri et al.

Alors l’erreur dans l’approximation parabolique dans l’intervalle [xn−1, xn+1] est∫ xn+1

xn−1

dx f(x)− ∆x

3(f(xn+1) + f(xn−1) + 4f(xn)) = (

2

5!− 2

3.4!)(∆x)5f (4)(xn) + ...(4.26)

Ceci est de l’ordre de 1/N5. L’erreur totale est donc de l’ordre de 1/N4.

Page 33: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

4Algorithmes de Newton-Raphson et

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 commesuit. 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+ etdonc 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 couponsl’intervalle [x+, x−] au point

x =x+ + x−

2. (1.3)

Si f(x)f(x+) > 0 alors x+ sera changé au point x autrement x− sera changé aupoint x. Nous continuons ce processus jusqu’à ce que le changement de x devient

Page 34: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

error =x+ − x−

x. (1.4)

Clairement l’erreur absolue e = xi − xf est réduit de moitié à chaque itération etdonc le taux de convergence de la régle de dichotomie est linéaire. C’est vraimentlent.

4.2 Algorithme de Newton-Raphson

Nous commençons par une conjecture x0. La nouvelle conjecture x est écritecomme 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

f(x) = f(x0) + ∆xdf

dx|x=x0. (2.6)

La correction ∆x est déterminé par le point d’intersection de cette approximationlinéaire de f(x) avec l’axe x. Ainsi

f(x0) + ∆xdf

dx|x=x0 = 0 =⇒ ∆x = − f(x0)

(df/dx)|x=x0

. (2.7)

La dérivée de la fonction f est requis dans ce calcul. Dans des problémes pluscompliqués, il est beaucoup plus simple d’évaluer la dérivée numériquement queanalytiquement. Dans ces cas, la dérivé peut être donné par l’approximation de ladifférence avancée (avec δx pas nécessairement égal á ∆x)

df

dx|x=x0 =

f(x0 + δx)− f(x0)

δx. (2.8)

En résumé dans cette méthode nous prenons comme notre nouvelle conjecture xl’intersection avec l’axe des x de la tangente de la fonction f(x) á la conjectureprécédente x0. Le processus est répété jusqu’à ce que le changement de x devientinsignifiant.

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

xi+1 = xi −f(xi)

f ′(x). (2.9)

Page 35: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 29

L’erreur absolue à l’étape i est ǫi = x − xi, tandis que l’erreur absolue à l’étapei+ 1 est ǫi+1 = x− xi+1 où x est la racine réelle. Alors

ǫi+1 = ǫi +f(xi)

f ′(x). (2.10)

En utilisant l’expansion de Taylor, nous avons

f(x) = 0 = f(xi) + (x− xi)f′(xi) +

(x− xi)2

2!f

′′(xi) + ... (2.11)

En d’autre termes

f(xi) = −ǫif′(xi)−

ǫ2i2!f

′′(xi) + ... (2.12)

Par conséquent, l’erreur est donnée par

ǫi+1 = −ǫ2i2

f′′(xi)

f ′(xi). (2.13)

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 racineavec la convergence rapide de l’algorithme de Newton-Raphson dans un algorithmehybride comme suit. D’abord il faut savoir que la racine est borné dans un certainintervalle [a, c]. Nous pouvons par exemple utiliser une méthode graphique pourdéterminer ce fait. Ensuite, nous partons d’une certaine conjecture initiale b etnous prenons une étape de Newton-Raphson comme suit

b′= b− f(b)

f ′(b). (3.14)

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

a≤b− f(b)

f ′(b)≤c ⇔ (b− c)f

′(b)− f(b)≤0≤(b− a)f

′(b)− f(b). (3.15)

Par conséquent si(

(b − c)f′(b) − f(b)

)(

(b − a)f′(b) − f(b)

)

< 0 alors l’étape deNewton-Raphson est accepté sinon on prendra plutôt une étape de bissection.

Page 36: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 xsi la fonction et ses dérivés sont connus dans un certain point voisin x0. L’interpolationde Lagrange tente de approximer la fonction en un point x si seulement les valeursde 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 dudéveloppement de Taylor

f(y) = f(x) + (y − x)f′(x) +

1

2!(y − x)2f

′′(x) + .. (4.16)

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

f(y) = p(x) + (y − x)p′(x) +

1

2!(y − x)2p

′′(x). (4.17)

Nous avons

f(x1) = p(x) + (x1 − x)p′(x) +

1

2!(x1 − x)2p

′′(x)

f(x2) = p(x) + (x2 − x)p′(x) +

1

2!(x2 − x)2p

′′(x)

f(x3) = p(x) + (x3 − x)p′(x) +

1

2!(x3 − x)2p

′′(x). (4.18)

Nous pouvons trouver immédiatement

p(x) =1

1 + a2 + a3f(x1) +

a21 + a2 + a3

f(x2) +a3

1 + a2 + a3f(x3). (4.19)

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

a2 =(x1 − x)(x3 − x1)

(x2 − x)(x2 − x3), a3 = −(x1 − x)(x2 − x1)

(x3 − x)(x2 − x3). (4.21)

Ainsi

1 + a2 + a3 =(x3 − x1)(x2 − x1)

(x2 − x)(x3 − x). (4.22)

Page 37: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 31

Alors nous obtenons

p(x) =(x− x2)(x− x3)

(x1 − x2)(x1 − x3)f(x1) +

(x− x1)(x− x3)

(x2 − x1)(x2 − x3)f(x2) +

(x− x1)(x− x2)

(x3 − x1)(x3 − x2)f(x3).(4.23)

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 + a1x+ a2x2 + ...+ an−1x

n−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)

λi(x) =∏n

j(6=i)=1

x− xj

xi − xj. (4.26)

Nous remarquons

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

n∑

i=1

λi(x) = 1. (4.28)

Le polynôme de Lagrange peut être utilisé pour ajuster l’ensemble du tableauavec n égal au nombre de points dans le tableau. Mais il est préférable d’utiliser lepolynôme de Lagrange pour adjuster seulement une petite région du tableau avecune petite valeur de n. En d’autres termes il est préférable d’utiliser plusieurspolynômes pour couvrir le tableau et par consequent l’ajustement considéré estlocale 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) avecun polynôme cubique de la forme

p(x) = aj(x− xj)3 + bj(x− xj)

2 + cj(x− xj) + dj . (5.29)

Page 38: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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’équationci-dessus, nous concluons que

dj = pj . (5.31)

Nous calculons

p′(x) = 3aj(x− xj)

2 + 2bj(x− xj) + cj . (5.32)

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

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

bj =p′′

j

2. (5.34)

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

aj =p′′

j+1 − p′′

j

6hj

, hj = xj+1 − xj . (5.35)

En remplaçant x = xj+1 en p(x), nous obtenons

pj+1 = ajh3j + bjh

2j + cjhj + pj. (5.36)

En utilisant les valeurs de aj et bj , nous obtenons

cj =pj+1 − pj

hj

− hj

6(p

′′

j+1 + 2p′′

j ). (5.37)

Alors

p(x) =p′′

j+1 − p′′

j

6hj(x− xj)

3 +p′′

j

2(x− xj)

2 +

(

pj+1 − pjhj

− hj

6(p

′′

j+1 + 2p′′

j )

)

(x− xj) + pj.(5.38)

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

j . Les pj sontconnus donnés par pj = f(xj). Il reste á déterminer p

′′

j . Nous prenons la dérivéede l’équation ci-dessus

p′(x) =

p′′

j+1 − p′′

j

2hj

(x− xj)2 + p

′′

j (x− xj) +

(

pj+1 − pjhj

− hj

6(p

′′

j+1 + 2p′′

j )

)

.(5.39)

Page 39: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 33

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

p′(xj) =

(

pj+1 − pjhj

− hj

6(p

′′

j+1 + 2p′′

j )

)

. (5.40)

La dérivée dans l’intervalle [xj−1, xj ] est

p′(x) =

p′′

j − p′′

j−1

2hj−1(x− xj−1)

2 + p′′

j−1(x− xj−1) +

(

pj − pj−1

hj−1− hj−1

6(p

′′

j + 2p′′

j−1)

)

.(5.41)

Nous calculons

p′(xj) =

p′′

j − p′′

j−1

2hj−1 + p

′′

j−1hj−1 +

(

pj − pj−1

hj−1

− hj−1

6(p

′′

j + 2p′′

j−1)

)

. (5.42)

En appariant les deux expressions pour p′(xj) nous obtenons

hj−1p′′

j−1 + 2(hj + hj−1)p′′

j + hjp′′

j+1 = 6

(

pj+1 − pjhj

− pj − pj−1

hj−1

)

. (5.43)

Ce sont n − 2 équations puisque j = 2, ..., n − 1 pour les n inconnus p′′

j . Nousavons besoin en plus de deux équations. Ces derniers sont obtenus en calculant ladérivée premiére p

′(x) á x = x1 et x = xn. Nous obtenons les deux équations

h1(p′′

2 + 2p′′

1) =6(p2 − p1)

h1− 6p

1. (5.44)

hn−1(p′′

n−1 + 2p′′

n) = −6(pn − pn−1)

hn−1+ 6p

n. (5.45)

Les n équations (5.43), (5.44) and (5.45) correspondent á un systéme tridiagonalelinéaire. En général p′

1 et p′

n ne sont pas connus. Dans ce cas nous pouvons utiliserla spline naturelle dans laquel la dérivée seconde s’annule au points d’extrémitéset donc

p2 − p1h1

− p′

1 =pn − pn−1

hn−1− p

n = 0. (5.46)

4.6 Méthode des Moindres Carrés

Nous supposons que nous avons N points de données (x(i), y(i)). Nous voulonsadjuster ces données á une courbe linéaire, c’est á dire á la ligne droite yfit = mx+b.Á cette fin, nous définissons la fonction

∆ =N∑

i=1

(y(i)− yfit(i))2 =

N∑

i=1

(y(i)−mx(i)− b)2. (6.47)

Page 40: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

34 physique numérique, ydri et al.

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

∂∆

∂m= 0 ,

∂∆

∂b= 0. (6.48)

Nous obtenons la solution

b =

i x(i)∑

j x(j)y(j)−∑

i x(i)2∑

j y(j)

(∑

i x(i))2 −N

i x2i

. (6.49)

m =

i x(i)∑

j y(j)−N∑

i x(i)y(i)

(∑

i x(i))2 −N

i x2i

. (6.50)

Page 41: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

5Travaux Pratiques

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ésistancede l’air agit contre le mouvement et elle est proportionnelle au carré de la vitesse,á savoir

Fdrag = −CρAv2.

Dans cette equation ρ est la densité de l’air, C est le coefficient de traînée et A estla section efficace de system cyclist+vélo. La 2eme pour ce system loi de Newtonprend la form

dv

dt=

P

mv− CρAv2

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éthoded’Euler. La solution approchée de l’équation différentielle ci-dessus selon la méth-ode d’Euler est donné par les équations

v(i+ 1) = v(i) + ∆t

(

P

mv(i)− CρAv2(i)

m

)

. i = 1, ..., N + 1

Page 42: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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’airest absent et puis dans le cas oú la résistance de l’air est présent. Qu’est-ceque vous remarquez. Nous donnons les valeurs

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

La vitesse initiale estv(1) = 4m/s , t(1) = 0.

(2) Qu’est-ce que vous remarquez si nous changeons le coefficient de traînéeet/ou la puissance. Qu’est-ce que vous remarquez si nous diminuons le pasde temps.

5.2 Mouvement des Projectiles Sous l’Effet de laRé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 proportionnelleau carré de la vitesse avec un facteur de proportionnalité egale á B. La deuxiémeloi de Newton donne les équations du mouvement suivantes

dx

dt= vx , m

dvxdt

= −Bvvx.

dy

dt= vy , m

dvydt

= −mg −Bvvy.

La solution numérique de ces équations différentielles selon l’algorithme d’Eulerprend la forme suivante

vx(i+ 1) = vx(i)−∆tBv(i)vx(i)

m.

vy(i+ 1) = vy(i)−∆tg −∆tBv(i)vy(i)

m.

v(i+ 1) =√

v2x(i+ 1) + v2y(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 ycorrespond á i = 1 et i prend les valeurs de 1 á N .

Page 43: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

m= 0.00004m−1 , g = 9.8m/s2.

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’instructionconditionnelle "if". Cette déclaration peut être ajouté á l’intérieur de laboucle "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 estmaximale lorsque l’angle initial est 45 degrés. Vérifier ce fait numériquementen considérant plusieurs angles initiales. Plus précisément nous pouvonsajouter une boucle "do" sur l’angle initial pour étudier la portée en fonctionde l’angle initial.

(5) Dans le cas oú la résistance de l’air n’est pas nulle calculer l’angle sous lequella 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 á lafin 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 lependule avec la verticale est de petite taille. L’équation du mouvement provenantde la deuxiéme loi de Newton est

d2θ

dt2+

g

lθ = 0.

Page 44: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

38 physique numérique, ydri et al.

Cette équation différentielle du second ordre est équivalente aux deux équationsdifférentielles du premier ordre donné par

dt= Ω ,

dt= −g

lθ.

Nous allons considérer la solution numérique donnée par l’algorithme d’Euler

Ωi+1 = Ωi −g

lθi ∆t.

θi+1 = θi + Ωi ∆t.

Les autres solutions numériques que nous allons prendre en considération sontdonnés par les algorithmes d’Euler-Cromer and Verlet qui prennent la forme

Ωi+1 = Ωi −g

lθi ∆t , θi+1 = θi + Ωi+1 ∆t , Euler− Cromer.

θi+1 = 2θi − θi−1 −g

lθi(∆t)2 , Verlet.

(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’énergiede l’oscillateur est donnée par

E =1

2Ω2 +

1

2

g

lθ2.

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.

Page 45: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 peutpas démarrer seulement á partir des valeurs initiales θ1 et Ω1. Il faut aussidonner 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 vitesseangulaire. Mais afin de calculer l’énergie nous calculons la vitesse á partirde l’expression

Ωi =θi+1 − θi−1

2∆t.

5.4 Intégration Numériques

Nous considérons les intégrales á une dimension de la forme

I =

∫ b

a

dxf(x).

Nous sommes interessé dans le cas générique oú cette intégrale ne peut pas êtrecalculé explicitement. Ainsi il reste á notre disposition seulement l’approchenumérique qui va nous permettre d’obtenir une valeur approximative pour cetteinté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 ∆xcomme suite

xi = x0 + i∆x , i = 0, ..., N , ∆x =b− a

N, x0 = a, xN = b.

La méthode des rectangles est

FN = ∆x

N−1∑

i=0

f(xi).

La méthode des trapézes est

TN = ∆x

[

1

2f(x0) +

N−1∑

i=1

f(xi) +1

2f(xN)

]

.

Page 46: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

40 physique numérique, ydri et al.

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

SN =∆x

3

[

f(x0) + 4

N−22

i=0

f(x2i+1) + 2

N−22

i=0

f(x2i) + f(xN )

]

.

Les erreurs numériques dans ces méthodes sont proportionnels á 1/N , 1/N2 et1/N4 respectivement.

(1) Nous prenons l’intégrale

I =

∫ 1

0

f(x)dx ; f(x) = 2x+ 3x2 + 4x3.

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ésulatthé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

I =

∫ π2

0

cosxdx , I =

∫ e

1

1

xdx , I =

∫ +1

−1

limǫ−→0

(

1

π

ǫ

x2 + ǫ2

)

dx.

5.5 Algorithmes de Newton-Raphson

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

α tanαa = β.

α =

2mE

~2, β =

2m(V − E)

~2.

Dans le cas d’un puits de potentiel infinie nous trouvons la solution

En =(n+ 1

2)2π2

~2

2ma2, n = 0, 1....

Page 47: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 deNewton-Raphson qui nous permet de trouver les racines de toute équation f(x) = 0comme suit. Á partir d’une proposition donnée x0 la premiére approximation dela 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éreapproximation x1 qui est donnée par l’équation

x1 = x0 −f(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 estdonnée par

xi+1 = xi −f(xi)

f ′(xi).

(1) Pour V = 10 déterminer le nombre de solutions en utilisant la méthodegraphique. Considérer les fonctions

f(α) = tanαa , g(α) =β

α=

V

α2− 1.

(2) Trouver á l’aide de la méthode de Newton-Raphson les deux solutions avecune tolérance 10−8. Pour la premiére solution nous prenons le point dedé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 pourdéterminer le point de départ chaque fois.

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

Page 48: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

42 physique numérique, ydri et al.

Page 49: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Partie II

Page 50: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons
Page 51: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

6Le Systéme Solaire-Les Méthodes de

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 entrele 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 á direnous supposons que ms >> me). L’objectif est de calculer la position de la terrecomme une fonction du temps. Nous partons de la deuxiéme loi de Newton

Med2~r

dt2= −GMeMs

r3~r

= −GMeMs

r3(x~i+ y~j). (1.1)

Nous obtenons les deux équations

d2x

dt2= −GMs

r3x. (1.2)

d2y

dt2= −GMs

r3y. (1.3)

Page 52: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

dt= vx. (1.4)

dvxdt

= −GMs

r3x. (1.5)

dy

dt= vy. (1.6)

dvydt

= −GMs

r3y. (1.7)

Nous rappelons

r =√

x2 + y2. (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)

vx(i+ 1) = vx(i)−GMs

(r(i))3x(i)∆t. (2.10)

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

vy(i+ 1) = vy(i)−GMs

(r(i))3y(i)∆t. (2.12)

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

r(i) =√

x(i)2 + y(i)2. (2.14)

Page 53: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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),y(i) = y(i−1), vx(i) = vx(i−1), vy(i) = vy(i−1), r(i) = r(i−1) et i = 1, ..., N+1comme

vx(i+ 1) = vx(i)−GMs

(r(i))3x(i)∆t. (2.15)

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

vy(i+ 1) = vy(i)−GMs

(r(i))3y(i)∆t. (2.17)

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

r(i) =√

x(i)2 + y(i)2. (2.19)

Afin de maintenir la conservation de l’énergie, nous utilisons plutôt l’algorithmed’Euler-Cromer. Nous allons calculer comme dans l’algorithme d’Euler la vitesseau 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 autemps i et la vitesse au temps i+ 1, á savoir

vx(i+ 1) = vx(i)−GMs

(r(i))3x(i)∆t. (2.20)

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

vy(i+ 1) = vy(i)−GMs

(r(i))3y(i)∆t. (2.22)

y(i+ 1) = y(i) + vy(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 premierordre

dy

dx= f(x, y). (3.24)

Page 54: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 lafonction 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 laméthode de Runge-Kutta comme suit. D’abord le milieu de l’intervalle [xn, xn+1]qui est á la valeur xn + 1

2∆x correspond á la valeur yn+1 calculé en utilisant la

méthode d’Euler, á savoir yn+1 = yn +12k1 oú

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

Deuxiémement, la pente á ce point central (xn +12∆x, yn +

12k1) donnée par

k2∆x

= f(xn +1

2∆x, yn +

1

2k1) (3.27)

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éecomme suit. Nous avons

y(x+∆x) = y(x) + ∆xdy

dx+

1

2(∆x)2

d2y

dx2+ ...

= y(x) + ∆xf(x, y) +1

2(∆x)2

d

dxf(x, y) + ...

= y(x) + ∆x

(

f(x, y) +1

2∆x

∂f

∂x+

1

2∆xf(x, y)

∂f

∂y

)

+ ...

= y(x) + ∆xf(x+1

2∆x, y +

1

2∆xf(x, y)) +O(∆x3)

= y(x) + ∆xf(x+1

2∆x, y +

1

2k1) +O(∆x3)

= y(x) + k2 +O(∆x3). (3.29)

Notons enfin que cette méthode de Runge-Kutta est proprement dite la méthodede Runge-Kutta du second ordre. La méthode de Runge-Kutta du premier ordreest l’algorithme d’Euler. Les méthodes de Runge-Kutta d’ordres supérieurs neseront pas discutées ici.

Page 55: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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= ω

dt= −g

lθ. (3.30)

Les équations d’Euler s’écrit

θn+1 = θn +∆tωn

ωn+1 = ωn −g

lθn∆t. (3.31)

D’abord, nous considérons la fonction θ = θ(t). Le point de milieu est (tn +12∆t, θn + 1

2k1) oú k1 = ∆tωn. Pour la fonction ω = ω(t) le point de milieu est

(tn +12∆t, ωn +

12k3) oú k3 = −g

l∆tθn. Par conséquent, nous avons

k1 = ∆tωn

k3 = −g

l∆tθn. (3.32)

La pente de la fonction θ(t) á son point de milieu est

k2∆t

= ωn +1

2k3. (3.33)

La pente de la fonction ω(t) á son point de milieu est

k4∆t

= −g

l(θn +

1

2k1). (3.34)

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

dt= vx. (3.36)

Page 56: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

50 physique numérique, ydri et al.

dvxdt

= −GMs

r3x. (3.37)

dy

dt= vy. (3.38)

dvydt

= −GMs

r3y. (3.39)

D’abord, nous considérons la fonction x = x(t). Le point de milieu est (tn +12∆t, xn + 1

2k1) oú k1 = ∆t vxn. Pour la fonction vx = vx(t) le point de milieu est

(tn +12∆t, vxn +

12k3) oú k3 = −GMs

rn∆t xn. Par conséquent, nous avons

k1 = ∆t vxn

k3 = −GMs

r3n∆t xn. (3.40)

La pente de la fonction x(t) au point de milieu est

k2∆t

= vxn +1

2k3. (3.41)

La pente de la fonction vx(t) au point de milieu est

k4∆t

= −GMs

R3n

(xn +1

2k1). (3.42)

Ensuite, nous considérons la fonction y = y(t). Le point de milieu est (tn +12∆t, yn + 1

2k

1) oú k′

1 = ∆t vyn. Pour la fonction vy = vy(t) le point de milieu est(tn +

12∆t, vyn +

12k

3) oú k′

3 = −GMs

rn∆t yn. Par conséquent, nous avons

k′

1 = ∆t vyn

k′

3 = −GMs

r3n∆t yn. (3.43)

La pente de la fonction y(t) au point de milieu est

k′

2

∆t= vyn +

1

2k

3. (3.44)

La pente de la fonction vy(t) au point de milieu est

k′

4

∆t= −GMs

R3n

(yn +1

2k

1). (3.45)

Page 57: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 51

Dans les équations ci-dessus

Rn =

(xn +1

2k1)2 + (yn +

1

2k

1)2. (3.46)

Les solutions de Runge-Kutta sont alors donnés par

xn+1 = xn + k2

vx(n+1) = vxn + k4

yn+1 = yn + k′

2

vy(n+1) = vyn + k′

4. (3.47)

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 soleilréside dans l’un des deux foyers.

• La ligne joignant le soleil avec n’importe quelle planéte balaie des aires égalesdans des temps égaux.

• Étant donné un orbite avec une période T et un demi-grand axe a le rapportT 2/a3 est une constante.

La démonstration de ces trois lois se déroule comme suit. Nous travaillons encoordonnées polaires. La deuxiéme loi de Newton s’écrit

Me~r = −GMsMe

r2r. (4.48)

Nous utilisons ˙r = θθ et ˙θ = −θr pour obtenir ~r = rr+ rθθ. La decomposition de

la deuxiéme loi de Newton donne les deux équations

rθ + 2rθ = 0. (4.49)

r − rθ2 = −GMs

r2. (4.50)

Nous rappelons que le moment angulaire par unité de masse est définie par ~l =~r × ~r = r2θr × θ. Ainsi l = r2θ. L’équation (4.49) est précisément l’exigence quele moment angulaire est conservé. En effet, nous calculons

Page 58: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

52 physique numérique, ydri et al.

dl

dt= r(rθ + 2rθ) = 0. (4.51)

Maintenant on remarque que l’aire balayée par le vecteur ~r dans un intervalle detemps dt est dA = (r × rdθ)/2 oú dθ est l’angle parcouru par ~r au cours de dt.Clairement

dA

dt=

1

2l. (4.52)

En d’autres termes la planéte balaie des aires égales dans des temps égaux parceque l est conservée. Ceci est la deuxiéme loi de Kepler.

La seconde équation (4.50) devient maintenant

r =l2

r3− GMs

r2(4.53)

En multipliant cette équation avec r, nous obtenons

d

dtE = 0 , E =

1

2r2 +

l2

2r2− GMs

r. (4.54)

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

dt =dr

2

(

E − l2

2r2+ GMs

r

)

(4.55)

Cependant dt = (r2dθ)/l. Ainsi

dθ =ldr

r2

2

(

E − l2

2r2+ GMs

r

)

(4.56)

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

θ =

ldr

r2

2

(

E − l2

2r2+ GMs

r

)

= −∫

du√

2El2

+ 2GMs

l2u− u2

. (4.57)

Page 59: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 53

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

θ = − arccos

(

u− C

eC

)

+ θ′, e =

1 +2l2E

G2M2s

, C =GMs

l2. (4.58)

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

1

r= C(1 + e cos(θ − θ

′)). (4.59)

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 parceque ea est la distance entre le soleil qui est á l’un des deux foyers et le centre del’ellipse. Ainsi nous obtenons la relation

(1− e2)a =1

C=

l2

GMs

. (4.60)

De l’équation (4.52), nous pouvons obtenir la troisiéme loi de Kepler. Enintégrant les deux côtés de l’équation sur une seule période T , puis en prenant lecarré, nous arrivons á

A2 =1

4l2T 2. (4.61)

A est la surface de l’ellipse. Ainsi A = πab oú le demi-petit axe b est liée audemi-grand axe a par b = a

√1− e2. Alors

π2a4(1− e2) =1

4l2T 2. (4.62)

En utilisant l’équation (4.60), nous obtenons la formule souhaitée

T 2

a3=

4π2

GMs. (4.63)

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 deslignes 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. Ladensité des lignes de champ traversant une sphére de rayon r qui entoure cet objetest donnée par N/4πr2. Telle est l’origine de la loi du carré inverse.

Page 60: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

54 physique numérique, ydri et al.

Ainsi tout autre objet placé dans ce champ gravitationnel subira une force degravitation proportionnelle au nombre de lignes de champ qui pass au travers. Sila distance entre ce deuxiéme objet et la source est augmentée, la force deviendraplus 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ériquesde 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 deviennentgé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 sontgénéralement données par des grands nombres. Nous allons utiliser les unitésastronomiques. La distance sera mesurée en unités astronomiques (UA) alors quele 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 supposantune orbite circulaire, nous avons

Mev2

r=

GMsMe

r2. (6.64)

De façon équivalente

GMs = v2r. (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π2UA3/yr2. (6.66)

Pour les simulations numériques, il est également important de déterminer lesconditions initiales correctes. En particulier pour le probléme de la précession dupérihélie de Mercure. L’orbite de Mercure est connu pour être une ellipse avecl’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érecondition initiale est x0 = r1, y0 = 0 oú r1 est la distance maximale entre Mercureet le Soleil, c’est á dire r1 = (1 + e)a = 0.47 UA. La deuxiéme condition initialeest la vitesse (0, v1) qui peut être calculé en utilisant la conservation de l’énergie

Page 61: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 conservationdu moment angulaire comme suit

r1v1 = bv2 ⇔ v2 =r1v1b

. (6.67)

La conservation de l’énergie s’écrit

−GMsMm

r1+

1

2Mmv

21 = −GMsMm

r2+

1

2Mmv

22. (6.68)

Dans l’équation ci-dessus r2 =√e2a2 + b2 est la distance entre le Soleil et Mercure

lorsque au point (0, b). En substituant la valeur de v2, nous obtenons une équationpour v1. Elle est donnée par

v1 =

GMs

a

1− e

1 + e= 8.2 AU/yr. (6.69)

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 letemps. Il s’agit de la précession du périhélie (le point de l’orbite le plus prochedu 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 autresplanétes (Jupiter, en particulier) conduire á une précession de 523 secondes d’arcpar siécle. Les 43 secondes d’arc par siécle restantes sont comptabilisés par larelativité 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 estdonnée par

F =GMsMm

r2(1 +

α

r2) , α = 1.1× 10−8UA2. (7.70)

Nous aimerions, á la fin de cette section, de discuter quelques résultats numériquesobtenus avec la méthode de Runge-Kutta pour différentes valeurs de α. Nousprenons le pas de temps et le nombre d’itérations dt = 0.0001 et N = 20000. Noustrouvons que l’angle de la ligne joignant le Soleil et le Mercure avec l’axe horizontallorsque le Mercure est au périhélie change de façon linéaire avec le temps. Nousobtenons les taux suivants de precession

Page 62: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

56 physique numérique, ydri et al.

α = 0.0008 ,dθ

dt= 8.414± 0.019

α = 0.001 ,dθ

dt= 10.585± 0.018

α = 0.002 ,dθ

dt= 21.658± 0.019

α = 0.004 ,dθ

dt= 45.369± 0.017. (7.71)

Ainsi

dt= aα , a = 11209.2± 147.2 degres/(an.α). (7.72)

En extrapolant á la valeur fournie par la relativité générale, á savoir α = 1.1×10−8

nous obtenons

dt= 44.4± 0.6 sec d′arc/siecle. (7.73)

Page 63: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

7Le Chaos: Pendule Chaotique

7.1 Equation du Mouvement

Nous partons de l’équation du mouvement d’un pendule simple donnée par

mld2θ

dt2= −mg sin θ. (1.1)

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 deStokes. Nous obtenons

mld2θ

dt2= −mg sin θ −mlq

dt. (1.2)

La résistance de l’air va éventuellement drainer toute l’énergie du pendule. Afinde 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ériodiqueavec 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 unefré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ériodiquesde point de pivot du pendule. En ajoutant la force motrice nous obtenons alorsl’équation du mouvement

mld2θ

dt2= −mg sin θ −mlq

dt+mlFD cosωDt. (1.3)

Page 64: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

58 physique numérique, ydri et al.

La fréquence naturelle des oscillations est donnée par la fréquence du pendulesimple, á savoir

ω0 =

g

l. (1.4)

Nous prendrons toujours ω0 = 1, á savoir l = g. L’équation du mouvement devient

d2θ

dt2+

1

Q

dt+ sin θ = FD cosωDt. (1.5)

Le coefficient Q = 1/q est connu sous le nom de facteur de qualité. Il mesurele nombre d’oscillations fait par le pendule avant son énergie est drainée. Nousallons écrire l’équation ci-dessus qui est une équation différentielle de second ordrecomme deux équations différentielles du premier ordre, á savoir

dt= Ω

dt= − 1

QΩ− sin θ + FD cosωDt. (1.6)

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= Ω

dt= − 1

QΩ− θ + FD cosωDt. (1.8)

Ou de façon équivalente

dθ2

dt2= − 1

Q

dt− θ + FD cosωDt. (1.9)

Pour Fd = 0 la solution est donnée par

θ =

(

θ(0) cosω∗t+1

ω∗

(

Ω(0) +θ(0)

2Q

)

sinω∗t

)

e−t

2Q , ω∗ =

1− 1

4Q2. (1.10)

Pour Fd 6= 0 une solution particuliére est donnée par

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

Page 65: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 59

Nous trouvons

a =1

(1− ω2D)

2 +ω2D

Q2

(1− ω2D) , b =

1

(1− ω2D)

2 +ω2D

Q2

ωD

Q. (1.12)

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

θ = θ∞ + θt. (1.13)

θt =

[(

θ(0)− FD(1− ω2D)

(1− ω2D)

2 +ω2D

Q2

)

cosω∗t +1

ω∗

(

Ω(0) +θ(0)

2Q− 1

2Q

FD(1− 3ω2D)

(1− ω2D)

2 +ω2D

Q2

)

sinω∗t

]

e−t

2Q .

(1.14)

Les deux derniers termes dépendent des conditions initiales et disparaissent defaç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 −→ ∞ nousobtenons

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

Aussi pour t −→ ∞ nous obtenons

Ω =dθ

dt= FDωD(−a sinωDt+ b cosωDt). (1.16)

Nous calculons dans la limite des temps grandes t −→ ∞

θ2 +Ω2

ω2D

= F 2D = F 2

D(a2 + b2) =

F 2D

(1− ω2D)

2 +ω2D

Q2

. (1.17)

En d’autres termes l’orbite du systéme dans l’espace de phase est une ellipse. Lemouvement 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 lesconditions initiales la trajectoire du systéme va tendre á cette ellipse dans la limitedes temps grandes t −→ ∞.

Remarquons également que le déplacement angulaire maximal est FD. La fonc-tion FD = FD(ωD) présente un comportement de résonance quand la fréquenceapproche la fréquence naturelle qui est équivalente á la limite ωD −→ 1. Danscette limite FD = QFd. La largeur de la fenêtre de résonance est proportionnelleá 1/Q. Par conséquent pour Q −→ ∞ nous observons que FD −→ ∞ quandωD −→ 1 tandis que pour Q −→ 0 nous observons FD −→ 0 quand ωD −→ 1.

En général, la réponse asymptotique de tout systéme linéaire á une force externepériodique est périodique avec la même période que la force motrice. En outre,

Page 66: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

60 physique numérique, ydri et al.

lorsque la fréquence de la force motrice externe approche l’une des fréquencespropres, 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é dusystéme dynamique. Comme nous le verrons briévement le mouvement périodiquen’est pas la seule réponse asymptotique possible d’un systéme dynamique á uneforce motrice périodique.

7.2 Algorithmes Numériques

Les équations du mouvement sont

dt= Ω

dt= − 1

QΩ− sin θ + F (t). (2.18)

La force motrice externe est périodique donnée par l’une des expressions suivantes

F (t) = FD cosωDt. (2.19)

F (t) = FD sinωDt. (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

Ω(i+ 1) = Ω(i) + ∆t

(

− 1

QΩ(i)− sin θ(i) + F (i)

)

θ(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)

Page 67: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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)

k3 = ∆t

[

− 1

QΩ(i)− sin θ(i) + F (i)

]

k2 = ∆t

(

Ω(i) +1

2k3

)

k4 = ∆t

[

− 1

Q

(

Ω(i) +1

2k3

)

− sin

(

θ(i) +1

2k1

)

+ F (i+1

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)

F (i+1

2) ≡ F (t(i) +

1

2∆t) = FD cosωD∆t(i− 1

2). (2.29)

F (i+1

2) ≡ F (t(i) +

1

2∆t) = FD sinωD∆t(i− 1

2). (2.30)

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)

Page 68: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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ωDt + b sinωDt). (3.33)

Le mouvement dans l’espace de phase est périodique avec une période égale á lapériode de la force motrice. L’orbite dans l’espace de phase est précisément uneellipse de la forme

θ2∞ +Ω2

ω2D

= F 2D(a

2 + b2). (3.34)

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érementdiffé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 δθ enfonction du temps, nous trouvons une ligne droite avec une pente négative. Lemouvement asymptotique n’est pas sensible aux conditions initiales. Il convergepour les temps larges vers θ∞ quelle que soit les conditions initiales. La courbeθ∞ = θ∞(ω∞) est appelé un attracteur (périodique). La raison est parce quetoute 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 augmenterQ gardant tout le reste fixée. Nous observons que la pente de la droite ln δθ = λtcommence á 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 exponentielleavec le temps. C’est le régime chaotique. La valeur de λ = 0 est la valeur oú lechaos 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, étantdonné deux pendules identiques, leurs mouvements divergent l’un de l’autre dansle 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 lenom 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 dela force motrice est appelé un mouvement de période 1. Dans ce cas, la trajectoire

Page 69: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 63

se répète exactement une fois chaque période. C’est le seul mouvement possibledans la limite de faible amplitude.

En général, un mouvement de période N correspond á une orbite du systémedynamique qui se répète chaque N périodes de la force extérieure. Ces orbitesexistent dans le régime non-linéaire du pendule.

La section de Poincaré est définie comme suit. Nous tracons dans l’espace desphases θ−Ω un seul point par période de la force motrice extérieure. Nous traconspar exemple (θ,Ω) pour

ωDt = φ+ 2πn. (3.36)

L’angle φ est appelée la phase de Poincaré et n est un entier. Pour un mouvementde période 1 la section de Poincaré se compose d’un seul point. Pour un mouvementde période N la section de Poincaré se compose de N points.

Ainsi, dans le régime linéaire si nous tracons (θ,Ω) pour ωDt = 2πn on obtientun seul point, puisque le mouvement est périodique de période égale á celle de laforce motrice. Cette section de Poincaré est également un attracteur puisque lesorbites de tous les pendules qui ont presque les mêmes conditions initiales vontconverger sur ce point.

Dans le régime chaotique la section de Poincaré est un attracteur connu sousle nom d’attracteur étrange. C’est une courbe compliquée qui pourrait avoir unestructure fractale et les orbites de tous les pendules qui ont presque les mêmesconditions 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 etl’émergence du chaos le phénomènes de doublement de période. Dans le régimelinéaire, la section de Poincaré est un point P qui correspond á un mouvement depé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 augmentonsle facteur de qualité Q tout en conservant tous le autres paramétres fixés. Nousfinirons 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ériode2, c’est á dire la période devient égale á 2TD.

Dans un mouvement oú la période est TD (au-dessous de Q1), nous obtenonsla même valeur de θ chaque fois t = mTD. Nous aurons donc le même point dansla section de Poincaré chaque fois t = 2nπ/ωD = nTD. Dans un mouvement oú lapé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 nousobtenons deux points dans la section de Poincaré.

Page 70: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 unepériode NTD avec N = 2N et N = 0, 1, 2, ... est appelée mouvement de périodeN . La section de Poincaré correspondante se compose de N points distincts.

Le digaramme de θ en fonction de Q est appelé un diagramme de bifurcation. Ila une structure fractale. Nous remarquons ici que normalement dans les oscillationsordinaires nous obtenons des harmoniques avec des périodes égales á la périodede la force motrice divisé par N = 2N . Mais dans ce cas, nous avons obtenudes sous-harmoniques avec des périodes égales á la période de la force motrice foisN = 2N . Ceci est trés caractéristique du chaos. En fait le comportement chaotiquecorrespond á la limite N −→ ∞. En d’autres termes le chaos est le mouvementde période N −→ ∞ qui pourrait être considéré comme une autre définition duchaos.

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 mouvmentde période N = 2N se produire. Nous définissons le rapport de Feigenbaum par

FN =QN−1 −QN−2

QN −QN−1. (3.37)

Il peut être démontré que FN −→ F = 4.669 quand N −→ ∞. Il s’agit d’unrapport universel appelé le rapport de Feigenbaum qui caractérise de nombreuxsystémes chaotiques qui souffrent d’une transition vers le chaos par l’intermédiaired’une série infinie de bifurcations associées au doublement de période. L’équationci-dessus peut alors être réécrite sous la forme

QN = Q1 + (Q2 −Q1)

N−2∑

j=0

1

F j(3.38)

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

Q∞ = Q1 + (Q2 −Q1)F

F − 1(3.39)

C’est lá oú le chaos se produire. Dans le diagramme de bifurcation, la régionchaotique 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 lenom de brisure spontanée de symétrie. La premiére bifurcation (doublement de

Page 71: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 65

période) correspond á la brisure de la symétrie t −→ t + TD. Le régime linéairerespecte cette symétrie. Cependant le mouvement de période 2 et en général lesmouvements 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 lependule chaotique et qui est associé á un diagramme de bifurcation. Ceci se dérouledéjá dans la région de mouvement de période 1 oú on observe la brisure spontanéede 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 laverticale du pendule. En d’autres termes, le pendule chaotique dans ces solutionspassent 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 brisurede symétrie gauche-droite peut être obtenue par une augmentation progressive deQ. Nous allons atteindre á partir d’une solution symétrique entre gauche et droitemais avec des conditions initiales différentes, soit la solution favorisant la gaucheou la solution favorisant la droite. La symétrie θ −→ −θ est également briséespontanément dans les mouvements de périodes N .

Page 72: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

66 physique numérique, ydri et al.

Page 73: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

8Dynamique Moléculaire

8.1 Introduction

Dans la dynamique moléculaire, nous tentons de comprendre le comportementd’un systéme classique á plusieurs particules en simulant la trajectoire de chaqueparticule dans le systéme. En pratique, cela peut être appliquée á des systémescontenant 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 Carlotraite les systémes qui sont en équilibre thermique avec un réservoir de chaleur. Ladynamique moléculaire, de l’autre part, est utile pour étudier la vitesse en tempsré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 lesvitesses de toutes les molécules en fonction du temps. En utilisant la méthode dedynamique 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 casde l’Argon liquide comme un exemple. L’énergie nécessaire pour exciter un atomed’Argon est de l’ordre de 10 eV tandis que l’énergie cinétique de centre de masse

Page 74: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

68 physique numérique, ydri et al.

d’un atome d’Argon est de 0.1 eV. Ainsi, une collision entre deux atomes d’Argonne changera pas leurs configuration électronique. Par conséquent, nous pouvonsignorer la structure interne des atomes d’Argon. En outre, la longueur d’onded’un atome d’Argon qui est de l’ordre de 10−7 A est beaucoup plus petit quel’espacement entre les atomes d’Argon qui typiquement de l’ordre de 1 A, quijustifie á 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 unevitesse (vi,x, vi,y) s’écrit

dvi,xdt

= ax,i ,dxi

dt= vi,x. (2.1)

dvi,ydt

= ay,i ,dyidt

= vi,y. (2.2)

Chaque atome d’Argon subit une force de tous les autres atomes d’Argon. Afinde 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’atomesd’Argon ne dépendent que de la distance entre eux. Soit rij et u(rij) la distance etle potentiel d’interaction entre les atomes i et j. Le potentiel total est alors donnépar

U =

N−1∑

i=1

N∑

j=i+1

u(rij). (2.3)

La forme précise de u peut être calculée á partir des premiers principes, á savoirla mécanique quantique. Toutefois, ce calcul est trés compliqué et dans la plupartdes cas une forme phénoménologique de u sera suffisante.

Pour les grandes séparations rij , le potentiel u(rij) doit être faiblement attractifdonné par la force de Van der Walls, qui découle de l’interaction électrostatiqueentre les moments dipolaires électriques des deux atomes d’Argon. En d’autrestermes u(rij) pour les grandes séparations est attractif en raison de la polarisationmutuelle 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/r6ij. Pourles petites séparations rij , le potentiel u(rij) doit devenir fortement répulsif en

Page 75: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 69

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

u(r) = 4ǫ

[(

σ

r

)12

−(

σ

r

)6]

. (2.4)

Ceci est le potentiel de Lennard-Jones. Le paramétre σ est de dimension longueurtandis 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érorapidement. Le minimum du potentiel se produit á r = 21/6σ. La profondeur dupotentiel au minimum est ǫ.

La force de l’atome k sur l’atome i est

~fk,i = −~∇k,iu(rk,i) =24ǫ

rki

[

2

(

σ

rki

)12

−(

σ

rki

)6]

rki. (2.5)

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

ax,i =1

m

k 6=i

fk,i cos θk,i =1

m

k 6=i

fk,ixi − xk

rki

=24ǫ

m

k 6=i

xi − xk

r2ki

[

2

(

σ

rki

)12

−(

σ

rki

)6]

. (2.6)

ay,i =1

m

k 6=i

fk,i sin θk,i =1

m

k 6=i

fk,iyi − ykrki

=24ǫ

m

k 6=i

yi − ykr2ki

[

2

(

σ

rki

)12

−(

σ

rki

)6]

. (2.7)

8.3 Unités, Conditions aux Limites et Algorithmede Verlet

Unités Réduites Nous allons choisir σ et ǫ comme les unités de distance etde l’énergie respectivement. Nous allons également choisir la masse m d’un seulatome d’Argon comme l’unité de masse. Tout le reste est mesuré en termes de σ,

Page 76: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 enunité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−10m , ǫ = 1.65× 10−21J = 120kBJ , m = 6.69× 10−26kg. (3.9)

Ainsi

σ

m

ǫ= 2.17× 10−12s. (3.10)

Par conséquent, une simulation de dynamique moléculaire qui se déroule pendant2000 étapes avec un pas de temps réduit ∆t = 0.01 correspond á un temps totalré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é dansune boîte, la fraction d’atomes du systéme á proximité des parois de la boîte estné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 casla fraction d’atomes prés des murs est considérable et leur effet ne peut pas êtrenégligé.

Afin de réduire les effets de bord, nous allons utiliser des conditions aux limitespé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. Siun atome traverse les parois de la boîte dans une direction particuliére, nous allonsajouter 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 seulementLx/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)

Page 77: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 estl’algorithme de Verlet. Nous considérons les expansions de Taylor avancée et re-tardée d’une fonction f données par

f(tn +∆t) = f(tn) + ∆tdf

dt|tn +

1

2(∆t)2

d2f

dt2|tn +

1

6(∆t)3

d3f

dt3|tn + ... (3.15)

f(tn −∆t) = f(tn)−∆tdf

dt|tn +

1

2(∆t)2

d2f

dt2|tn − 1

6(∆t)3

d3f

dt3|tn + ... (3.16)

En ajoutant ces expressions nous obtenons

f(tn +∆t) = 2f(tn)− f(tn −∆t) + (∆t)2d2f

dt2|tn +O(∆t4). (3.17)

On remarque que l’erreur est proportionnelle á ∆t4, c’est á dire cette méthode estplus précise que les méthodes d’Euler, d’Euler-Cromer et Runge-Kutta de secondordre. Nous avons donc pour l’atome i les équations

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

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

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

fk,i,n =24ǫ

rki,n

[

2

(

σ

rki,n

)12

−(

σ

rki,n

)6]

. (3.20)

ax,i,n =1

m

k 6=i

fk,i,nxi,n − xk,n

rki,n. (3.21)

ay,i,n =1

m

k 6=i

fk,i,nyi,n − yk,n

rki,n. (3.22)

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

rki,n =√

(xi,n − xk,n)2 + (yi,n − yk,n). (3.23)

Page 78: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

72 physique numérique, ydri et al.

Dans la méthode de Verlet, il n’est pas nécessaire de calculer les composantesdxi,n/dt et dyi,n/dt de la vitesse. Toutefois, nous aurons besoin de la vitesse pourcalculer l’énergie. Donc nous allons aussi calculer la vitesse en utilisant les équa-tions suivantes

vx,i,n =xi,n+1 − xi,n−1

2∆t. (3.24)

vy,i,n =yi,n+1 − yi,n−1

2∆t. (3.25)

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 avoirxi,2, yi,2, vx,i,2 et vy,i,2 pour que l’algorithme de Verlet démarre correctement ce quipeut ê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 rapprochede 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 gazen équilibre thermique est égale á kBT/2. En d’autres termes

1

2kBT =

1

d<

1

2m~v2 > . (4.26)

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 dansle temps de son énergie cinétique. Le même résultat peut être obtenu en prenantla moyenne de l’énergie cinétique des différents atomes. Dans ce dernier cas, nousécrivons

1

2kBT =

1

dN

N∑

i=1

1

2m~v2i . (4.27)

Une autre façon de mesurer la température T d’un gaz dilué est á travers une étudede la distribution des vitesses atomiques. Un gaz classique en équilibre thermique

Page 79: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 73

obéit á la distribution de Maxwell. Les distributions de vitesse en deux dimensionssont données par

P (v) = Cv

kBTe− mv2

2kBT . (4.28)

P (vx) = Cx1√kBT

e−

mv2x2kBT , P (vy) = Cy

1√kBT

e−

mv2y2kBT . (4.29)

Rappelons que la probabilité par unité de v de trouver un atome avec la vitessev est égale P (v) alors que la probabilité par unité de vx,y de trouver un atomeavec 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 dansP (v). Elle est donnée par

kBT = mv2peak. (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 delaboratoire.

Page 80: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

74 physique numérique, ydri et al.

Page 81: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

9Travaux Pratiques

Page 82: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 enmouvement autour du soleil. Le soleil est trés lourd comparé á la planéte et parconséquence nous pouvons supposer qu’ elle est fixée au centre du systéme. Ladeuxiéme loi de Newton donne les équations du mouvement suivantes

vx =dx

dt,dvxdt

= −GMs

r3x , vy =

dy

dt,dvydt

= −GMs

r3y.

Nous allons utiliser ici les unités astronomiques défini par GMs = 4π2AU3/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-ceque vous observez pour l’énergie.

(3) Selon la premiére loi de Kepler l’orbite de n’importe quel planéte est uneellipse 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 enunité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 conditionsinitiales

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 uneorbite correcte et doit être déterminé par exemple en supposant que l’orbiteest circulaire et par conséquent la force centrifuge est équilibrée par la forced’attraction gravitationnelle. Nous obtenons v = GMs/a. Nous prenons lepas et le nombre d’itérations ∆t = 0.01 yr , N = 103 − 104 .

Page 83: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 quelplanéte est directement proportionnelle au cube de grand rayon de son or-bite. Pour les orbites circulaires le facteur de proportionnalité est égal á 1exactement. Vérifiez ce fait. Nous pouvons mesurer la période d’une planéteen 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 sontla loi d’attraction gravitationelle universelle de Newton et la deuxiéme loidu mouvement de Newton. La loi d’ attraction universelle stipule que laforce entre le soleil et une planéte est inversement proportioanl au carré dela distance entre eux. Nous supposerons maintenant que cette force est in-versement proportionnelle á une puissance différente de la distance. Calculerles orbites pour des puissances entre 1 et 3. Qu’est-ce que vous observez etQu’en concluez-vous.

Page 84: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 leSoleil á l’un des deux foyers. Cette loi peut être obtenu á partir de l’applicationde la deuxiéme loi de Newton pour le systéme constitué du Soleil et une planéteunique. L’effet des autres planétes sur le mouvement produira un changementd’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 duSoleil. Toutes les planétes souffrent de cet effet, mais parce qu’elles sont tous plusloin du Soleil avec des périodes plus longues que Mercure leurs taux de précessionsont plus petites que celle de Mercure.

Cependant, il a été établi trés tôt que la précession du périhélie de Mercuredû aux effets newtoniens s’écarte de la précession observée par la quantité 43arcseconde par siécle. Il s’avére que cette effet peut seulement être expliqué dansle 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 courbured’espace-temps peut être approchée par l’effet de la loi de force

F =GMsMm

r2(1 +

α

r2) , α = 1.1.10−8AU2.

(1) Inclure la force ci-dessus dans le code. La position initiale et la vitesse initialede Mercure sont

x0 = (1 + e)a , y0 = 0.

vx0 = 0 , vy0 =

GMs

a

1− e

1 + e.

Ainsi, Mercure est initialement au point le plus éloigné du Soleil, parce quea 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 momentangulaire et de la conservation de l’énergie entre le point initial ci-dessus etle point (0, b).

(2) Le taux de précession du périhélie de Mercure est trés petit, car α est trésfaible. En fait, il ne peut pas être mesurée directement dans une simulationnumérique avec un temps limité. Donc nous allons choisir une valeur plusgrande de α, par exemple α = 0, 0008 AU 2. Nous allons travailler égalementavec 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

Page 85: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 79

du temps. Calculer aussi la distance entre Mercure et le soleil et sa dérivéepar rapport au temps donné par

dr

dt=

xvx + yvyr

.

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 θpfaite entre le vecteur position de Mercure á son point le plus éloigné etl’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écessiondu 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 fonctionde α. Déterminer la pente. En déduire ainsi la quantité de précession pourla valeur α = 1.1.10−8 AU 2.

Page 86: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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’influencede la force de gravité. Le mouvement du pendule est en général non-linéaire, carl’angle que le pendule fait avec la verticale n’est pas nécessairement petit et peutatteindre 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é êtredonnée par la loi de Stokes Fdrag = −mlqdθ/dt.

Cette force de frottement va drainer toute l’énergie du pendule et comme uneconséquence le pendule finira par s’arrêter. Afin de maintenir le mouvement dupendule contre l’effet d’amortissement de la résistance de l’air, il est nécessaired’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 νdet d’amplitude fixe mlFD donnée par Fdrive = mlFD sin 2πνDt.

La deuxiéme loi de Newton s’écrit

d2θ

dt2= −g

lsin θ − q

dt+ FD sin 2πνDt.

La propriété la plus importante d’une large classe de solutions de cette équationdifférentielle est hyper sensibilité aux conditions initiales connue aussi par le nomeffet 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 oscillationssimples é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 leré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 nese 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’espacedes phases.

Nous prenons les valeurs et les conditions initiales

dt = 0.04s , 2πνD =2

3s−1 , q =

1

2s−1 , N = 1000− 2000.

θ1 = 0.2 radian , Ω1 = 0 radian/s.

Page 87: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 valeurde Fd. Quelle est la période d’oscillation pour les temps petits et les tempsgrands pour la seconde valeur de Fd . Est-ce que le mouvement est périodiquepour la troisième valeur de Fd.

Page 88: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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’estpas prévisible. Cela ne signifie toutefois pas que le mouvement du pendule estaléatoire qui peut être clairement vu dans les sections de Poincaré. Une section dePoincaré est une courbe dans l’espace des phases obtenues en traçant un point del’orbite par période de la force motrice extérieure. Explicitement nous tracons lespoints (θ,Ω) qui correspondent aux instants t = n/νD oú n est un entier. Dansle régime linéaire la section de Poincaré est constituée d’un seul point. Section dePoincaré dans le régime chaotique est une courbe qui ne dépend pas des conditionsinitiales confirmant ainsi que le mouvement n’est pas aléatoire et qui peuventavoir 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 conditionsinitiales légérement différentes. Par exemple nous prenons

θA1 = 0.2 radian , θB1 = 0.201 radian.

La différence entre les deux mouvements peuvent être mesurés par ∆θi =θAi − θBi . 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 utiliserN = 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’estce qu’il représente. Quel est l’orbite pour les grands instants. Comparezentre les deux pendules A et B. Est-ce que l’orbite pour les grandes instantsdé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 obtenuspar la commande

Page 89: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 83

if(sin πνDti sin πνDti+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 unseul 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égimechaotique 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 etB. Qu’est-ce que vous observez et que concluez-vous.

Page 90: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 dedoublement de période. L’orbite périodique de période égale à la période de laforce motrice extérieure est appelée mouvement de période 1. Il existe cependantd’autres orbites périodiques avec des périodes égales á deux fois, quatre fois et engé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 . Ledoublement 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 seulefréquence contient des composants avec des périodes égales á la période de laforce motrice divisée par 2N . En d’autres termes nous obtenons des harmoniques,par opposition aux sous-harmoniques que nous avons observé dans le pendulechaotique.

Pour le mouvement de periode N , nous attendons qu’il y a N valeurs différentesde l’angle θ pour chaque valeur de Fd. La fonction θ = θ(Fd) est appelé undiagramme de bifurcation. Formellement, la transition vers le chaos survient dansla limits N −→ ∞. En d’autres termes le chaos est définie comme un mouvementde période infinie.

(1) Nous prenons les valeurs et les conditions initiales

l = g , 2πνD =2

3s−1 , q =

1

2s−1 , N = 3000− 100000 , dt = 0.01s.

θ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-ceque les deux derniérs valeurs de Fd se trouvent dans le régime linéaire ouchaotique du pendule chaotique.

(2) Calculer l’angle θ en fonction de Fd pour les temps t qui satisfont la condition2πνDt = 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 orbitessont des mouvements á une période, á deux période et á 4 périodes.

Page 91: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 85

Dans ce probléme, il est trés important d’éliminer les transitoires initialesavant de commencer á mesurer le diagramme de bifurcation. Cela peut êtrefait 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 lasection de Poincaré pour chaque valeur de Fd.

Page 92: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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θ

dt2= − sin θ − 1

Q

dt+ FD cos 2πνDt.

Dans cette simulation, nous prenons les valeurs FD = 1.5 radian/s2 , 2πνD = 23s−1.

Afin d’atteindre une meilleure précision numérique, nous utilisons l’algorithme deRunge-Kutta de deuxiéme ordre.

Dans le régime linéaire les orbites sont périodiques de période égale à la périodeTD de la force motrice externe et sont symétriques sous θ −→ −θ. Il existe d’autressolutions qui sont périodiques avec période égale TD, mais ne sont pas symétriquessous θ −→ −θ. Dans ces solutions le pendule passe la majorité de son temps dansla région á la gauche de son axe vertical (θ < 0) ou dans la région á la droite deson 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. Endessous de cette valeur nous obtenons une ligne tandis qu’au-dessus de cette valeurnous obtenons deux lignes correspondantes aux deux solutions dans lesquelles lependule 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 deRunge-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 dansl’intervalle [1.2, 1.3]. Quelle est la valeur Q∗ pour laquelle la symétrie θ −→−θ est spontanément brisée.

Page 93: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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. Cephénomène est un autre exemple d’une brisure spontanée de la symétrie. Dansce cas, la symétrie est t −→ t + TD. Il es clair que seulement les orbites avec lapé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 versun mouvement de période N . Le rapport de Feigenbaum est définie par

FN =QN−1 −QN−2

QN −QN−1.

Lorsque nous approchons le régime chaotique, c’est à dire lorsque N −→ ∞, lerapport 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 unesèrie infinie de bifurcations associés au doublement de période est caractérisée parun rapport de Feigenbaum égale 4.669 lorsque N −→ ∞.

(1) Calculer l’orbite et la section de Poincaré pour Q = 1.36 s. Quelle est lapé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 estla valeur de Q au cours de laquelle la symétrie t −→ t+TD est spontanémentbrisé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∞ aucours de lequelle la transition vers le chaos survient.

Page 94: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

88 physique numérique, ydri et al.

9.7 Dynamique Moléculaire

Partie I Nous considérons le mouvement en deux dimensions de N atomesd’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 potentielde Lennard-Jones

u = 4ǫ

[(

σ

r

)12

−(

σ

r

)6]

.

La force sur l’atome i exercée par l’atome k est

fk,i =24ǫ

rki

[

2

(

σ

rki

)12

−(

σ

rki

)6]

.

Les équations du mouvement de l’atome i sont

d2xi

dt2= ax,i =

1

m

k 6=i

fk,ixi − xk

rki,d2yidt2

= ay,i =1

m

k 6=i

fk,iyi − ykrki

.

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)2ax,i,n , yi,n+1 = 2yi,n − yi,n−1 + (∆t)2ay,i,n.

Nous allons aussi calculer les vitesses

vx,i,n =xi,n+1 − xi,n−1

2∆t, vy,i,n =

yi,n+1 − yi,n−1

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 limitespériodiques. En d’autres termes la boîte est effectivement un tore et il n’ya pas debords. 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 commesuit:

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 seulementL/2. De même, la séparation maximale dans la direction y entre deux particulesest seulement L/2. Ceci peut être réalisé comme suit

Page 95: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

a =L√N.

Il ya clairement N cellules d’aire a×a. Nous choisissons L et N tel que a > 2σ. Lespositions 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 ajoutantdes nombres aléatoires dans l’intervalle [−a/4,+a/4] aux coordonnées x et y desatomes.

1) Écrire un code de dynamique moléculaire suivant les lignes ci-dessus. PrenezL = 15, N = 25, ∆t = 0.02, Time = 500 et v0 = 1. Comme un premier testvé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

kBT =m

2N

N∑

i=1

(v2i,x + v2i,y).

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

3) On va calculer la distribution des vitesses des atomes d’argon en construisantun histogramme appropriées comme suit. Nous prenons la valeur Time =2000. Nous considérons les vitesses de toutes les particules dans tout lestemps. Il y a Time × N valeurs de la vitesse dans cet échantillon. Pourconstruire 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 dansun bac donné.

Page 96: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

90 physique numérique, ydri et al.

4) divisé par la normalisation de la distribution.

Comparer avec la distribution Mawell

PMaxwell(v) = Cv2

kBTe− mv2

2kBT .

Déduire la température á partir du pic de la distribution donnée par kBT =mv2peak. Comparer avec la valeur de la température obtenue á partir duthé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ératuredoit être suffisamment faible et la densité doit être suffisamment élevée. Pourrendre la température aussi basse que possible, nous allons commencer avec toutesles particules au repos. Afin d’obtenir une attraction maximale entre les atomesnous choisissons une faible densité d’environ une particule par unité de surfaceréduite. En particulier nous choisissons N = 16 et L = 4.

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

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

hh = int(n/1000)

if (hh ∗ 1000.eq.n) thenx(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 defusion par le biais de cette méthode. Qu’advient-il de l’énergie et la tem-pérature.

Page 97: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Partie III

Page 98: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons
Page 99: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

10Nombres (Pseudo) Aléatoires et Marche

Au Hasard

10.1 Nombres Aléatoires

Une suite de nombres r1, r2, ... est appelé aléatoire s’il n’ya pas de corrélationsentre les nombres. La séquence est appelé uniforme si tous les nombres ont uneprobabilité égale de se produire. Soit P (r)dr la probabilité qu’un certain nombreri dans la séquence se situe entre r et r + dr, c’est á dire P (r) est la distributionde probabilité. Une distribution uniforme signifie que P (r) = constante.

La plupart des générateurs de nombres aléatoires sur ordinateurs génèrent desdistributions 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 vraimentau hasard et des corrélations entre les nombres de la suite existent. Des vraisnombres aléatoires peuvent être trouvées dans les tableaux de nombres obtenusnaturellement 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,

Page 100: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

94 physique numérique, ydri et al.

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

ri = (ari−1 + c) mod M = remainder

(

ari−1 + c

M

)

. (1.1)

La notation y = z mod M signifie que nous soustrayons M de z jusqu’á ce que0≤y≤M − 1. Le premier nombre aléatoire r1 est fourni par l’utilisateur et il estappelé la graine. Egalement fourni sont le multiplicateur a, l’incrément c et lemodule M . Le "remainder" est une fonction intégrée dans la plupart des langagesinformatiques. 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 . Engénéral, la période k dépend de a, c et M . Pour obtenir une séquence uniformedans 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. Nousobtenons 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 cecas, la période est M = 9.

Il est clair que nous devons choisir les paramétres a, c et M et la graine r1avec tant de soin pour que nous obtenions la plus longue séquence de nombrespseudo-aléatoires. La durée maximale possible dépend de la largeur des registresde processeur. Pour une machine 32-bits, c’est á dire lorsque les mots manipuléspar 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 sontrépartis uniformément sur toute leur gamme. L’équation (1.1) est liée à la suitelogistique qui est connu pour leur comportement chaotique. Bien que le chaos estdéterministe il semble aléatoire. De la même maniére, bien que l’équation (1.1) estdéterministe les nombres générés semblent aléatoires. C’est la raison pour laquelleils 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éatoirea une période suffisamment longue pour un probléme donné. Nous pouvons utiliserle 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

< xki >=

1

N

N∑

i=1

xki . (1.3)

Page 101: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 95

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

< xki >=

∫ 1

0

dx xkP (x) +O(1√N). (1.4)

Pour une distribution uniforme P (x) = 1, nous devons avoir

< xki >=

1

k + 1+O(

1√N). (1.5)

En d’autre termes

√N

(

1

N

N∑

i=1

xki −

1

k + 1

)

= O(1). (1.6)

Ceci est un test d’uniformité ainsi q’un test qui nous permet de vérifier si laséquence des nombres est vraiment aléatoire ou pas. Pour être plus précis, si< xk

i > 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 unedistribution uniforme, nous devons obtenir N/K nombres dans chaque bin où Nest 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 statistiquesautour de la valeur idéale N/K pour chaque bin. La question est de savoir si oupas ces fluctuations sont compatibles avec les lois de la statistique. La réponse estbasée sur la soi-disant chi carré défini par

χ2m =

K∑

i=1

(Ni − nideal)2

nideal. (1.7)

Dans la définition ci-dessus Ni est le nombre des nombres aléatoires qui tombentdans le bin i et nideal est le nombre attendu des nombres aléatoires dans chaquecellule.

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

P (χ2 ≤ χ2m) =

γ(ν/2, χ2m/2)

Γ(ν/2)= P (ν/2, χ2

m/2). (1.8)

La distribution de χ2m est maximale autour de la valeur χ2

m = ν. Cela correspondà P (ν/2, χ2

m/2) = 0.5, ce qui signifie que dans la moitié des essais nous devrionstrouver une valeur de χ2

m plus petit que ν.

Page 102: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

96 physique numérique, ydri et al.

Test Aléatoire : Soit r1, r2, ..., rN une séquence des nombres aléatoires. Un testtré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 plotsinon la séquence n’est pas aléatoire.

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

C(j) =< xixi+j > − < xi >< xi+j >

< xixi > − < xi >2

=< xixi+j > − < xi >

2

< xixi > − < xi >2, j = 1, 2, ... (1.9)

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 paspertinent et

< xixi+j >=1

N − j

N−j∑

i=1

xixi+j −→1

N

N∑

i=1

xixi+j , N −→ ∞. (1.10)

Encore une fois, si xi et xi+j sont des nombres aléatoires indépendants qui sontdistribués avec la distribution de probabilité conjointe P (xi, xi+j), alors

< xixi+j >≃∫ 1

0

dx

∫ 1

0

dyxyP (x, y). (1.11)

Nous avons clairement supposer que N est grand. Pour une distribution uniforme,à savoir P (x, y) = 1 nous obtenons

< xixi+j >≃ 1

4. (1.12)

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 oustochastiques. Ces systémes sont des systémes non déterministes par oppositionaux 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écritla physique du systéme á tout moment.

Page 103: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 97

Nous prenons le cas de la diffusion des molécules des fluides. Par exemplele mouvement des particules de poussiére dans l’atmosphére, le mouvement desmolécules de parfum dans l’air ou le mouvement des molécules de lait dans uncafé. 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 gouttede lait se propagera lentement jusqu’á ce que le café prend une couleur bruneuniforme. Au niveau moléculaire, chaque molécule du lait entre en collision avecles molécules dans le café. Clairement, la goutte de lait change de direction sisouvent que son mouvement apparaît aléatoire. Cette trajectoire peut être décritepar une marche aléatoire dite aussi une marche au hasard. Il s’agit d’un systémedans lequel chaque molécule du lait se déplace d’une seule étape á la fois dansn’importe quelle direction avec une probabilité égale.

La trajectoire d’une molécule de poussiére, du parfum ou du lait n’est pasvraiment aléatoire, car il peut en principe être calculé en résolvant les équationsdu mouvement de Newton pour toutes les molécules qui nous permet alors deconnaître l’évolution du systéme dans le temps. Bien que cela est possible, enprincipe, il n’est pas réalisable dans la pratique. La marche au hasard est donceffectivement une approximation. Toutefois, le grand nombre de molécules et decollisions 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 alorsprendre des pas de longueur unité le long d’une ligne. Il commence á s0 = 0 et lapremié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 lemarcheur se déplace vers le point s1 = 1 et une chance de 50 cents pour qu’il sedéplace vers le point s1 = −1. Dans la deuxiéme étape le marcheur va encorese déplacer soit vers la droite ou vers la gauche de point s1 au point s2 avec desprobabilités égales. Ce processus sera répété á maintes reprises. Nous obtenonsalors 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 étapesest une constante ce qui signifie aue le nombre des étape N est proportionnelle autemps. Par conséquent xN est la position du marcheur en tant que fonction dutemps.

En général, un marcheur au hasard á une seule dimension peut se déplacer versla droite avec une probabilité p ou vers la gauche avec une probabilité q = 1 − pavec des étapes de longueur égale a. La direction de chaque étape est indépendantede la précédente. Le déplacement ou la position du marcheur aprés N étapes estdonné par

Page 104: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

98 physique numérique, ydri et al.

xN =

N∑

i=1

si. (2.14)

Les marcheurs pour p = q = 1/2 peuvent être générés en retournant une pièce demonnaie N fois. La position est augmenté de a pour les faces et diminué de a pourles piles.

La moyenne sur un nombre quleconque des marcheurs chacun de N étapes est

< xN >=

N∑

i=1

< si >= N < s > . (2.15)

En haut, nous avons utilisé le fait que la moyenne de chaque étape est la mêmedonné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 marchealéatoire est donnée par

x2N =

( N∑

i=1

si

)2

. (2.17)

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

∆x2 =< (xN− < xN >)2 >=< x2N > − < xN >2 . (2.18)

Nous calculons

∆x2 =N∑

i=1

N∑

j=1

< (si− < s >)(sj− < s >) >

=

N∑

i 6=j=1

< (si− < s >)(sj− < s >) > +

N∑

i=1

< (si− < s >)2 > .(2.19)

Dans le premier terme, parce que i 6= j, nous avons < (si− < s >)(sj− < s >) >=< (si− < s >) >< (sj− < s >) >. Mais < (si− < s >) >= 0. Ainsi

∆x2 =

N∑

i=1

< (si− < s >)2 >

= N(< s2i > − < s >2>)

= N(a2 − (p− q)2a2)

= 4Npqa2. (2.20)

Page 105: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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< x2

N >∝ 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 voirce fait, nous allons partir de la probabilité P (i, N) pour que le marcheur aléatoireest au site si aprés N étapes. Cette probabilité est donnée par

P (i, N) =1

2

(

P (i+ 1, N − 1) + P (i− 1, N − 1)

)

. (2.22)

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

P (x, t) =1

2

(

P (x+ a, t− τ) + P (x− a, t− τ)

)

. (2.23)

Nous allons réécrire cette équation comme

1

τ

(

P (x, t)− P (x, t− τ)

)

=a2

[

P (x+ a, t− τ)− 2P (x, t− τ)

+ P (x− a, t− τ)

]

1

a2. (2.24)

Dans la limite de a −→ 0, τ −→ 0 avec le rapport D = a2/2τ maintenue fixe, onobtient l’équation

∂P (x, t)

∂t= D

∂2P (x, t)

∂x2. (2.25)

Ceci est l’équation de diffusion. Généralisation á 3− dimensions est

∂P (x, y, z, t)

∂t= D∇2P (x, y, z, t). (2.26)

Une solution particuliére de (2.25) est donnée par

P (x, t) =1

σe−

x2

2σ2 , σ =√2Dt. (2.27)

Page 106: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

100 physique numérique, ydri et al.

En d’autres termes la distribution spatiale des molécules qui diffusent est toujoursune 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

< 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

f(x)∂P (x, t)

∂tdx = D

f(x)∂2P (x, t)

∂x2dx. (2.29)

Clairement∫

f(x)∂P (x, t)

∂tdx =

∂t

(

f(x)P (x, t))

dx =d

dt

f(x)P (x, t)dx =d

dt< f(x) > .(2.30)

Ainsid

dt< f(x) > = D

f(x)∂2P (x, t)

∂x2dx

= D

(

f(x)∂P (x, t)

∂x

)

|x=+∞x=−∞ −D

∂f(x)

∂x

∂P (x, t)

∂xdx. (2.31)

Nous avons P (x = ±∞, t) = 0 et aussi toutes les dérivées spatiales sont nuls áx = ±∞. Nous obtenons alors

d

dt< f(x) > = −D

∂f(x)

∂x

∂P (x, t)

∂xdx. (2.32)

Nous choisissons f(x) = x. alors

d

dt< x > = −D

∂P (x, t)

∂xdx = 0. (2.33)

En d’autres termes < x >= constante. Mais parce que x = 0 á t = 0, nous devonsavoir constante = 0. Ainsi

< x >= 0. (2.34)

Maintenant nous choisissons f(x) = x2. Alors

d

dt< x2 > = −2D

x∂P (x, t)

∂xdx

= 2D. (2.35)

Par conséquent

< x2 > = 2Dt. (2.36)

Ceci est le comportement diffusif nous avons observé dans le probléme de la marchealéatoire.

Page 107: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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éspar LCG(a, c,M). Les nombres aléatoires générés par LCG(a, c,M) sont dans lagamme [0,M − 1].

Pour c = 0 les générateurs linéaires sont appelés multiplicatif. Ils sont désignéspar MLCG(a,M). Les nombres aléatoires générés par MLCG(a,M) sont dans lagamme [1,M − 1].

Dans le cas oú a est une racine primitive modulo M et M est un nombrepremier, la période du générateur est M − 1. Un certain nombre a est une racineprimitive modulo M signifie que pour tout entier n tel que pgcd(n,M) = 1, ilexiste 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 hautniveau á cause de dépassement d’entier. En effet le produit de a et M − 1 dépassela valeur maximale pour un entier d’une largeur de 32 bits. La mise en oeuvreen utilisant un langage assembleur sur une machine 64−bits est simple, mais pasportable.

Une meilleure solution est donnée par l’algorithme de Schrage. Cet algorithmepermet la multiplication de deux entiers de largeur 32 bits sans utiliser des nombresintermédiaires qui sont plus grands que 32 bits. Pour voir comment cela fonctionneexplicitement, nous allons factoriser M comme suit

M = aq + r. (3.40)

r = M mod a , q = [M

r]. (3.41)

Dans l’équation ci-dessus [ ] désigne la partie entiére. Remarquons que

r = M mod a = M − [M

a]a. (3.42)

Page 108: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

102 physique numérique, ydri et al.

Ainsi, par définition, r < a. Nous allons également exiger que r < q. Alors

r

qa<< 1. (3.43)

Nous avons également

Xi+1 = aXi mod M = aXi − [aXi

M]M

= aXi − [aXi

aq + r]M. (3.44)

Nous calculons

aXi

aq + r=

Xi

q + ra

=Xi

q

1

1 + rqa

=Xi

q(1− r

qa)

=Xi

q− Xi

aq

r

q. (3.45)

Il est clair que

Xi

aq=

Xi

M − r≃ Xi

M< 1. (3.46)

Alors

[aXi

M] = [

Xi

q], (3.47)

si négligeant ǫ = (rXi)/(aq2) n’affecte pas la partie entiére de aXi/M et

[aXi

M] = [

Xi

q]− 1, (3.48)

si négligeant ǫ affecte la partie entiére de aXi/M . Par conséquent nous obtenons

Xi+1 = aXi − [aXi

M](aq + r)

= a(Xi − [aXi

M]q)− [

aXi

M]r (3.49)

= a(Xi − [Xi

q]q)− [

Xi

q]r (3.50)

= a(Xi mod q)− [Xi

q]r, (3.51)

Page 109: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 103

si

a(Xi mod q)− [Xi

q]r ≥ 0. (3.52)

Aussi

Xi+1 = aXi − [aXi

M](aq + r)

= a(Xi − [aXi

M]q)− [

aXi

M]r (3.53)

= a(Xi − [Xi

q]q + q)− [

Xi

q]r + r (3.54)

= a(Xi mod q)− [Xi

q]r +M, (3.55)

si

a(Xi mod q)− [Xi

q]r < 0. (3.56)

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 appelssuccessifs de RAN0 va se résider sur un petit nombre de hyperplans paralléles áD−1 dimensions. Environ il y aura M1/D hyperplans. En particulier les séquencesdes nombres aléatoires de longueur N ≥ 107, qui est beaucoup plus moins que lapé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 RAN0sont é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. End’autres termes il change l’ordre des nombres de sorte que la séquence devientindépendante de l’ordre et un nombre donné n’est pas corrélée avec les nombresprécédents. Plus précisément, le j éme nombre aléatoire est émis non pas surl’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 nouvelleséquence avec une plus grande période égale á le plus petit commun multiple desdeux périodes. Dans cet algorithme, nous ajoutons les deux séquences modulo lemodule M de l’un d’eux. Afin d’éviter un dépassement , nous allons soustraireplutô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)

Page 110: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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’algorithmede 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 RANDdonné 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 lesdimensions supérieures D ≥ 6.

Page 111: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

11Intégration Monte Carlo

11.1 Intégration Numérique

11.1.1 Approximation Rectangulaire

Nous commençons par un examen de l’approximation rectangulaire des intégralesen une seule dimension. Nous considérons l’intégrale

F =

∫ b

a

f(x)dx. (1.1)

Nous allons discrétiser l’intervalle [a, b] de tel sorte que nous nous retrouvons avecN petits intervalles égales de longueur ∆x, á savoir

xn = x0 + n∆x , ∆x =b− a

N(1.2)

Il est clair que x0 = a et xn = b. La définition de Riemann de l’intégrale est donnéepar la limite suivante

F = lim(

∆x−→0 , N−→∞ , b−a=fixed)

(

∆x

N−1∑

n=0

f(xn)

)

. (1.3)

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

Page 112: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

106 physique numérique, ydri et al.

FN = ∆xN−1∑

n=0

f(xn). (1.4)

L’erreur peut être calculé comme suit. Nous commençons avec le développementde Taylor

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

1

2!(x− xn)

2f (2)(xn) + ... (1.5)

Ainsi∫ xn+1

xn

dx f(x) = f(xn)∆x+1

2!f (1)(xn)(∆x)2 +

1

3!f (2)(xn)(∆x)3 + ... (1.6)

L’erreur dans l’intervalle [xn, xn+1] est∫ xn+1

xn

dx f(x)− f(xn)∆x =1

2!f (1)(xn)(∆x)2 +

1

3!f (2)(xn)(∆x)3 + ... (1.7)

Ceci est de l’ordre de 1/N2. Mais nous avons N sous-intervalles. Ainsi, l’erreurtotale 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

F =

R

dx dy f(x, y). (1.8)

R est le domaine de l’intégration. Afin de donner l’approximation du point médiande cette intégrale nous imaginons un rectangle de côtés xb−xa et yb−ya qui entourela région R et on le divise en carrés de longueur h. Les points dans la directionx/y sont

xi = xa + (i− 1

2)h , i = 1, ..., nx. (1.9)

yi = ya + (i− 1

2)h , i = 1, ..., ny. (1.10)

Les nombres des points dans la direction x/y sont

nx =xb − xa

h, ny =

yb − yah

. (1.11)

Page 113: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 107

Le nombre des cellules est donc

n = nxny =(xb − xa)(yb − ya)

h2. (1.12)

L’intégrale va être approchée par

F = h2nx∑

i=1

ny∑

j=1

f(xi, yj)H(xi, yj). (1.13)

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

F = hd

n1∑

i1=1

...

nd∑

id=1

f(xi11 , ..., x

idd )H(xi1

1 , ..., xidd ). (1.15)

L’approximation du point médian est une amélioration par rapport á l’approximationrectangulaire. Pour voir ce fait, nous considérons une intégrale unidimensionnelle

F =

R

dx f(x). (1.16)

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

F = h

nx∑

i=1

f(xi)H(xi) = h

nx∑

i=1

f(xi). (1.17)

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 clairque nous pouvons écrire cette approximation comme suit

F = h

nx−1∑

i=0

f(xi + xi+1

2) , xi = xa + ih. (1.18)

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

xi

f(x) dx− f(xi + xi+1

2)∆x =

1

24f

′′(xi)(∆x)3 + ... (1.19)

L’erreur totale est alors 1/n2x par comparison á 1/nx de l’approximation rectangu-

laire.

Page 114: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

108 physique numérique, ydri et al.

Nous allons faire cet exercice en deux dimensions. Nous écrivons l’erreur comme∫ xi+1

xi

∫ yj+1

yj

f(x, y) dx dy − f(xi + xi+1

2,yj + yj+1

2)∆x∆y (1.20)

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

f(x, y) = f(xi, yj) + f′

x(xi, yj)(x− xi) + f′

y(xi, yj)(y − yj) +1

2f

′′

x (xi, yj)(x− xi)2

+1

2f

′′

y (xi, yj)(y − yj)2 + f

′′

xy(xi, yj)(x− xi)(y − yj) + ... (1.21)

Nous trouvons∫ xi+1

xi

∫ yj+1

yj

f(x, y) dx dy − f(xi + xi+1

2,yj + yj+1

2)∆x∆y =

1

24f

′′

x (xi, yj)(∆x)3∆y

+1

24f

′′

y (xi, yj)∆x(∆y)3 + ...

(1.22)

Parce que ∆x = ∆y = h, l’erreur individuelle est proportionnelle á h4. L’erreurtotale est donc nh4, oú n = nxny. De plus n est proportionnelle á 1/h2 et parconsé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 erreurproportionnelle á 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 comme1/na, l’erreur va se comporter comme 1/na/d en dimension d. En d’autres termesles méthodes classiques d’intégration numérique deviennent impraticables á desdimensions 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

Vd =

x21+...+x2

d≤R2

dx1...dxd

=

x21+...+x2

d≤R2

rd−1 dr dΩd−1

=Rd

d

dΩd−1

=Rd

d

2πd2

Γ(d2). (1.23)

Page 115: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 109

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

Sd−1 =

x21+...+x2

d=R2

dx1...dxd

= Rd−1 2πd2

Γ(d2). (1.24)

Voici quelques propriétés de la fonction gamma

Γ(1) = 1 , Γ(1

2) =

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

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 bouledans d dimensions avec le volume de la boule dans d−1 dimensions. La dérivationva comme suit

Vd =

∫ +R

−R

dxd

x21+...+x2

d−1≤R2−x2d

dx1...dxd−1

=

∫ +R

−R

dxd

√R2−x2

d

0

rd−2 dr

dΩd−2

=Vd−1

Rd−1

∫ +R

−R

dxd (R2 − x2d)

d−12 . (1.26)

11.2 Intégration de Monte Carlo: ÉchantillonnageSimple

Nous allons commencer par l’intégrale unidimensionnelle

F =

∫ b

a

dx f(x). (2.27)

Un méthode de Monte Carlo est une procédure qui utilise des nombres aléatoirespour calculer ou estimer l’intégrale ci-dessus. Dans ce qui suit, nous allons décriredeux simples méthodes de Monte Carlo qui donnent une valeur approximative decette intégrale. Comme nous progressons, nous serons en mesure de donner desméthodes plus sophistiquées de Monte Carlo.

Page 116: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 choisissonsn 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

F = Anin

n, A = h(b− a). (2.28)

11.2.2 La Méthode de l’Échantillon Moyen

Nous partons du théorème des accroissements finis de l’analyse, á savoir

F =

∫ b

a

dx f(x) = (b− a) < f > . (2.29)

< f > est la valeur moyenne de la fonction f(x) dans la gamme a ≤ x ≤ b. Laméthode de l’échantillon moyen calcule le moyen < f > en choisissant n pointsaléatoires xi dans l’intervalle [a, b], qui sont distribués de maniére uniforme, puiscalculer les valeurs de la fonction f(x) á ces points et prendre leur moyenne. End’autres termes

F = (b− a)1

n

n∑

i=1

f(xi). (2.30)

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 plusprécise alors que pour les dimensions grandes la méthode de l’échantillon moyendevient plus précise.

11.2.3 Echantillon Moyen dans les Dimensions Supérieures

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

F =

R

dx dy f(x, y). (2.31)

Encore une fois nous considérons un rectangle de côtés yb−ya et xb−xa qui entourela région R. L’échantillon moyen dans ce cas s’écrit

Page 117: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 111

F = A1

n

n∑

i=1

f(xi, yi)H(xi, yi). (2.32)

Les points xi sont aléatoire et réparties uniformément dans l’intervalle [xa, xb] alorsque 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 deHeaviside 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 troisdimensions nous aurions

F =

R

dx dy dz f(x, y, z) −→ F = V1

n

n∑

i=1

f(xi, yi, zi)H(xi, yi, zi). (2.34)

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) nvaleurs xi d’une certaine variable x selon la fonction de distribution de probabilitép(x). La moyenne de y1 =< xi > est donnée par

y1 =< xi >=1

n

n∑

i=1

xip(xi). (3.35)

Nous répétons cette mesure N fois en obtenant ainsi N moyennes y1, y2, ..., yn.La moyenne z des moyennes yi est

z =1

N

N∑

i=1

yi. (3.36)

La question que nous voulons répondre est la suivante: quelle est la fonction dedistribution 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

Page 118: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

112 physique numérique, ydri et al.

fonction de distribution de probabilité de la moyenne y et soit P (z) la distributionde probabilité de la moyenne z des moyennes. On peut alors écrire P (z) comme

P (z) =

dy1...

dyN p(y1)...p(yN)δ(z −y1 + ...+ yN

N). (3.37)

La fonction delta exprime la contrainte que z est la moyenne des yi. La fonctiondelta peut être écrite comme

δ(z − y1 + ... + yNN

) =1

dqeiq(z−y1+...+yN

N). (3.38)

Soit µ la moyenne réelle des yi. Nous écrivons

P (z) =1

dqeiq(z−µ)

dy1 p(y1)eiqN(µ−y1)...

dyN p(yN)eiqN(µ−yN )

=1

dqeiq(z−µ)

[∫

dy p(y)eiqN(µ−y)

]N

. (3.39)

Mais∫

dy p(y)eiqN(µ−y) =

dy p(y)

[

1 +iq

N(µ− y)− q2(µ− y)2

2N2+ ...

]

= 1− q2σ2N

2N2+ ... (3.40)

Nous avons utiliser∫

dy p(y) = 1 ,

dy p(y)y = µ ,

dy p(y)(µ− y)2 =< y2 > − < y >2= σ2N .

(3.41)

Alors

P (z) =1

dqeiq(z−µ)e−q2σ2

N2N

=1

2πe− N

2σ2N

(z−µ)2∫

dqe−

σ2N

2N(q− iN

σN(z−µ))2

=1√2π

e− (z−µ)2

2Σ2N

ΣN. (3.42)

ΣN =σN√N. (3.43)

Page 119: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 113

Ceci est la distribution normale. De toute évidence le résultat ne dépend pas desfonctions originales de distribution de probabilités p(x) et p(y).

La moyenne z de N nombres aléatoires yi correspondant á une fonction dedistribution de probabilité p(y) est réparti selon la fonction de distribution deprobabilité normale avec une moyenne égale á la valeur moyenne de p(y) et unevariance é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 etaussi est indépendant du nombre de dimensions. En revanche, si l’erreur dans uneméthode d’approximation numérique classique se déroule comme 1/Na dans unedimension (oú N est maintenant le nombre d’intervalles), l’erreur avec la mêmeméthode d’approximation en d dimensions sera proportionelle á 1/N

ad . Ainsi si

nous augmentons le nombre de dimensions l’erreur devient pire. En d’autres termesles méthodes classiques d’intégration numérique deviennent impraticables á desdimensions suffisamment élevés.

Nous considérons á nouveau l’intégrale unidimensionnelle comme un exemple.Nous prenons

F =

∫ b

a

dx f(x). (4.44)

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

FN = (b− a) < f > , < f >=1

N

N∑

i=1

f(xi). (4.45)

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’onpuisse faire est de calculer la probabilité que le résultat approximatif FN est dansun 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 moyennez de N nombres aléatoires yα correspondant á une fonction de distribution de

Page 120: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

y =1

N

N∑

i=1

f(xi). (4.47)

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

yα =1

N

N∑

i=1

f(xi,α). (4.48)

La moyenne z des moyennes est donnée par

z =1

M

M∑

α=1

yα. (4.49)

Selon le théorème central limite la moyenne z est réparti selon la fonction dedistribution 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

M

2πσ2M

exp

(

−M(z− < y >)2

2σ2M

)

. (4.50)

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

σ2M =

1

M − 1

M∑

α=1

(yα− < y >)2. (4.51)

L’utilisation de M − 1 au lieu de M est connue sous le nom de correction deBessel. 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 peutremplacer σM avec l’écart-type (déviation standard) des échantillons σM défini par

σ2M ∼ σ2

M =1

M

M∑

α=1

(yα− < y >)2 =< y2 > − < y >2 . (4.52)

Page 121: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 115

L’écart type (déviation standard) de f(x) pour un seul ensemble de mesures avecN points de données est donnée par

σ2 =1

N − 1

N∑

i=1

(f(xi)− < f >)2. (4.53)

Encore une fois, parce que N est grand, on peut remplacer σ avec l’écart-type(déviation standard) σ définie par

σ2 =1

N

N∑

i=1

(f(xi)− < f >)2 =< f 2 > − < f >2 . (4.54)

< f >=1

N

N∑

i=1

f(xi) , < f 2 >=1

N

N∑

i=1

f(xi)2. (4.55)

L’écart-type de la moyenne σM ∼ σM est donnée en termes de l’écart-type σ ∼ σde f(x) par l’équation

σM =σ√N. (4.56)

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 avecN échantillons. Le nombre total d’échantillons est donc MN . Nous avons

σ2 =1

NM

M∑

α=1

N∑

i=1

(f(xi,α)− < f >)2 =< f 2 > − < f >2 . (4.57)

< f >=1

NM

M∑

α=1

N∑

i=1

f(xi,α) , < f 2 >=1

NM

M∑

α=1

N∑

i=1

f(xi,α)2. (4.58)

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

σ2M =

1

M

M∑

α=1

(yα− < y >)2

=1

M

M∑

α=1

(

1

N

N∑

i=1

f(xi,α)− < f >

)2

=1

N2M

M∑

α=1

N∑

i=1

N∑

j=1

(

f(xi,α)− < f >

)(

f(xi,α)− < f >

)

. (4.59)

Page 122: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

116 physique numérique, ydri et al.

Dans l’équation ci-dessus, nous avons utilisé le fait que < y >=< f >. Pourchaque set α la somme sur j et i se divise en deux morceaux. Le premier estla somme sur les éléments de la diagonale avec i = j et le second est la sommesur les éléments hors diagonaux avec i 6= j. Il est clair que f(xi,α)− < f > etf(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 nousnous retrouvons avec

σ2M =

1

N2M

M∑

α=1

N∑

i=1

(

f(xi,α)− < f >

)2

=σ2

N. (4.60)

L’écart-type de la moyenne σM peut donc être interprétée comme l’erreur probabledans les N mesures originales. Ceci est parce que si nous faisons M ensembles desmesures chacun avec N échantillons, l’écart-type de la moyenne σM permettrad’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 68pour cent d’être dans les limites d’ un écart-type σM de la vraie moyenne, et unechance de 95 pour cent d’être á l’intérieur de 2σM et une chance de 99.7 pour centd’être á l’intérieur de 3σM . En général, la proportion des valeurs de données quisont dans les limites de z écart-types de la vraie moyenne est définie par la fonctiond’erreur

∫ <y>+zσM

<y>−zσM

1√

2πσ2M

exp

(

−(y− < y >)2

2σ2M

)

dy =2√π

∫ z√2

0

exp(

−x2)

dx = erf(z√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 utilisantseulement 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énement1 si r < p1 autrement nous choisissons l’événement 2.

Page 123: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 117

Considérons maintenant trois événements discrets 1, 2 et 3 avec des probabilitésp1, p2 et p3 respectivement tels que p1 + p2 + p3 = 1. Encore une fois nous allonschoisir un nombre aléatoire r entre 0 et 1. Si r < p1, alors nous choisissonsl’événement 1, si p1 < r < p1 + p2 nous choisissons l’événement 2 autrement nousallons choisir l’événement 3.

Nous considérons maintenant n événements discrets avec des probabilités pitelles que

∑ni=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 satisfaitl’inégalité

i−1∑

j=1

pj ≤ r ≤i

j=1

pj. (5.62)

Dans la limite continue, on remplace la probabilité pi avec p(x)dx. La condition∑n

i=1 pi = 1 devient∫ +∞

−∞

p(x) dx = 1. (5.63)

Il est evident que p(x)dx est la probabilité de trouver l’événement x entre x etx+ dx. L’inégalité (5.62) devient l’identité

P (x) ≡∫ x

−∞

p(x′) dx

′= r (5.64)

Ainsi r est égale á la distribution de probabilité cumulative P (x), c’est á dire á laprobabilité de choisir une valeur inférieure ou égale á x. Cette équation conduit á laméthode de transformation inverse qui nous permet de générer une distribution deprobabilité 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 analytiquementpour trouver P (x), 2) résoudre l’équation P (x) = r pour trouver x.

Comme premier exemple nous considérons la distribution de Poisson

p(x) =1

λe−

xλ , 0 ≤ x ≤ ∞. (5.65)

Nous trouvons

P (x) = 1− e−xλ = r. (5.66)

Alors

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

Page 124: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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-tribués selon la fonction de distribution de Poisson p(x) = 1

λe−

xλ .

L’exemple suivant est la distribution Gaussienne en deux dimensions

p(x, y) =1

2πσ2e−

x2+y2

2σ2 . (5.68)

Nous pouvons immédiatement calculer que

1

2πσ2

∫ +∞

−∞

dx

∫ +∞

−∞

dy e−x2+y2

2σ2 =

∫ 1

0

dw

∫ 1

0

dv. (5.69)

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

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

Les nombres aléatoires v et w sont clairement réparties uniformément entre 0 et1. Les nombres aléatoires x (ou y) sont distribués selon la fonction de distributionde Gauss á une dimension. Cette méthode est connue sous le nom de la méthodede 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 unesé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 uniformerx dans la gamme d’intérêt xmin ≤ rx ≤ xmax oú [xmin, xmax] est l’intervalle danslequel y = p(x) ne s’annule pas. Nous évaluons p(rx). Nous générons un autrenombre 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 nombrealé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 dey = p(x).

Page 125: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

12Échantillonnage d’ Importance,

Algorithme de Metropolis et Modéled’Ising

12.1 L’Ensemble Canonique

Nous considérons les systémes physiques qui sont en contact thermique avec unenvironnement. L’environnement est généralement beaucoup plus grande que lesystéme physique d’intérêt et par conséquence l’échange d’énergie entre les deuxne changera pas la température de l’environement. L’environement est appelé unbain ou un réservoir de chaleur. Lorsque le systéme atteigne l’équilibre avec le bainde 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 parl’ensemble canonique dans lequel la température est fixée. En revanche un systémeisolé est décrit statistiquement par l’ensemble microcanonique dans lequel l’énergieest fixé. La plupart des systémes dans la nature ne sont pas isolés, mais sont encontact thermique avec l’environnement. Il s’agit d’un résultat fondamental de lamécanique statistique que la probabilité de trouver un systéme en équilibre avecun bain de chaleur á la température T dans un micro-état s avec énergie Es estdonnée par la distribution de Boltzmann

Page 126: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

120 physique numérique, ydri et al.

Ps =1

Ze−βEs , β =

1

kT. (1.1)

La constante de normalisation connstant Z est la fonction de partition. Elle estdéfinie par

Z =∑

s

e−βEs. (1.2)

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

F = −kT lnZ. (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 êtreexprimée en termes de F comme suit

U =< E >=∑

s

EsPs =1

Z

s

Ese−βEs = − ∂

∂βlnZ =

∂β(βF ). (1.4)

La chaleur spécifique est donnée par

Cv =∂

∂TU. (1.5)

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 aunombre d’échantillons. Ainsi, dans le but de réduire l’erreur, nous devrions soitréduire la variance ou augmenter le nombre d’échantillons. La premiére optionest 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 etdonc 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. Échantillonnaged’importance utilise également d’une maniére cruciale les distributions de proba-bilité non uniformes.

Considérons á nouveau l’intégrale unidimensionnelle

F =

∫ b

a

dx f(x). (2.6)

Page 127: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 121

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

1 =

∫ b

a

dx p(x). (2.7)

Nous écrivons l’intégrale comme

F =

∫ b

a

dx p(x)f(x)

p(x). (2.8)

Nous évaluons cette intégrale par échantillonnage en fonction de la distribution deprobabilité p(x). En d’autres termes, nous trouvons un ensemble de N nombresaléatoires xi qui sont distribués en fonction de p(x) puis estimer l’intégrale par lasomme

FN =1

N

N∑

i=1

f(xi)

p(xi). (2.9)

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 danschaque direction de sorte qu’il y a N = nd points au total dans le réseau. Enchaque point (site du réseau), nous plaçons un spin si qui peut prendre soit lavaleur +1 ou −1. Une configuration de ce systéme de N spins est donc précisé parun ensemble de nombres si. Dans le modéle d’Ising l’énergie de ce systéme despins dans la configuration si est donnée par

EIsi = −∑

<ij>

ǫijsisj −H

N∑

i=1

si. (3.10)

Le paramétre H est le champ magnétique externe. Le symbole < ij > désigne lefait que pour chaque i la somme sur j est sur les spins des sites voisins les plusproches. La somme sur < ij > s’étend sur γN/2 termes oú γ est le nombre devoisins les plus proches. Dans les dimensions 2, 3, 4 nous avons γ = 4, 6, 8. Leparamétre ǫij est l’énergie d’interaction entre les spins i et j. Pour les interactionsisotropes ǫij = ǫ. Pour ǫ > 0, on obtient ferromagnétisme tandis que pour ǫ < 0,on obtient antiferromagnétisme. Nous considérons ici ǫ > 0. L’énergie est

Page 128: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

122 physique numérique, ydri et al.

EIsi = −ǫ∑

<ij>

sisj −HN∑

i=1

si. (3.11)

La fonction de partition est donnée par

Z =∑

s1

s2

...∑

sN

e−βEIsi. (3.12)

Il y a 2N termes dans la somme et β = 1/kBT .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 descondition aux limites périodiques comme suit. Nous considérons une matrice dedimension (n+ 1)× (n+ 1) oú la (n+ 1)iéme ligne est identifiée avec la premiéreligne et la (n + 1)iéme colonne est identifié avec la premiére colonne. Le réseaucarré est donc un tore.

12.4 L’Algorithme de Metropolis

L’énergie interne U =< E > peut être mis sous la forme

< E >=

sEse−βEs

s e−βEs

. (4.13)

En général la valeur moyenne < A > de n’importe quelle grandeur physique Apeut être calculé en utilisant une expression similaire, á savoir

< A >=

sAse−βEs

s e−βEs

. (4.14)

Le nombre As est la valeur de A dans le micro-état s. En général, le nombre Ndes 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 desmicro-états. En d’autres termes < A > et < E > seront estimés avec

< E > ≃ < E >n=

∑ns=1Ese

−βEs

∑ns=1 e

−βEs. (4.15)

< A > ≃ < A >n=

∑ns=1Ase

−βEs

∑ns=1 e

−βEs. (4.16)

Page 129: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 123

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

< A >=

sAs

pse−βEsps

s1pse−βEsps

. (4.17)

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

< A >n=

∑ns=1

As

pse−βEs

∑ns=1

1pse−βEs

. (4.18)

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

ps =e−βEs

∑ns=1 e

−βEs. (4.19)

On obtient alors la moyenne arithmétique

< A >n=1

n

n∑

s=1

As. (4.20)

L’algorithme de Metropolis, dans le cas des systèmes de spin tels que le modèled’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èmedue 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 .

Page 130: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 estrejeté.

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 lathermalisation (c’est á dire l’équilibre) est atteint.

10) Calculer les quantités physiques d’intérêt en n micro-états thermalisés. Celapeut être effectuée périodiquement, afin de réduire la corrélation entre lespoints de données.

11) Calculer les moyennes.

La démonstration que cet algorithme conduit en effet á une séquence d’états quisont distribués en fonction de la distribution de Boltzmann va comme suit.

Il est clair que les étapes 2) á 7) correspondent á une probabilitĂŠ de transitionentre 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 pasnécessaire de normaliser la distribution de probabilité de Boltzmann. Il est clairque 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 uneséquence d’états qui sont distribués en fonction de la distribution de Boltzmann.Cela peut être démontré comme suit. En sommant sur l’indice j dans l’équationci-dessus et en utilisant

j W (i −→ j) = 1, nous obtenons

e−βEi =∑

j

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

La distribution de Boltzmann est un vecteur propre de W . En d’autres termesW laisse l’ensemble d’équilibre en équilibre. Comme il s’avére, cette équation (lacondition de bilan détaillé) est aussi une condition suffisante pour n’importe quelensemble d’approcher l’équilibre.

Page 131: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 performantque l’algorithme de Metropolis. La probabilité d’acceptation est donnée par

W (i −→ j) = min(1,1

1 + eβ∆E) , ∆E = Ej − Ei. (5.24)

Cette probabilité d’acceptation satisfait également la condition de bilan détaillépour la distribution de probabilité de Boltzmann. En d’autres termes la conditiond’équilibre qui est suffisante mais pas nécessaire pour un ensemble pour atteindrel’é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 sitesdu réseau dans chaque direction. Chaque spin peut prendre deux valeurs possiblessi = +1 et si = −1. Chaque spin interagit seulement avec ses 4 voisins et aussiavec un champ magnétique H . Le modèle d’Ising á 2 dimensions est donné parl’énergie

Es = −J∑

<ij>

sisj −H∑

i

si. (6.25)

Le systéme est supposé être en équilibre avec un bain de chaleur avec températureT . 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 estdonnée par la distribution de Boltzmann

Ps =e−βEs

Z. (6.26)

La fonction de partition est donnée par

Z =∑

s

e−βEs =∑

s1

...∑

s2N

e−βEs. (6.27)

L’aimantation M dans une configuration s1, ..., s2N est le paramètre d’ordre dusystème. Elle est définie par

M =∑

i

si. (6.28)

Page 132: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

126 physique numérique, ydri et al.

La moyenne M est donnée par

< M >=∑

i

< si >= N < s > . (6.29)

En-dessus d< si >=< s > puisque tous les spins sont équivalentes. Nous avons

< M >=1

β

∂ logZ

∂H= − ∂F

∂H. (6.30)

Afin de calculer < M > nous avons besoin de calculer Z. Dans cette section, nousutilisons l’approximation du champ moyen. D’abord, nous réécrivons l’énergieEs sous la forme

Es = −(J∑

<ij>

sj)si −H∑

i

si

=∑

i

H ieffsi −H

i

si. (6.31)

Le champ magnétique effectif H ieff est donnée par

H ieff = −J

j(i)

sj(i). (6.32)

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

H ieff = −γJ < s > , γ = 4. (6.33)

En d’autre termes

Es = −(H + γJ < s >)∑

i

si = Heff

i

si (6.34)

La fonction de partition devient

Z =

(

s1

e−βHeffsi

)N

=

(

e−βHeff + eβHeff

)N

(6.35)

=

(

2 cosh βHeff

)N

. (6.36)

Page 133: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 127

L’énergie libre devient

F = −kT lnZ = −kTN 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 unesolution < 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 deTc nous pouvons traiter < s > en tant que petit et par conséquent nous pouvonsutiliser l’expansion tanh x = x− 1

3x3. Nous obtenons

< s >= γβJ < s > −1

3

(

γβJ < s >)3. (6.40)

De façon équivalente

< s >

(

< s >2 − 3

T

1

(γβJ)3(γJ

kB− T

)

)

= 0. (6.41)

Nous obtenons les deux solutions

< s >= 0 , phase paramagnetique

< s >= ±√

3

T

1

(γβJ)3(Tc − T )β , phase ferromagnetique. (6.42)

La température critique Tc et l’exposant critique β sont donnés par

Tc =γJ

kB, β =

1

2. (6.43)

La solution ferromagnétique ne peut exister que pour T < Tc.L’énergie libre pour un champ magnétique null est

F = −kTN ln

(

2 cosh γβJ < s >

)

. (6.44)

Page 134: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

128 physique numérique, ydri et al.

Nous voyons que, pour T < Tc la solution ferromagnétique a une énergie libreinférieure á la solution paramagnétique < s >= 0. La phase T < Tc est en effetferromagnétique. La transition á T = Tc est du second ordre. L’énergie libreest continue en T = Tc, c’est á dire il n’y a pas de chaleur latente alors que lachaleur spécifique est logarithmiquement divergente. La théorie du champ moyendonne la valeur correcte 0 pour l’exposant critique α, bien qu’il ne reproduit pasla divergence logarithmique. La susceptibilité diverge á T = Tc avec un exposantcritique γ = 1. Ces derniers faits peuvent étre demontrés comme suit. La chaleurspécifique est donnée par

Cv = − ∂

∂T

(

kBT2 ∂

∂T(βF )

)

= −2kBT∂

∂T(βF )− kBT

2 ∂2

∂T 2(βF ). (6.45)

Ensuite, nous utilisons l’expression β = F − N ln(ex + e−x) oú x = γβJ < s >.Nous trouvons

Cv

N= 2kBT tanh x

∂x

∂T+ kBT

2 tanh x∂2x

∂T 2+ kBT

2 1

cosh2 x(∂x

∂T)2. (6.46)

Nous calculons

x = ±√

3kBγJ

(Tc − T )12 ,

∂x

∂T= ∓1

2

3kBγJ

(Tc − T )−12 ,

∂2x

∂T 2= ∓1

4

3kBγJ

(Tc − T )−32 .

(6.47)

Il n’est pas difficile de montrer que les termes divergents s’annulent et par con-séquence

Cv

N∼ (Tc − T )−α , α = 0. (6.48)

La susceptibilité est donnée par

χ =∂

∂H< M > . (6.49)

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évelopperl’équation ci-dessus comme

< s >= (γβJ < s > +βH)− 1

3(γβJ < s > +βH)3. (6.51)

Page 135: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 129

En prenant la dérivée par rapport á H des deux côtés de cette équation, nousobtenons

χ = (γβJχ+ β)− (γβJχ+ β)(γβJ < s > +βH)2. (6.52)

χ =∂

∂H< s > . (6.53)

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 >)2)

χ = β − β(γβJ < s >)2. (6.55)

2Tc − T

Tχ =

1

kBT(1− (γβJ < s >)2). (6.56)

Ainsi

χ =1

2kB(Tc − T )−γ , γ = 1. (6.57)

12.7 Résultats Numériques

Dans les exercices de laboratoire, nous allons calculer la fonction de corrélation, lesexposants critiques ainsi que la transition de phase du premier ordre et le hystérésisassocié.

12.8 La Méthode de Jackknife

Dans les simulations numériques, n’importe quel ensemble de points de donnés vacontenir des corrélations entre les différents points. En d’autres termes les pointsde donnés ne sont pas statistiquement indépendant et par conséquence on ne peutpas 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’erreurdans un ensemble de points de donnés qui contient de corrélation. Cette méthodefonctionne comme suit:

Page 136: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

< X >=1

N

N∑

i=1

Xi. (8.58)

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

< X >j=1

N − 1(

N∑

i=1

Xi −Xj). (8.59)

3) L’écart-type de la moyenne sera estimé en utilisant la formule

σ21 =

N − 1

N

N∑

j=1

(< X >j − < X >)2. (8.60)

L’erreur de Jackknife est σ1.

Il n’est pas difficile de montrer que

< X >j − < X >=< X > −Xj

N − 1. (8.61)

Ainsi

σ21 =

1

N(N − 1)

N∑

j=1

(Xj− < X >)2 = σ2mean. (8.62)

En général, ce résultat ne sera pas vrai et l’estimation de Jackknife de l’erreurest plus robuste.

4) Ceci peut être généralisé en jetant z points de donnés de X1, ...., Xn. Nousnous 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

σ2z =

n− 1

n

n∑

j=1

(< X >j − < X >)2. (8.63)

5) z prend les valeurs z = 1, ..., N − 1. L’erreur est le maximum de σz enfonction de z.

Page 137: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

13Travaux Pratiques

Page 138: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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éepar le générateur congruentiel linéaire

ri+1 = remainder

(

ari + c

M

)

.

Les coefficients a, c et M sont le multiplicateur, l’incrément et le module. Lenombre 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

remaindera

b= mod(a, b).

1) Calculer la séquence des nombres aléatoires ri obtenus en utilisant les paramétresci-dessus. Plot ri en fonction de i. Construire un scatterplot (diagramme dedispersion) (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 decorrélation non-normalisée définie par

sum1(k) =1

N − k

N−k∑

i=1

xixi+k.

Calculer aussi la fonction de corrélation normalisée

sum2(k) =sum1(k)− < xi >< xi+k >

sum1(0)− < xi >2.

< xi+k >=1

N − k

N−k∑

i=1

xi+k.

Quel est le comportement de ces fonctions en fonction de k.

4) Calculer la période des générateurs ci-dessus.

Page 139: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 133

Partie II (optionnel) La statistique du chi-deux (χ2) est defini par

χ2 =1

nideal

i

(Ni − nideal)2.

Nous prenons N nombres aléatoires dans l’intervalle [0, 1] qui est divisé en K binsde longueur δ = 1/K. Soit Ni le nombre de nombres aléatoires qui tombent dansle bin i. Pour une séquence uniforme de nombres aléatoires le nombre de nombresaléatoires dans chaque bin est

nideal =N

K.

1) Vérifier ce résultat pour le générateur "rand" trouvé dans la bibliothéquestandard de Fortran avec une graine donnée par seed = 32768. Nous prenonsK = 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 = 1000et K = 11. Chaque fois calculer le nombre de fois Li dans le L = 1000tests nous obtenons une valeur spécifique de χ2. Plot Li en fonction de χ2.Qu’est-ce que vous observez.

Page 140: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 seuledimension. Le marcheur peut se déplacer avec un pas si = a vers la droite avec uneprobabilité p ou d’un pas si = −a vers la gauche avec une probabilité q = 1 − p.Aprés N étapes la position de marcheur est xn =

i si. Nous prenons

p = q =1

2, a = 1.

Afin de simuler le mouvement d’un marcheur aléatoire, nous avons besoin d’ungénérateur de nombres aléatoires. Dans ce probléme, nous travaillons avec legénérateur "rand" trouvé dans la bibliothéque standard de Fortran. Nous appelonsce 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 fonctiondu 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

< xN >=1

K

K∑

i=1

x(i)N .

Page 141: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 135

< x2N >=

1

K

K∑

i=1

(x(i)N )2.

Dans les équations ci-dessus x(i)N 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 deuxdimensions sur un réseau de points infini. De n’importe quel point (i, j) sur leréseau le promeneur peut seulment atteindre l’un des 4 sites du voisinage le plusproche 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 < ~r2N > en fonction du nombre de pas Npour une collection de L = 500 marcheurs aléatoires en deux dimensions.Nous considérons les valeurs N = 10, ..., 1000.

Page 142: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

Vd =

x21+...+x2

d≤R2

dx1...dxd

= 2

dx1...dxd−1

R2 − x21 − ...− x2

d−1

=Rd

d

2πd2

Γ(d2).

1) Ecrire un programme qui calcule l’intégrale tridimensionnelle en utilisantl’approximation du Point Médian. Nous prenons le pas de discrétisationh = 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 lavaleur absolue de l’erreur en fonction du logarithme de N

3) (optionnel): Essayez l’intégrale bidimensionnelle. Travailler dans le quadrantpositif et de nouveau prenez le pas de discrétisation h = R/N oú R = 1et N = 2p, = 1, 15. On sait que génériquement l’erreur théorique va aumoins comme 1/N2. Qu’est-ce que vous trouvez? Pourquoi trouvez-vousune discrepancie?Hint: la dérivée seconde de l’intégrande est singuliére á x = R ce qui changela dépendance de 1/N2 á 1/N1.5.

4) Afin de calculer numériquement le volume de la boule dans n’importe quelledimension d nous utilisons la formule de récursivité

Vd =Vd−1

Rd−1

∫ +R

−R

dxd (R2 − x2d)

d−12 .

Trouvez les volumes dans les dimensions d = 4, 5, 6, 7, 8, 9, 10, 11. Compareravec les résultats exacts donnés ci-dessus.

Page 143: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 137

13.4 Approximations de Monte Carlo

Partie I Nous considerons une fois encore les intégrales

Vd =

x21+...+x2

d≤R2

dx1...dxd.

1) Utilisez la méthode d’ échantillonnage basée sur la methode de rejet de MonteCarlo 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érifiezque l’erreur exacte dans ce cas va comme 1/

√N .

Hint: Comparer l’erreur exacte qui est connue dans ce cas avec l’écart-typede la moyenne σM . Ces deux quantités doivent être identiques.

2) Utilisez maintenant la méthode d’ échantillonnage basée sur la methode dela valeure moyenne de Monte Carlo. L’intégrale d’intérêt peut s’écrire sousla forme

Vd = 2

dx1...dxd−1

R2 − x21 − ...− x2

d−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

π =

x2+y2≤R2

dx dy.

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

π = 2

∫ +1

−1

dx√1− x2.

Utilisez la méthode de la valeur moyenne de Monte Carlo pour donner uneautre approximation de π.

Page 144: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

138 physique numérique, ydri et al.

13.5 Distributions de Probabilité Non Uniforme

Partie I La distribution Gaussienne est donnée par

P (x) =1√2πσ2

exp−(x− µ)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 (algorithmede Box-Muller) donnés par les équations

x = r cos φ.

r2 = −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 á laquestion 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 chaquecellule 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 nombresaléatoires dans ce bac divisé par hN oú N est le nombre total de nombresaléatoires. Tracer la fraction de points en fonction de x. Nous prenonsN = 10000.

3) Tracer les données sur une échelle logarithmique, i.e. tracer log(fraction) parrapport á x2. Trouver le fit et comparer avec la théorie.

Page 145: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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. Laprocé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 apporterla modification suivante

xi −→xi + xj√

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, ....

Page 146: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 nombrede sites dans chaque direction. Chaque spin peut prendre deux valeurs possiblessi = 1 où si = −1 et interagit seulement avec ses 4 proche voisins et aussi avecun champ magnétique H . Le modèle d’Ising en deux dimensions est donnée parl’énergie

E = −J∑

<ij>

sisj −H∑

i

si.

Le spin trouvé dans le point d’intersection de la ligne i et de la colonne j serareprésentée par l’élément de matrice φ(i, j). L’énergie alors s’écrit

E = −J

2

L∑

i,j=1

φ(i, j)

(

φ(i+ 1, j) + φ(i− 1, j) + φ(i, j + 1) + φ(i, j − 1)

)

− H∑

i=1

φ(i, j).

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 latempérature T . Fluctuations thermiques du système sera simulée en utilisantl’algorithme de Metropolis.

1) Écrire un routine qui calcule l’énergie E et l’aimantation M du modèle d’Isingdans une configuration φ. L’aimantation est le paramètre d’ordre du système.Elle est définie par

M =∑

i

si =∑

i,j=1

φ(i, j).

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).

Page 147: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 141

3) Nous choisissons L = 10, H = 0, J = 1, β = 1/T . Nous considérons à la foisun 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 valeursde la température.

4) Ajouter une évolution de Monte Carlo avec TTM = 210 et calculer lesmoyennes de E et M .

5) Calculer la chaleur spécifique et la susceptibilité du système. Elles sontdéfinies par

Cv =∂

∂β< E >=

β

T(< E2 > − < E >2) , χ =

∂H< M >= β(< M2 > − < M >2).

6) Déterminer le point critique. Comparez avec le résultat théorique exactekBTc = 2J/ln(

√2 + 1).

Partie II (optionnel) Ajouter à votre code un routine séparée qui implémentela 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.

Page 148: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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

L2∼ (Tc − T )−α , α = 0.

Cependant la chaleur spécifique diverge logarithmiquement à T = Tc. Cela setraduit par le fait que le pic croît avec L logarithmiquement, à savoir

Cv

L2∼ lnL.

Vérifiez ce comportement numériquement. À cette fin, nous prenons des réseauxentre L = 10− 30 avec TTH = 210, TMC = 213. La température est prise dans lagamme

T = Tc − 10−2 × step , step = −50, 50.

Tracer le maximum de Cv/L2 par rapport à lnL.

Partie II L’aimantation prés (mais en dessous) de la température critique secomporte comme

< M >

L2∼ (Tc − T )β , β =

1

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. Nousproposons 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

χ

L2∼ |T − Tc|−γ , γ =

7

4.

Déterminer γ numériquement. Utilisez TTH = 210, TMC = 213, L = 30 avec Tdans la gamme suivante

T = Tc + 0.1 + 5× 10−3step , step = 0, 100.

Page 149: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 phaseferromagnétique. En particulier, nous allons calculer la fonction de corrélationdéfini par l’expression

f(n) = < s0sn >

= <1

4L2

i,j

φ(i, j)

(

φ(i+ n, j) + φ(i− n, j) + φ(i, j + n) + φ(i, j − n)

)

> .

1) Vérifiez que á T = Tc le comportement de f(n) est donnée par

f(n) ≃ 1

nη, η =

1

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

f(n) ≃ a1

nηe−

nξ .

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étresTTH = 210, TTC = 213.

4) Prés de Tc la longueur de corrélation diverge comme

ξ ≃ 1

|T − Tc|ν, ν = 1.

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.

Page 150: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

144 physique numérique, ydri et al.

13.9 Hystérésis et Transition de Phase du PremierOrdre

Dans cet exercice, nous considérons l’effet du champ magnétique sur la physiquedu 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’aimantationet 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 seraeffectuée aussi une seule fois pour la premiére valeur du champ magnétique H , parexemple H = −5. Lorsque le calcul de l’aimantation et l’energie pour H = −5est terminé, nous commençons lentement (adiabatiquement) á changer le champmagnétique pour ne pas perdre la thermalisation du systéme d’Ising. Nous essayonsla 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 detransition de phase á partir des discontinuités observées dans l’énergie etl’aimantation. Les sauts de l’énergie et de l’aimantation sont les signauxtypique d’une transition de phase du premier ordre. La transition devrait sefaire á une valeur non nulle de H due á l’hystérésis. Le saut de l’énergie estassociée á une valeur non nulle de la chaleur latente.

2) Pour T > Tc, par exemple T = 3 et T = 5, l’aimantation est une fonctionlisse, i.e. régulier de H prés de H = 0 ce qui signifie qu’au-dessus de Tc iln’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 deH de −5 á 5 et puis immediatement nous recalculons l’aimantation pour la mêmegamme 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’augmentationde 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 deson état initial et de son histoire. En d’autres termes le systéme est piégé dansdes états métastables.

Page 151: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

Appendix

Page 152: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons
Page 153: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

AÉléments de Fortran

Page 154: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

148 physique numérique, ydri et al.

Page 155: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

BNote sur les Erreurs Numériques

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.b1b2b3... (1.1)

Nous considérons une machine de 32 bits. Puisque 1≤m < 2, nous devons avoirb0 = 1. Nous disons que cette expansion binaire est normalisée. Dans le cas d’uneprécision simple, nous utilisons un mot de longueur 32 bits avec un des bits pour lesigne, 8 bits pour l’ exposant e et 23 bits pour la mantisse m. Parce que seulement8 bits sont utilisés pour stocker l’exposant nous devons avoir e dans la gamme0≤e≤255. Le paramétre bias est choisi de tel sorte que l’exposant est dans lagamme −127≤e − bias≤128. En d’autre termes nous choisissons bias = 127. Decette façon, nous pouvons avoir de trés petits nombres avec des exposants toujourspositifs. Puisque le premier bit de la mantisse est 1 les bits stockés de la mantissesont seulement b1b2...b23. Si b24, b25, .. ne sont pas tous nuls la représentation envirgule flottante n’est pas exacte. Strictement parlant un nombre á virgule flottanteest un nombre pour lequel b24 = b25 = ..0. La représentation en virgule flottanted’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)s1.f × 2e−127 , 0 < e < 255. (1.2)

Page 156: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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 bitsen choisissant un exposant approprié.

Le nombre normalisé le plus petit est 2−126. Les nombres á virgule flottantesous-normaux sont représentées par

xsubnormal float = (−1)s0.f × 2−126. (1.3)

Ces nombres ne sont pas normalisées. En fait l’espace compris entre 0 et le pluspetit nombre positif normalisé est rempli par les nombres sous-normaux.

Explicitement nous avons

s e fbit 31 30-23 22-0

Puisque seulement un nombre fini de bits est utilisé, l’ensemble des nombres dela 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 aun maximum et un minimum. En dépassant le maximum on obtient la conditiond’erreur connue sous le nom de overflow (débordement). En dépassant le minimumnous 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 et0.f = 0.00...1 = 2−23. Ainsi xsubnormale float min = 2−149 ≃ 1.4 × 10−45. Nousobtenons 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)s0.0...0× 2−126. (1.6)

±∞ = (−1)s1.0...0× 2127. (1.7)

Page 157: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 151

NaN = (−1)s1.f × 2127 , f 6= 0. (1.8)

Les nombres flottants avec double précision occupent 64 bits. Le premier bitest le signe, 11 bits pour l’exposant et 52 bits pour la mantisse. Ils sont stockéssous forme de deux mots de longueur 32 bits. Explicitement

s e f fbit 63 62-52 51-32 31-0

Dans ce cas, bias = 1023. Ils correspondent á peu prés á 16 place décimales depré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 1987par 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 dela machine. Pour précision simple nous obtenons ǫ = 2−23. Pour double précisionnous obtenons ǫ = 2−52.

Alternativement, la précision de la machine ǫm est le plus grand nombre positifqui, 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 dunombre x. L’erreur relative ǫx en xc est donc tel que

|ǫx| = |xc − x

x|≤ǫm. (2.11)

Tous les nombres de précision simple contiennent une erreur á leur 6éme placedécimal et tous les nombres de double précision contiennent une erreur á leur15éme place décimal.

Une opération sur l’ordinateur ne peut fournir qu’une approximation de laré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

aca

= 1 + ǫbb

a− ǫc

c

a. (2.12)

Page 158: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

152 physique numérique, ydri et al.

En particulier, la soustraction de deux trés grands nombres á peu prés égales b etc peut conduire á une erreur trés importante dans la réponse ac. En effet nousobtenons l’erreur

ǫa ≃b

a(ǫb − ǫc). (2.13)

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 etc pour produire un certain nombre a, á savoir a = b × c. Cette opération estrepré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’arrondis’accumule.

L’observation principale est que l’erreur d’arrondi croit lentement et au hasardavec N . Elle diverge quand N devient trés grande. En supposant que les erreursd’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 avecun 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 seraproportionnelle á

√N , á savoir

ǫro =√Nǫm. (2.15)

Ceci est l’estimation la plus conservatrice de l’erreur d’arrondi. Les erreurs d’arrondisont 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 =α

Nβ. (3.16)

L’erreur totale est obtenue en ajoutant l’erreur d’arrondi, á savoir

ǫtot = ǫsys + ǫro =α

Nβ+√Nǫm. (3.17)

Page 159: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 153

Il y a naturellement une concurrence entre les deux types d’erreurs. Pour lespetites N , c’est l’erreur systématique qui domine tandis que pour les grandes Nc’est l’erreur d’arrondi qui domine. C’est trés intéressant parce que cela signifieque, en essayant de diminuer l’erreur systématique (en augmentant N), nous allonsaugmenter l’erreur d’arrondi. Le meilleur algorithme est l’algorithme qui donneune approximation acceptable dans un petit nombre d’étapes de sorte qu’il n’yaura 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

ǫtot =1

N2+√Nǫm. (3.18)

Cette erreur est minimal lorsque

dǫtotdN

= 0. (3.19)

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 trouverun autre algorithme qui converge rapidement avec N . Pour un algorithme avecα = 2 et β = 4 l’erreur totale est

ǫtot =2

N4+√Nǫm. (3.20)

Cette erreur est minimale maintenant á N = 67 pour lequel ǫtot = 9× 10−7. Nousavons seulement 1/16 le nombre original d’étapes avec une erreur 4 fois plus petite.

Page 160: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

154 physique numérique, ydri et al.

Page 161: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

CExercices

Exercice 1: Nous donnons les équations différentielles

dx

dt= v. (0.1)

dv

dt= a− bv. (0.2)

• Écrivez les solutions exactes.

• Écrivez les solutions numériques de ces équations différentielles à l’aide desmé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

d2r

dt2=

l2

r3− GM

r2. (0.3)

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

d2z

dt2= −g. (0.4)

Page 162: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

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éterminerla position et la vitesse entre t = 0 et t = 1 pour N = 4. Comparer avec lasolution exacte et calculer l’erreur à chaque étape. Exprimer le résultat entermes de l = g∆t2.

• Donner la solution de ce probléme en termes des méthodes d’Euler-Cromeret de Verlet et déterminer les erreurs correspondantes.

Exercice 4: L’équation régissant la croissance démographique est

dN

dt= aN − bN2. (0.5)

Le terme linéaire représente le taux de naissance tandis que le terme quadratiquereprésente le taux de dècés. Donner une solution de ce problème en termes de lamé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:

d2r

dt2=

l2

r3− GM

r2. (0.6)

d2z

dt2= −g. (0.7)

dN

dt= aN − bN2. (0.8)

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

dt= σ(y − x)

dy

dt= −xz + rx− y

dz

dt= xy − bz. (0.9)

Page 163: Physique Numérique3 Intégration Numérique 21 ... généralement trop lentement par comparaison avec les langages compilés. • Comme notre langage de programmation, nous allons

physique numérique, ydri et al. 157

Ce système est une version simplifiée du système des équations de Navier-Stokesde 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 deRunge-Kutta.