Académique Documents
Professionnel Documents
Culture Documents
Badis Ydri
Introduction et Références 3
Partie I 7
1 Algorithme d’Euler- Résistance d’Air et Projectiles 7
1.1 Algorithme d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Désintégration Radioactive . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 La Résistance de l’Air . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Code de Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Mouvement d’un Projectile . . . . . . . . . . . . . . . . . . . . . . . 15
3 Intégration Numérique 21
3.1 Approximation Rectangulaire . . . . . . . . . . . . . . . . . . . . . 21
3.2 Méthode des Trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Approximation Parabolique oú la Régle de Simpson . . . . . . . . . 23
3.4 Erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 Travaux Pratiques 35
5.1 Algorithme d’Euler- Resistance d’Air . . . . . . . . . . . . . . . . . 35
5.2 Mouvement des Projectiles Sous l’Effet de la Résistance de l’Air . . 36
5.3 Oscillateur Harmonique-Algorithmes d’Euler-Cromer et de Verlet . 37
5.4 Intégration Numériques . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.5 Algorithmes de Newton-Raphson . . . . . . . . . . . . . . . . . . . 40
Partie II 45
6 Le Systéme Solaire-Les Méthodes de Runge-Kutta 45
6.1 Le Systéme Solaire: Le Probléme . . . . . . . . . . . . . . . . . . . 45
6.2 Algorithmes de Euler et de Euler-Cromer . . . . . . . . . . . . . . . 46
6.3 L’algorithme de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . 47
6.3.1 La Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.3.2 Example 1: L’Oscillateur Harmonique . . . . . . . . . . . . 49
6.3.3 Example 2: Le Systéme Solaire . . . . . . . . . . . . . . . . 49
6.4 Les lois de Kepler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.5 Loi de l’Inverse Carré et Stabilité des Orbites . . . . . . . . . . . . 53
6.6 Unités Astronomiques et Conditions Initiales . . . . . . . . . . . . . 54
6.7 Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . . . 55
8 Dynamique Moléculaire 67
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.2 Le Potentiel de Lennard-Jones . . . . . . . . . . . . . . . . . . . . . 68
8.3 Unités, Conditions aux Limites et Algorithme de Verlet . . . . . . . 69
8.4 Applications Physiques . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4.1 Gaz Dilué . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.4.2 La Transition de Fusion . . . . . . . . . . . . . . . . . . . . 73
physique numérique, ydri et al. 5
9 Travaux Pratiques 75
9.1 Algorithme de Runge-Kutta - Le Systéme Solaire . . . . . . . . . . 76
9.2 La Précession du Périhélie de Mercure . . . . . . . . . . . . . . . . 78
9.3 Le Pendule Chaotique et l’Effet Papillon . . . . . . . . . . . . . . . 80
9.4 Sections de Poincaré . . . . . . . . . . . . . . . . . . . . . . . . . . 82
9.5 Chaos par Doublement de Période . . . . . . . . . . . . . . . . . . . 84
9.6 Diagrammes de Bifurcation et Brisure Spontanée de la Symétrie . . 86
9.7 Dynamique Moléculaire . . . . . . . . . . . . . . . . . . . . . . . . . 88
Partie III 93
10 Nombres (Pseudo) Aléatoires et Marche Au Hasard 93
10.1 Nombres Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.1.1 Générateur Congruentiel Linéaire . . . . . . . . . . . . . . . 93
10.1.2 Tests Statistiques des Nombres Aléatoires . . . . . . . . . . 94
10.2 Systémes Aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
10.2.1 Marches Aléatoires . . . . . . . . . . . . . . . . . . . . . . . 97
10.2.2 Équation de Diffusion . . . . . . . . . . . . . . . . . . . . . 99
10.3 Les générateurs des Nombres Aléatoires RAN 0, 1, 2 . . . . . . . . . 101
Appendix 147
A Éléments de Fortran 147
C Exercices 155
Introduction et Références
physique numérique, ydri et al. 3
• Les outils les plus indispensables de la physique numérique sont les lan-
gages de programmation. Dans la plupart des simulations effectuées par des
physiciens professionnels dans leurs recherches les codes sont écrits dans un
langage compilé de haut niveau comme Fortran et C/C++. Dans ces simu-
lations, nous utilisons également des appels á des bibliothéques des routines
telles que LAPACK. Dans ce cours, nous allons écrire tous nos codes dans
un langage compilé de haut niveau. En particulier, nous n’allons pas faire
appel aux bibliothéques numériques .
4 physique numérique, ydri et al.
• Les références principales que nous allons suivre dans ce cours sont:
dy
(1.1)
′
y = = f (x, y).
dx
Nous prenons la condition initiale générale
y(x0 ) = y0 . (1.2)
L’algorithme d’Euler consiste á remplacer la fonction y(x) dans l’intervalle [xn , xn+1 ]
par la ligne droite reliant les points (xn , yn ) et (xn+1 , yn+1 ). Cela signifie que nous
remplaçons l’équation différentielle ci-dessus par l’équation aux différences finies
donnée par
Cette équation est une approximation. L’erreur de troncature est donnée par le
prochain terme dans l’expansion de Taylor de la fonction y(x) qui s’écrit
1 df (x, y)
(∆x)2 |x=xn . (1.5)
2 dx
L’erreur par étape est donc proportionnel á (δx)2 . Dans un intervalle unitaire nous
effectuerons N = 1/δx étapes. L’erreur systématique totale est donc proportion-
nelle á
1
N(∆x)2 = . (1.6)
N
2
dN 1 2d N
N (t + ∆t) = N (t) + ∆t + (∆t) + ... (2.10)
dt 2 dt2
Nous obtenons dans la limite ∆t −→ 0
dN N (t + ∆t) − N (t)
= Lim∆t−→0 . (2.11)
dt ∆t
Nous prenons ∆t petit mais non nul. Dans ce cas, nous obtenons l’approximation
dN N (t + ∆t) − N (t)
≃ . (2.12)
dt ∆t
De maniére équivalente
dN
N (t + ∆t) ≃ N (t) + ∆t . (2.13)
dt
En utilisant (2.8) nous obtenons
N (t)
N (t + ∆t) ≃ N (t) − ∆t . (2.14)
τ
Nous allons commencer par le nombre de particules au temps t = 0 donnée par
N (0) = N0 , ce qui est connu. Nous remplaçons t = 0 dans (2.14) pour obtenir
N (∆t) = N (1) en fonction de N (0). La valeur ainsi obtenue de N (1) peut être
utilisé dans l’équation (2.14) pour obtenir N (2∆t) = N (2), etc . Nous sommes
amenés alors á la discrétisation du temps
En d’autres termes
N̂ (i)
N̂ (i + 1) = N̂ (i) − ∆t , i = 1, ..., N + 1. (2.19)
τ
Les temps associés
Cette solution approchée doit être comparée avec la solution exacte (2.9). Le
nombre initial de particules au temps t̂(1) = 0 est N̂ (1) = N0 .
Á faibles vitesses le premier terme domine tandis que pour les vitesses importantes,
il est le deuxiéme terme qui domine. Pour des vitesses trés faibles la dépendance
sur v est donnée par Fdrag = −B1 v qui est connue sous le nom de la loi de Stockes.
Pour des vitesses raisonnables la force de traînée est dominé par le second terme,
c’est á dire qu’il est donné pour la plupart des objets par
Ceci est égale au travail effectué par la force de traînée, c’est á dire
B2 = CρA. (3.30)
En d’autres termes
CρAv 2 (i)
P
v(i + 1) = v(i) + ∆t − , i = 0, ..., N. (3.35)
mv(i) m
Cela peut aussi être mise sous la forme (avec v̂(i) = v(i − 1))
CρAv̂ 2 (i)
P
v̂(i + 1) = v̂(i) + ∆t − , i = 1, ..., N + 1. (3.36)
mv̂(i) m
program radioactivity
c ici c est le code
return
end
Nous avons choisi le nom "radioactivity" pour notre programme. Le "c" dans la
deuxiéme ligne indique que la phrase " ici c’est le code" est seulement un com-
mentaire et non pas une partie du code.
program radioactivity
integer i, N
parameter (N = 100)
doubleprecision N̂ (1 : N + 1), t̂(1 : N + 1), N0, ∆t, τ
c ici c est le code
return
end
Les données seront enregistrées dans un fichier appelé fort.10. La boucle do avec
l’instruction write s’écrit
N̂ (1) = N0
t̂(1) = 0
do i = 1, N + 1, 1
N̂ (i + 1) = N̂ (i) − (∆tN̂ (i))/τ
t̂(i + 1) = i∆t
write(10, ∗) t̂(i + 1), N̂ (i + 1)
enddo
Edition d’un fichier Fortran : Nous ouvrons un terminale sous Linux Ubuntu.
Nous tappons emacs pour ouvrir l’éditeur emacs. Nous entrons le code suivant
program radioactivity
integer i, N
parameter (N = 100)
doubleprecision tau, dt, t(1 : N + 1), NN(1 : N + 1), NN0
c paramétres d’ entrées
NN0 = 1000
tau = 1.0d0
dt = 0.01
NN(1) = NN0
t(1) = 0.0d0
c la boucle do
do i = 1, N + 1
NN(i + 1) = NN(i) − (dt ∗ NN(i))/tau
t(i + 1) = i ∗ dt
c l’ instruction write
write (10, ∗) t(i + 1), N(i + 1)
physique numérique, ydri et al. 15
enddo
return
end
f77 code.f
./a.out
Nous obtenons le fichier de sortie fort.10. Nous pouvons l’ouvrir en utilisant emacs.
plot ’fort.10’ u 1 : 2
d~v
m = F~ + F~drag
dt
~v
= m~g − B2 v 2
v
= m~g − B2 v~v. (5.38)
16 physique numérique, ydri et al.
dx
= vx . (5.41)
dt
dvx
m = −B2 vvx . (5.42)
dt
dy
= vy . (5.43)
dt
dvy
m = −mg − B2 vvy . (5.44)
dt
Nous rappelons la contrainte
q
v= vx2 + vy2 . (5.45)
L’approche numérique que nous allons employer pour résoudre les 4 équations du
mouvement (5.41)-(5.44) consiste á utiliser l’algorithme d’Euler. Cela donne la
solution approchée donnée par les équations
x(i + 1) = x(i) + ∆tvx (i). (5.46)
B2 v(i)vx (i)
vx (i + 1) = vx (i) − ∆t . (5.47)
m
y(i + 1) = y(i) + ∆tvy (i). (5.48)
B2 v(i)vy (i)
vy (i + 1) = vy (i) − ∆tg − ∆t . (5.49)
m
La contrainte est
q
v(i) = vx (i)2 + vy (i)2 . (5.50)
Dans les équations ci-dessus l’indice i est tel que i = 0, ..., N. La position initiale et
la vitesse initiale sont données, c’est á dire x(0), y(0), vx (0) et vy (0) sont connues.
Algorithmes d’Euler-Cromer et de
2
Verlet-Oscillateur Harmonique
d2 s
m = −mg sin θ. (1.3)
dt2
θ est l’angle formé par le fil avec la verticale. Il est clair que s = lθ. La force
mg sin θ est une force de rappel qui signifie qu’elle est toujours dirigée vers la
position d’équilibre θ = 0. Cette force est alors toujours opposée au déplacement
18 physique numérique, ydri et al.
qui est á l’origine de signe moins dans l’équation ci-dessus. Nous obtenons en
utilisant s = lθ l’équation
d2 θ g
2
= − sin θ. (1.4)
dt l
Pour les valeurs petites de θ, nous avons sin θ ≃ θ. Nous obtenons
d2 θ g
2
= − θ. (1.5)
dt l
La solution est une fonction sinusoïdale du temps avec la fréquence Ω =
p
g/l.
Elle est donnée par
dω g
= − θ. (2.8)
dt l
En utilisant la définition de la dérivé d’une fonction, á savoir
df f (t + ∆t) − f (t)
= , ∆t −→ 0. (2.9)
dt ∆t
Nous obtenons pour ∆t petit mais non nul les approximations
En d’autre termes
g
ω(i + 1) = ω(i) − θ(i)∆t
l
θ(i + 1) = θ(i) + ω(i)∆t. (2.13)
Nous faisons le changement i −→ i + 1 pour que l’entier i prend des valeurs dans
l’intervalle [1, N + 1]. Nous obtenons
g
ω(i) = ω(i − 1) − θ(i − 1)∆t
l
θ(i) = θ(i − 1) + ω(i − 1)∆t. (2.14)
Nous introduisons ω̂(i) = ω(i − 1) et θ̂(i) = θ(i − 1). Nous obtenons avec i =
1, ..., N + 1 les équations
g
ω̂(i + 1) = ω̂(i) − θ̂(i)∆t
l
θ̂(i + 1) = θ̂(i) + ω̂(i)∆t. (2.15)
g
ω̂(i + 1) = ω̂(i) − θ̂(i)∆t
l
θ̂(i + 1) = θ̂(i) + ω̂(i + 1)∆t. (3.16)
L’erreur peut être calculée comme suit. De ces deux équations nous obtenons
g
θ̂(i + 1) = θ̂(i) + ω̂(i)∆t − θ̂(i)∆t2
l
d2 θ̂
= θ̂(i) + ω̂(i)∆t + |i ∆t2 . (3.17)
dt
En d’autres termes l’erreur par étape est toujours de l’ordre de ∆t2 . Cependant
l’algorithme d’Euler-Cromer fait mieux que l’algorithme d’Euler avec un mouve-
ment périodique.
dθ 1 d2 θ 1 d3 θ
θ(ti − ∆t) = θ(ti ) − ∆t|ti + (∆t)2 2 |ti − (∆t)3 3 |ti + ... (4.19)
dt 2 dt 6 dt
La somme de ces deux expressions est
d2 θ
θ(ti + ∆t) = 2θ(ti ) − θ(ti − ∆t) + (∆t)2 2
|ti + O(∆4). (4.20)
dt
Nous écrivons cette équation sous la form
g
θi+1 = 2θi − θi−1 − (∆t)2 θi . (4.21)
l
Cette équation est l’algorithme de Verlet pour l’oscillateur harmonique. D’abord
on remarque que l’erreur est proportionnelle à ∆t4 . Donc cette méthode est plus
précise que les méthodes d’Euler, d’Euler-Cromer et de Runge-Kutta de deuxième
ordre. Ensuite on remarque que dans cette méthode nous n’avons pas besoin de
calculer ω = dθ/dt. Troisièmement, nous remarquons que cette méthode ne peut
pas être lancer étant donné seulement les conditions initiales θ1 et ω1 mais nous
avons besoin aussi de savoir θ2 pour lancer l’algorithme. Généralement, on va
déterminer θ2 en utilisant la méthode d’Euler, à savoir
θ2 = θ1 + ∆t ω1 . (4.22)
Intégration Numérique
3
3.1 Approximation Rectangulaire
Nous considérons une intégrale unidimensionnelle de la forme
Z b
F = f (x)dx. (1.1)
a
En général cette intégral ne peut pas être calculer analytiquement. Toutefois, il est
trés simple á faire numériquement. Le point de départ est la définition de Riemann
de l’intégrale F comme l’aire oú la superficie sous la courbe de la fonction f (x) de
x = a jusqu’a x = b. Ceci est obtenu comme suit. Nous discrétisons l’intervalle
[a, b], c’est á dire nous coupons cette intervalle en N morceaus chacun de longueur
∆x. En d’autre termes nous introduisons les points
b−a
xn = x0 + n∆x , ∆x = (1.2)
N
Il est clair que x0 = a et xN = b. La définition de Riemann est alors donnée par
la limite suivante
N
X −1
F = lim ∆x f (xn ) . (1.3)
∆x−→0 , N −→∞ , b−a=fixed
n=0
22 physique numérique, ydri et al.
La premiére approximation qui peut être faite est de supprimer la limite. Nous
obtenons l’approximation dite rectangulaire donnée par
N
X −1
FN = ∆x f (xn ). (1.4)
n=0
N
X
FN = f (xn )wn . (1.5)
n=0
N −1 N −1
X (f (xn+1 ) + f (xn ))∆x 1 X 1
TN = = f (x0 ) + f (xn ) + f (xN ) ∆x. (2.7)
n=0
2 2 n=1
2
On remarque que les poids sont donnés ici par w0 = ∆x/2, wn = ∆x, n =
1, ..., N − 1 et wN = ∆x/2.
physique numérique, ydri et al. 23
On remarque que
De maniére équivalente
Z xn+1 Z xn+1
dx f (x) = dx(αx2 + βx + γ)
xn−1 xn−1
f (xn−1 ) 4f (xn ) f (xn+1 )
= ∆x + + . (3.14)
3 3 3
24 physique numérique, ydri et al.
N−2
2
X f (x2p ) 4f (x2p+1 ) f (x2p+2 )
SN = ∆x + + . (3.15)
p=0
3 3 3
Il est clair que nous devons avoir N (le nombre de sous-intervalles) pair. Nous
calculons
∆x
SN = f (x0 ) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + 2f (x4 ) + ... + 2f (xN −2 ) + 4f (xN −1 ) + f (xN ) .
3
(3.16)
Nous pouvons lire directement de cette expression les poids wn dans cette approx-
imation.
Nous rappelons maintenant l’approximation des trapézes donnée par
N −1
X ∆x
TN = f (x0 ) + 2 f (xn ) + f (xN ) . (3.17)
n=1
2
3.4 Erreurs
Les erreurs dans les méthodes d’intégration numériques sont calculés comme suit.
Nous commençons avec le développement de Taylor
1
f (x) = f (xn ) + (x − xn )f (1) (xn ) + (x − xn )2 f (2) (xn ) + ... (4.20)
2!
Ainsi
xn+1
1 (1) 1
Z
dx f (x) = f (xn )∆x + f (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (4.21)
xn 2! 3!
Parabolic: Afin de calculer l’erreur dans l’intervalle [xn−1 , xn+1 ] dans l’approximation
parabolique, nous calculons
Z xn Z xn+1
2 2
dx f (x) + dx f (x) = 2f (xn )∆x + (∆x)3 f (2) (xn ) + (∆x)5 f (4) (xn ) + ...
xn−1 xn 3! 5!
(4.24)
Aussi, nous calculons
∆x 2 2
(f (xn+1 ) + f (xn−1 ) + 4f (xn )) = 2f (xn )∆x + (∆x)3 f (2) (xn ) + (∆x)5 f (4) (xn ) + ...
3 3! 3.4!
(4.25)
26 physique numérique, ydri et al.
Alors l’erreur dans l’approximation parabolique dans l’intervalle [xn−1 , xn+1 ] est
Z xn+1
∆x 2 2
dx f (x) − (f (xn+1 ) + f (xn−1 ) + 4f (xn )) = ( − )(∆x)5 f (4) (xn(4.26)
) + ...
xn−1 3 5! 3.4!
Ceci est de l’ordre de 1/N 5 . L’erreur totale est donc de l’ordre de 1/N 4 .
Algorithmes de Newton-Raphson et
4
Interpolation
f (x) = 0. (1.1)
La Méthode de dichotomie (aussi la méthode de la bissection) fonctionne comme
suit. Nous commençons avec deux valeurs x+ et x− de x tel que
insignifiant ou jusqu’à ce que l’erreur devient plus petite qu’une certaine tolérance.
L’erreur relative est définie par
x+ − x−
error = . (1.4)
x
Clairement l’erreur absolue e = xi − xf est réduit de moitié à chaque itération et
donc le taux de convergence de la régle de dichotomie est linéaire. C’est vraiment
lent.
x = x0 + ∆x. (2.5)
f (xi )
ǫi+1 = ǫi + . (2.10)
f ′ (x)
(x − xi )2 ′′
(2.11)
′
f (x) = 0 = f (xi ) + (x − xi )f (xi ) + f (xi ) + ...
2!
En d’autre termes
ǫ2i ′′
(2.12)
′
f (xi ) = −ǫi f (xi ) − f (xi ) + ...
2!
Par conséquent, l’erreur est donnée par
′′
ǫ2i f (xi )
ǫi+1 = − . (2.13)
2 f ′ (xi )
Cette convergence est quadratique ce qui est plus rapide que la régle de bissection.
f (b)
(3.14)
′
b = b− .
f ′ (b)
Nous vérifions maintenant si cette étape est bornée dans l’intervalle [a, c]. En
d’autres termes, nous devons vérifier que
f (b)
(3.15)
′ ′
a≤b − ′ ≤c ⇔ (b − c)f (b) − f (b)≤0≤(b − a)f (b) − f (b).
f (b)
Par conséquent si (b − c)f (b) − f (b) (b − a)f (b) − f (b) < 0 alors l’étape de
′ ′
Nous trouvons
(x1 − x)(x3 − x1 ) (x1 − x)(x2 − x1 )
a2 = , a3 = − . (4.21)
(x2 − x)(x2 − x3 ) (x3 − x)(x2 − x3 )
Ainsi
(x3 − x1 )(x2 − x1 )
1 + a2 + a3 = . (4.22)
(x2 − x)(x3 − x)
physique numérique, ydri et al. 31
Un polynôme qui passe par les n points (xi , fi = f (xi )) a été donnée par Lagrange.
Il est donné par
Yn x − xj
λi (x) = . (4.26)
j(6=i)=1 xi − xj
Nous remarquons
n
X
λi (x) = 1. (4.28)
i=1
p(x) = aj (x − xj )3 + bj (x − xj )2 + cj (x − xj ) + dj . (5.29)
32 physique numérique, ydri et al.
d j = pj . (5.31)
Nous calculons
(5.32)
′
p (x) = 3aj (x − xj )2 + 2bj (x − xj ) + cj .
(5.33)
′′
p (x) = 6aj (x − xj ) + 2bj .
′′
pj
bj = . (5.34)
2
En remplaçant x = xj+1 en p (x), nous obtenons le résultat
′′
′′ ′′
pj+1 − pj
aj = , hj = xj+1 − xj . (5.35)
6hj
En remplaçant x = xj+1 en p(x), nous obtenons
de l’équation ci-dessus
′′ ′′
pj+1 − pj pj+1 − pj
′ 2 ′′ hj ′′ ′′
p (x) = (x − xj ) + pj (x − xj ) + − (pj+1 + 2pj ) .(5.39)
2hj hj 6
physique numérique, ydri et al. 33
pj+1 − pj pj − pj−1
(5.43)
′′ ′′ ′′
hj−1 pj−1 + 2(hj + hj−1)pj + hj pj+1 = 6 − .
hj hj−1
Ce sont n − 2 équations puisque j = 2, ..., n − 1 pour les n inconnus pj . Nous
′′
avons besoin en plus de deux équations. Ces derniers sont obtenus en calculant la
dérivée premiére p (x) á x = x1 et x = xn . Nous obtenons les deux équations
′
6(p2 − p1 )
(5.44)
′′ ′′ ′
h1 (p2 + 2p1 ) = − 6p1 .
h1
6(pn − pn−1 )
(5.45)
′′ ′′ ′
hn−1 (pn−1 + 2pn ) = − + 6pn .
hn−1
Les n équations (5.43), (5.44) and (5.45) correspondent á un systéme tridiagonale
linéaire. En général p1 et pn ne sont pas connus. Dans ce cas nous pouvons utiliser
′ ′
P P P
i x(i) j y(j) − N i x(i)y(i)
m= . (6.50)
( i x(i))2 − N i x2i
P P
Travaux Pratiques
5
5.1 Algorithme d’Euler- Resistance d’Air
Un cycliste conduit un vélo en ligne droite sur un terrain plat avec une vitesse v.
La force exercée par le cycliste sur le vélo est équivalent á une puissance constante
égale á 200 watt qui peut être maintenue pendant une heure. La force de résistance
de l’air agit contre le mouvement et elle est proportionnelle au carré de la vitesse,
á savoir
Fdrag = −CρAv 2 .
Dans cette equation ρ est la densité de l’air, C est le coefficient de traînée et A est
la section efficace de system cyclist+vélo. La 2eme pour ce system loi de Newton
prend la form
dv P CρAv 2
= − .
dt mv m
L’inconnue est la vitesse v comme une fonction du temps, c’est á dire v = v(t).
Dans cette partie de probléme nous prendrons C = 0.5.
L’approche numérique que nous allons considérer ici est basé sur la méthode
d’Euler. La solution approchée de l’équation différentielle ci-dessus selon la méth-
ode d’Euler est donné par les équations
CρAv̂ 2 (i)
P
v̂(i + 1) = v̂(i) + ∆t − . i = 1, ..., N + 1
mv̂(i) m
36 physique numérique, ydri et al.
B
= 0.00004m−1 , g = 9.8m/s2 .
m
v(1) = 700m/s , θ = 30 degree.
vx (1) = v(1) cos θ , vy (1) = v(1) sin θ.
N = 105 , ∆t = 0.01s.
Calculer la trajectoire du projectile avec et sans la résistance de l’air. Qu’est-
ce que vous remarquez.
if(y(i + 1).le.0)exit.
(4) Dans le cas oú la résistance de l’air est absent nous savons que la portée est
maximale lorsque l’angle initial est 45 degrés. Vérifier ce fait numériquement
en considérant plusieurs angles initiales. Plus précisément nous pouvons
ajouter une boucle "do" sur l’angle initial pour étudier la portée en fonction
de l’angle initial.
(5) Dans le cas oú la résistance de l’air n’est pas nulle calculer l’angle sous lequel
la portée est á son maximum.
Cette équation différentielle du second ordre est équivalente aux deux équations
différentielles du premier ordre donné par
dθ dΩ g
=Ω, = − θ.
dt dt l
Nous allons considérer la solution numérique donnée par l’algorithme d’Euler
g
Ωi+1 = Ωi − θi ∆t.
l
θi+1 = θi + Ωi ∆t.
Les autres solutions numériques que nous allons prendre en considération sont
donnés par les algorithmes d’Euler-Cromer and Verlet qui prennent la forme
g
Ωi+1 = Ωi − θi ∆t , θi+1 = θi + Ωi+1 ∆t , Euler − Cromer.
l
g
θi+1 = 2θi − θi−1 − θi (∆t)2 , Verlet.
l
(1) Écrire un code de fortran qui implémente les algorirthmes d’Euler, d’Euler-
Cromer et de Verlet qui sont expliquées ci-dessus.
g = 9.8m/s2 , l = 1m .
N = 10000 , ∆t = 0.05s.
θ1 = 0.1radian , Ω1 = 0.
(3) Comparer entre les énergies calculées par les methodes d’Euler et d’Euler-
Cromer. Qu’est-ce que vous observez et que pouvez-vous conclure.
(4) Répétez le calcul en utilisant Verlet. Remarquer que cette méthode ne peut
pas démarrer seulement á partir des valeurs initiales θ1 et Ω1 . Il faut aussi
donner l’angle θ2 qui peut être calculé á l’aide d’Euler, i.e.
θ2 = θ1 + Ω1 ∆t.
Nous sommes interessé dans le cas générique oú cette intégrale ne peut pas être
calculé explicitement. Ainsi il reste á notre disposition seulement l’approche
numérique qui va nous permettre d’obtenir une valeur approximative pour cette
intégrale. Les algorithmes que nous allons utiliser sont la méthode des rectangles,
la méthode des trapèzes et l’ approximation paraboliques. Dans toutes ces méth-
odes nous divisons le domaine d’intégration en N sous-intervalles de longueur ∆x
comme suite
b−a
xi = x0 + i∆x , i = 0, ..., N , ∆x = , x0 = a, xN = b.
N
La méthode des rectangles est
N
X −1
FN = ∆x f (xi ).
i=0
Les erreurs numériques dans ces méthodes sont proportionnels á 1/N, 1/N 2 et
1/N 4 respectivement.
(1) Nous prenons l’intégrale
Z 1
I= f (x)dx ; f (x) = 2x + 3x2 + 4x3 .
0
α tan αa = β.
r r
2mE 2m(V − E)
α= 2
, β= .
~ ~2
Dans le cas d’un puits de potentiel infinie nous trouvons la solution
(n + 21 )2 π 2 ~2
En = , n = 0, 1....
2ma2
physique numérique, ydri et al. 41
~ = 1 , a = 1 , 2m = 1.
f (x0 )
x1 = x0 − .
f ′ (x0 )
(4) Trouver les 4 solutions pour V = 100. Utiliser la méthode graphique pour
déterminer le point de départ chaque fois.
d2~r GMe Ms
Me = − ~r
dt2 r3
GMe Ms ~
= − (xi + y~j). (1.1)
r3
Nous obtenons les deux équations
d2 x GMs
2
= − 3 x. (1.2)
dt r
d2 y GMs
2
= − 3 y. (1.3)
dt r
46 physique numérique, ydri et al.
Nous remplaçons ces deux équations différentielles du second ordre par les quatre
équations différentielles du premier ordre
dx
= vx . (1.4)
dt
dvx GMs
= − 3 x. (1.5)
dt r
dy
= vy . (1.6)
dt
dvy GMs
= − 3 y. (1.7)
dt r
Nous rappelons
p
r= x2 + y 2. (1.8)
L’intervalle de temps total est T = N∆t. Nous définissons x(t) = x(i), vx (t) =
vx (i), y(t) = y(i), vy (t) = vy (i). Les équations (1.4), (1.5), (1.6), (1.7) et (1.8)
deviennent (avec i = 0, ..., N)
GMs
vx (i + 1) = vx (i) − x(i)∆t. (2.10)
(r(i))3
GMs
vy (i + 1) = vy (i) − y(i)∆t. (2.12)
(r(i))3
p
r(i) = x(i)2 + y(i)2 . (2.14)
physique numérique, ydri et al. 47
Ceci est l’algorithme d’Euler. Il peut aussi être réécrit avec x̂(i) = x(i − 1),
ŷ(i) = y(i − 1), v̂x (i) = vx (i − 1), v̂y (i) = vy (i − 1), r̂(i) = r(i − 1) et i = 1, ..., N + 1
comme
GMs
v̂x (i + 1) = v̂x (i) − x̂(i)∆t. (2.15)
(r̂(i))3
GMs
v̂y (i + 1) = v̂y (i) − ŷ(i)∆t. (2.17)
(r̂(i))3
p
r̂(i) = x̂(i)2 + ŷ(i)2 . (2.19)
GMs
v̂y (i + 1) = v̂y (i) − ŷ(i)∆t. (2.22)
(r̂(i))3
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
La pente de cette ligne est f (xn , yn ) qui est exactement donnée par la pente de la
fonction y = y(x) au début de l’intervalle [xn , xn+1 ].
Étant donné la valeur yn á xn , nous évaluons la valeur yn+1 á xn+1 en utilisant la
méthode de Runge-Kutta comme suit. D’abord le milieu de l’intervalle [xn , xn+1 ]
qui est á la valeur xn + 21 ∆x correspond á la valeur yn+1 calculé en utilisant la
méthode d’Euler, á savoir yn+1 = yn + 21 k1 oú
k2 1 1
= f (xn + ∆x, yn + k1 ) (3.27)
∆x 2 2
est la valeur de la pente qui sera utilisée pour estimer la valeur correcte de yn+1 á
xn+1 en utilisant á nouveau la méthode d’Euler, á savoir
yn+1 = yn + k2 . (3.28)
L’erreur de cette méthode est proportionnelle á ∆x3 . Ceci peut être demontrée
comme suit. Nous avons
dy 1 d2 y
y(x + ∆x) = y(x) + ∆x + (∆x)2 2 + ...
dx 2 dx
1 d
= y(x) + ∆xf (x, y) + (∆x)2 f (x, y) + ...
2 dx
1 ∂f 1 ∂f
= y(x) + ∆x f (x, y) + ∆x + ∆xf (x, y) + ...
2 ∂x 2 ∂y
1 1
= y(x) + ∆xf (x + ∆x, y + ∆xf (x, y)) + O(∆x3 )
2 2
1 1
= y(x) + ∆xf (x + ∆x, y + k1 ) + O(∆x3 )
2 2
= 3
y(x) + k2 + O(∆x ). (3.29)
Notons enfin que cette méthode de Runge-Kutta est proprement dite la méthode
de Runge-Kutta du second ordre. La méthode de Runge-Kutta du premier ordre
est l’algorithme d’Euler. Les méthodes de Runge-Kutta d’ordres supérieurs ne
seront pas discutées ici.
physique numérique, ydri et al. 49
dθ
=ω
dt
dω g
= − θ. (3.30)
dt l
Les équations d’Euler s’écrit
θn+1 = θn + ∆tωn
g
ωn+1 = ωn − θn ∆t. (3.31)
l
D’abord, nous considérons la fonction θ = θ(t). Le point de milieu est (tn +
1
2
∆t, θn + 21 k1 ) oú k1 = ∆tωn . Pour la fonction ω = ω(t) le point de milieu est
(tn + 12 ∆t, ωn + 21 k3 ) oú k3 = − gl ∆tθn . Par conséquent, nous avons
k1 = ∆tωn
g
k3 = − ∆tθn . (3.32)
l
La pente de la fonction θ(t) á son point de milieu est
k2 1
= ωn + k3 . (3.33)
∆t 2
La pente de la fonction ω(t) á son point de milieu est
k4 g 1
= − (θn + k1 ). (3.34)
∆t l 2
La solution de Runge-Kutta est alors donnée par
θn+1 = θn + k2
ωn+1 = ωn + k4 . (3.35)
dvx GMs
= − 3 x. (3.37)
dt r
dy
= vy . (3.38)
dt
dvy GMs
= − 3 y. (3.39)
dt r
D’abord, nous considérons la fonction x = x(t). Le point de milieu est (tn +
1
2
∆t, xn + 21 k1 ) oú k1 = ∆t vxn . Pour la fonction vx = vx (t) le point de milieu est
(tn + 12 ∆t, vxn + 21 k3 ) oú k3 = − GM
rn
s
∆t xn . Par conséquent, nous avons
k1 = ∆t vxn
GMs
k3 = − 3 ∆t xn . (3.40)
rn
La pente de la fonction x(t) au point de milieu est
k2 1
= vxn + k3 . (3.41)
∆t 2
La pente de la fonction vx (t) au point de milieu est
k4 GMs 1
= − 3 (xn + k1 ). (3.42)
∆t Rn 2
Ensuite, nous considérons la fonction y = y(t). Le point de milieu est (tn +
1
∆t, yn + 21 k1 ) oú k1 = ∆t vyn . Pour la fonction vy = vy (t) le point de milieu est
′ ′
2
(tn + 21 ∆t, vyn + 12 k3 ) oú k3 = − GM ∆t yn . Par conséquent, nous avons
′ ′
s
rn
′
k1 = ∆t vyn
GMs
(3.43)
′
k3 = − 3 ∆t yn .
rn
La pente de la fonction y(t) au point de milieu est
′
k2 1 ′
= vyn + k3 . (3.44)
∆t 2
La pente de la fonction vy (t) au point de milieu est
′
k4 GMs 1 ′
= − 3 (yn + k1 ). (3.45)
∆t Rn 2
physique numérique, ydri et al. 51
xn+1 = xn + k2
vx(n+1) = vxn + k4
′
yn+1 = yn + k2
(3.47)
′
vy(n+1) = vyn + k4 .
r θ̈ + 2ṙθ̇ = 0. (4.49)
GMs
r̈ − r θ̇2 = − . (4.50)
r2
Nous rappelons que le moment angulaire par unité de masse est définie par ~l =
~r × ~r˙ = r 2 θ̇r̂ × θ̂. Ainsi l = r 2 θ̇. L’équation (4.49) est précisément l’exigence que
le moment angulaire est conservé. En effet, nous calculons
52 physique numérique, ydri et al.
dl
= r(r θ̈ + 2ṙ θ̇) = 0. (4.51)
dt
Maintenant on remarque que l’aire balayée par le vecteur ~r dans un intervalle de
temps dt est dA = (r × rdθ)/2 oú dθ est l’angle parcouru par ~r au cours de dt.
Clairement
dA 1
= l. (4.52)
dt 2
En d’autres termes la planéte balaie des aires égales dans des temps égaux parce
que l est conservée. Ceci est la deuxiéme loi de Kepler.
La seconde équation (4.50) devient maintenant
l2 GMs
r̈ = 3
− 2 (4.53)
r r
En multipliant cette équation avec ṙ, nous obtenons
d 1 l2 GMs
E = 0 , E = ṙ 2 + 2 − . (4.54)
dt 2 2r r
Ceci est précisément la loi de la conservation de l’énergie. E est l’énergie par unité
de masse. La solution dt en termes de dr est donnée par
dr
dt = s (4.55)
l2 GMs
2 E− 2r 2
+ r
du
Z
= − q . (4.57)
2E 2GMs
l2
+ l2
u − u2
physique numérique, ydri et al. 53
En inversant cette équation, nous obtenons une équation d’un ellipse avec excen-
tricité e parce que E < 0, á savoir
1
(4.59)
′
= C(1 + e cos(θ − θ )).
r
Ceci est la premiére loi de Kepler. L’angle sous lequel r est maximale est θ−θ = π.
′
1 l2
(1 − e2 )a = = . (4.60)
C GMs
De l’équation (4.52), nous pouvons obtenir la troisiéme loi de Kepler. En
intégrant les deux côtés de l’équation sur une seule période T , puis en prenant le
carré, nous arrivons á
1
A2 = l2 T 2 . (4.61)
4
A est la surface de l’ellipse.√ Ainsi A = πab oú le demi-petit axe b est liée au
demi-grand axe a par b = a 1 − e2 . Alors
1
π 2 a4 (1 − e2 ) = l2 T 2 . (4.62)
4
En utilisant l’équation (4.60), nous obtenons la formule souhaitée
T2 4π 2
= . (4.63)
a3 GMs
Ainsi tout autre objet placé dans ce champ gravitationnel subira une force de
gravitation proportionnelle au nombre de lignes de champ qui pass au travers. Si
la distance entre ce deuxiéme objet et la source est augmentée, la force deviendra
plus faible parce que le nombre de lignes de champ qui pass au travers diminue á
mesure que nous allons plus loin de la source.
Il sera l’un des éléments les plus importants de nos simulations numériques
de vérifier la loi du carré inverse de maniére aussi précise que possible. En par-
ticulier, nous aimerions faire remarquer que les orbites des planétes deviennent
généralement instables pour autre lois de force.
Me v 2 GMs Me
= . (6.64)
r r2
De façon équivalente
GMs = v 2 r. (6.65)
GMs Mm 1 GMs Mm 1
− + Mm v12 = − + Mm v22 . (6.68)
r1 2 r2 2
√
Dans l’équation ci-dessus r2 = e2 a2 + b2 est la distance entre le Soleil et Mercure
lorsque au point (0, b). En substituant la valeur de v2 , nous obtenons une équation
pour v1 . Elle est donnée par
r
GMs 1 − e
v1 = = 8.2 AU/yr. (6.69)
a 1+e
GMs Mm α
F = 2
(1 + 2 ) , α = 1.1 × 10−8UA2 . (7.70)
r r
Nous aimerions, á la fin de cette section, de discuter quelques résultats numériques
obtenus avec la méthode de Runge-Kutta pour différentes valeurs de α. Nous
prenons le pas de temps et le nombre d’itérations dt = 0.0001 et N = 20000. Nous
trouvons que l’angle de la ligne joignant le Soleil et le Mercure avec l’axe horizontal
lorsque le Mercure est au périhélie change de façon linéaire avec le temps. Nous
obtenons les taux suivants de precession
56 physique numérique, ydri et al.
dθ
α = 0.0008 , = 8.414 ± 0.019
dt
dθ
α = 0.001 , = 10.585 ± 0.018
dt
dθ
α = 0.002 , = 21.658 ± 0.019
dt
dθ
α = 0.004 , = 45.369 ± 0.017. (7.71)
dt
Ainsi
dθ
= aα , a = 11209.2 ± 147.2 degres/(an.α). (7.72)
dt
En extrapolant á la valeur fournie par la relativité générale, á savoir α = 1.1×10−8
nous obtenons
dθ
= 44.4 ± 0.6 sec d′ arc/siecle. (7.73)
dt
Le Chaos: Pendule Chaotique
7
7.1 Equation du Mouvement
Nous partons de l’équation du mouvement d’un pendule simple donnée par
d2 θ
ml = −mg sin θ. (1.1)
dt2
Nous considérons l’effet de la résistance de l’air sur le mouvement de la masse m.
Nous allons supposer que la force de résistance de l’air est donnée par la loi de
Stokes. Nous obtenons
d2 θ dθ
ml = −mg sin θ − mlq . (1.2)
dt2 dt
La résistance de l’air va éventuellement drainer toute l’énergie du pendule. Afin
de maintenir le mouvement contre l’effet d’amortissement de la résistance de l’air,
nous allons ajouter une force motrice. Nous allons choisir une force périodique
avec une amplitude mlFd et une fréquence ωD . Cette force provient, par exemple,
si l’on applique un champ électrique périodique avec une amplitude ED et une
fréquence ωD sur la masse m qui est supposé avoir une charge électrique q, c’est
á dire mlFd = qED . Elle peut également provenir des oscillations périodiques
de point de pivot du pendule. En ajoutant la force motrice nous obtenons alors
l’équation du mouvement
d2 θ dθ
ml 2
= −mg sin θ − mlq + mlFD cos ωD t. (1.3)
dt dt
58 physique numérique, ydri et al.
sin θ ≃ θ. (1.7)
Nous trouvons
1 1 ωD
a= 2
ωD
2
(1 − ωD ) ,b = 2
ωD
. (1.12)
2 2
(1 − ωD ) + 2 2
(1 − ωD ) + Q
Q2 Q2
θ = θ∞ + θt . (1.13)
2 2
FD (1 − ωD 1 FD (1 − 3ωD
) 1 θ(0) ) t
θt = θ(0) − 2 cos ω∗ t + Ω(0) + − 2 sin ω∗ t e− 2Q .
2 2
(1 − ωD ) +
ωD ω∗ 2Q 2Q (1 − ω 2 )2 + D2
ω
Q2 D Q
(1.14)
En d’autres termes l’orbite du systéme dans l’espace de phase est une ellipse. Le
mouvement est périodique avec une période égale á la période de la force motrice.
Cette ellipse est aussi appelé un attracteur périodique parce quelles que soient les
conditions initiales la trajectoire du systéme va tendre á cette ellipse dans la limite
des temps grandes t −→ ∞.
Remarquons également que le déplacement angulaire maximal est F̃D . La fonc-
tion F̃D = F̃D (ωD ) présente un comportement de résonance quand la fréquence
approche la fréquence naturelle qui est équivalente á la limite ωD −→ 1. Dans
cette limite F̃D = QFd . La largeur de la fenêtre de résonance est proportionnelle
á 1/Q. Par conséquent pour Q −→ ∞ nous observons que F̃D −→ ∞ quand
ωD −→ 1 tandis que pour Q −→ 0 nous observons F̃D −→ 0 quand ωD −→ 1.
En général, la réponse asymptotique de tout systéme linéaire á une force externe
périodique est périodique avec la même période que la force motrice. En outre,
60 physique numérique, ydri et al.
Algorithme d’Euler-Cromer
Numériquement, nous pouvons employer l’algorithme d’Euler-Cromer, afin de ré-
soudre ce systéme d’équations différentielles. D’abord nous choisissons les condi-
tions initiales, par exemple
Ω(1) = 0
θ(1) = 0
t(1) = 0. (2.21)
Pour i = 1, ..., N + 1 nous utilisons
1
Ω(i + 1) = Ω(i) + ∆t − Ω(i) − sin θ(i) + F (i)
Q
θ(i + 1) = θ(i) + ∆t Ω(i + 1)
t(i + 1) = ∆t i. (2.22)
Algorithme de Runge-Kutta
Afin d’atteindre une meilleure précision nous employons l’algorithme de Runge-
Kutta. Pour i = 1, ..., N + 1, nous utilisons
k1 = ∆t Ω(i)
1
k3 = ∆t − Ω(i) − sin θ(i) + F (i)
Q
1
k2 = ∆t Ω(i) + k3
2
1 1 1 1
k4 = ∆t − Ω(i) + k3 − sin θ(i) + k1 + F (i + )
Q 2 2 2
(2.25)
θ(i + 1) = θ(i) + k2
Ω(i + 1) = Ω(i) + k4
t(i + 1) = ∆t i. (2.26)
1 1 1
F (i + ) ≡ F (t(i) + ∆t) = FD cos ωD ∆t(i − ). (2.29)
2 2 2
1 1 1
F (i + ) ≡ F (t(i) + ∆t) = FD sin ωD ∆t(i − ). (2.30)
2 2 2
7.3 Chaos
7.3.1 Effet Papillon:Sensibilité aux Conditions Initiales
La solution dans le régime linéaire (faible amplitude) s’écrit
θ = θ∞ + θt . (3.31)
Cela tend á zéro pour les temps larges t. L’asymptotique est donc donnée par
Le mouvement dans l’espace de phase est périodique avec une période égale á la
période de la force motrice. L’orbite dans l’espace de phase est précisément une
ellipse de la forme
Ω2∞
2
θ∞ + 2
= FD2 (a2 + b2 ). (3.34)
ωD
Nous considérons une perturbation des conditions initiales. Nous pouvons imag-
iner que nous avons deux pendules A et B avec conditions initiales légérement
différentes. Alors la différence entre les deux trajectoires est
Encore une fois cela tend á zéro pour les temps larges. Si nous traçons ln δθ en
fonction du temps, nous trouvons une ligne droite avec une pente négative. Le
mouvement asymptotique n’est pas sensible aux conditions initiales. Il converge
pour les temps larges vers θ∞ quelle que soit les conditions initiales. La courbe
θ∞ = θ∞ (ω∞ ) est appelé un attracteur (périodique). La raison est parce que
toute trajectoire perturbée va décroître de maniére exponentielle dans le temps á
l’attracteur.
Pour voir un comportement chaotique, nous pouvons par exemple augmenter
Q gardant tout le reste fixée. Nous observons que la pente de la droite ln δθ = λt
commence á diminuer jusqu’á ce qu’elle devient positif á une certaine valeur de Q.
A cette valeur la variation entre les deux pendules augmente de façon exponentielle
avec le temps. C’est le régime chaotique. La valeur de λ = 0 est la valeur oú le
chaos commence. Le coefficient λ est appelé exposant de Lyapunov.
Le pendule chaotique est un systéme déterministe (car il obéit á des équa-
tions différentielles ordinaires), mais il n’est pas prévisible dans le sens que, étant
donné deux pendules identiques, leurs mouvements divergent l’un de l’autre dans
le régime chaotique s’il y a la moindre erreur dans la détermination de leurs con-
ditions initiales. Cette hyper sensibilité aux conditions initiales est connu sous le
nom de l’effet papillon et pourrait être pris comme la définition du chaos lui-même.
Toutefois, le mouvement du pendule chaotioc n’est pas aléatoire. Cela peut
être vu en inspectant les sections de Poincaré.
se répète exactement une fois chaque période. C’est le seul mouvement possible
dans la limite de faible amplitude.
En général, un mouvement de période N correspond á une orbite du systéme
dynamique qui se répète chaque N périodes de la force extérieure. Ces orbites
existent dans le régime non-linéaire du pendule.
La section de Poincaré est définie comme suit. Nous tracons dans l’espace des
phases θ −Ω un seul point par période de la force motrice extérieure. Nous tracons
par exemple (θ, Ω) pour
ωD t = φ + 2πn. (3.36)
L’angle φ est appelée la phase de Poincaré et n est un entier. Pour un mouvement
de période 1 la section de Poincaré se compose d’un seul point. Pour un mouvement
de période N la section de Poincaré se compose de N points.
Ainsi, dans le régime linéaire si nous tracons (θ, Ω) pour ωD t = 2πn on obtient
un seul point, puisque le mouvement est périodique de période égale á celle de la
force motrice. Cette section de Poincaré est également un attracteur puisque les
orbites de tous les pendules qui ont presque les mêmes conditions initiales vont
converger sur ce point.
Dans le régime chaotique la section de Poincaré est un attracteur connu sous
le nom d’attracteur étrange. C’est une courbe compliquée qui pourrait avoir une
structure fractale et les orbites de tous les pendules qui ont presque les mêmes
conditions initiales vont converger sur cette courbe.
• La transition de fusion.
• Le taux d’équilibration.
• Le taux de diffusion.
Un traitement classique peut être justifiée comme suit. Nous considérons le cas
de l’Argon liquide comme un exemple. L’énergie nécessaire pour exciter un atome
d’Argon est de l’ordre de 10 eV tandis que l’énergie cinétique de centre de masse
68 physique numérique, ydri et al.
d’un atome d’Argon est de 0.1 eV. Ainsi, une collision entre deux atomes d’Argon
ne changera pas leurs configuration électronique. Par conséquent, nous pouvons
ignorer la structure interne des atomes d’Argon. En outre, la longueur d’onde
d’un atome d’Argon qui est de l’ordre de 10−7 A est beaucoup plus petit que
l’espacement entre les atomes d’Argon qui typiquement de l’ordre de 1 A, qui
justifie á nouveau un traitement classique.
dvi,x dxi
= ax,i , = vi,x . (2.1)
dt dt
dvi,y dyi
= ay,i , = vi,y . (2.2)
dt dt
Chaque atome d’Argon subit une force de tous les autres atomes d’Argon. Afin
de calculer cette force, nous avons besoin de déterminer le potentiel d’interaction.
Nous supposons que le potentiel d’interaction entre n’importe quelle paire d’atomes
d’Argon ne dépendent que de la distance entre eux. Soit rij et u(rij ) la distance et
le potentiel d’interaction entre les atomes i et j. Le potentiel total est alors donné
par
N
X −1 N
X
U= u(rij ). (2.3)
i=1 j=i+1
La forme précise de u peut être calculée á partir des premiers principes, á savoir
la mécanique quantique. Toutefois, ce calcul est trés compliqué et dans la plupart
des cas une forme phénoménologique de u sera suffisante.
Pour les grandes séparations rij , le potentiel u(rij ) doit être faiblement attractif
donné par la force de Van der Walls, qui découle de l’interaction électrostatique
entre les moments dipolaires électriques des deux atomes d’Argon. En d’autres
termes u(rij ) pour les grandes séparations est attractif en raison de la polarisation
mutuelle des deux atomes. Le potentiel de Van der Walls peut être calculé á
partir de la mécanique quantique oú il est montré qu’il varie comme 1/rij6 . Pour
les petites séparations rij , le potentiel u(rij ) doit devenir fortement répulsif en
physique numérique, ydri et al. 69
raison du chevauchement des nuages électroniques des deux atomes d’Argon. Cette
répulsion est une conséquence du principe d’exclusion de Pauli. Il s’agit d’une
pratique courante de choisir la partie répulsive du potentiel proportionnelle á 1/rij12 .
Le potentiel total prend la forme
12 6
σ σ
u(r) = 4ǫ − . (2.4)
r r
12 6
24ǫ σ σ
f~k,i = −∇
~ k,i u(rk,i) = 2 − r̂ki . (2.5)
rki rki rki
1 X 1 X yi − yk
ay,i = fk,i sin θk,i = fk,i
m k6=i m k6=i rki
12 6
24ǫ X yi − yk σ σ
= 2
2 − . (2.7)
m k6=i rki rki rki
if (y > Ly ) then y = y − Ly
if (y < 0) then y = y + Ly . (3.12)
La séparation maximale dans la direction x entre deux particules est seulement
Lx /2 tandis que la séparation maximale dans la direction y est seulement Ly /2.
Ceci peut être mis en œuvre comme suit
if (xij > Lx /2) then xij = xij − Lx
if (xij < −Lx /2) then xij = xij + Lx . (3.13)
physique numérique, ydri et al. 71
df 1 d2 f 1 d3 f
f (tn − ∆t) = f (tn ) − ∆t |tn + (∆t)2 2 |tn − (∆t)3 3 |tn + ... (3.16)
dt 2 dt 6 dt
En ajoutant ces expressions nous obtenons
d2 f
f (tn + ∆t) = 2f (tn ) − f (tn − ∆t) + (∆t)2 |t + O(∆t4 ). (3.17)
dt2 n
On remarque que l’erreur est proportionnelle á ∆t4 , c’est á dire cette méthode est
plus précise que les méthodes d’Euler, d’Euler-Cromer et Runge-Kutta de second
ordre. Nous avons donc pour l’atome i les équations
1 X xi,n − xk,n
ax,i,n = fk,i,n . (3.21)
m k6=i rki,n
1 X yi,n − yk,n
ay,i,n = fk,i,n . (3.22)
m k6=i rki,n
yi,n+1 − yi,n−1
vy,i,n = . (3.25)
2∆t
Notons que la méthode de Verlet ne peut pas auto-démarrer. En d’autres termes,
étant donné les conditions initiales xi,1 , yi,1 , vx,i,1 et vy,i,1 , nous devons aussi avoir
xi,2 , yi,2, vx,i,2 et vy,i,2 pour que l’algorithme de Verlet démarre correctement ce qui
peut être déterminé á l’aide de la méthode d’Euler.
1 1 1
kB T = < m~v 2 > . (4.26)
2 d 2
La moyenne <> peut être comprise de deux maniéres différentes mais équivalentes.
Nous pouvons suivre le mouvement d’un seul atome et prendre la moyenne dans
le temps de son énergie cinétique. Le même résultat peut être obtenu en prenant
la moyenne de l’énergie cinétique des différents atomes. Dans ce dernier cas, nous
écrivons
N
1 1 X1 2
kB T = m~v . (4.27)
2 dN i=1 2 i
Une autre façon de mesurer la température T d’un gaz dilué est á travers une étude
de la distribution des vitesses atomiques. Un gaz classique en équilibre thermique
physique numérique, ydri et al. 73
2 2
1 −
mvx 1 −
mvy
2
kB T = mvpeak . (4.30)
(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.
(3) Selon la premiére loi de Kepler l’orbite de n’importe quel planéte est une
ellipse avec le soleil á l’un des deux foyers. Dans la suite nous allons con-
sidérer les planétes qui ont des orbites circulaires avec une grande précision.
Ces planétes sont Vénus, Terre, Mars, Jupiter et Saturne. Les rayons en
unités astronomiques sont donnés par
Vérifiez que la premiére loi de Kepler est respecté par ces planétes.
Afin de répondre aux questions 2 et 3 ci-dessus nous prenons les conditions
initiales
La valeur choisie pour la vitesse initiale est trés important pour obtenir une
orbite correcte et doit être déterminé par exemple en supposant que l’orbite
est circulaire et par conséquent la force centrifuge est équilibrée par la force
d’attraction gravitationnelle. Nous obtenons v = GMs /a. Nous prenons le
pas et le nombre d’itérations ∆t = 0.01 yr , N = 103 − 104 .
physique numérique, ydri et al. 77
Partie II
(2) En changeant la vitesse initiale nous pouvons obtenir une orbite elliptique.
Vérifiez ce fait.
(3) Les lois fondamentales qui régissent le mouvement du systéme solaire sont
la loi d’attraction gravitationelle universelle de Newton et la deuxiéme loi
du mouvement de Newton. La loi d’ attraction universelle stipule que la
force entre le soleil et une planéte est inversement proportioanl au carré de
la distance entre eux. Nous supposerons maintenant que cette force est in-
versement proportionnelle á une puissance différente de la distance. Calculer
les orbites pour des puissances entre 1 et 3. Qu’est-ce que vous observez et
Qu’en concluez-vous.
78 physique numérique, ydri et al.
x0 = (1 + e)a , y0 = 0.
r
GMs 1 − e
vx0 = 0 , vy0 = .
a 1+e
Ainsi, Mercure est initialement au point le plus éloigné du Soleil, parce que
a est le demi-grand axe de Mercure (a = 0, 39 AU) et e est son excentricité
(e = 0, 206), et donc ea est la distance entre
√ le Soleil et le centre de l’ellipse.
Le demi-petit axe est défini par b = a 1 − e2 . La vitesse initiale a été
calculée á partir de l’application des principes de la conservation du moment
angulaire et de la conservation de l’énergie entre le point initial ci-dessus et
le point (0, b).
(2) Le taux de précession du périhélie de Mercure est trés petit, car α est trés
faible. En fait, il ne peut pas être mesurée directement dans une simulation
numérique avec un temps limité. Donc nous allons choisir une valeur plus
grande de α, par exemple α = 0, 0008 AU 2 . Nous allons travailler également
avec N = 20000 , dt = 0, 0001. Calculer l’orbite avec ces valeurs et l’angle θ
entre le vecteur position de Mercure et l’axe horizontal comme une fonction
physique numérique, ydri et al. 79
dr xvx + yvy
= .
dt r
Cette dérivé va s’annuler chaque fois Mercure atteint son point le plus éloigné
du Soleil ou son point le plus proche du soleil (périhélie). Tracer l’angle θp
faite entre le vecteur position de Mercure á son point le plus éloigné et
l’axe horizontal comme une fonction du temps. Qu’est-ce que vous observez.
Déterminer la pente dθp /dt qui est précisément la quantité de la précession
du périhélie de Mercure pour la valeur ci-dessus de α.
(1) Écrire un code qui réalise l’algorithme d’Euler-Cromer pour le pendule chao-
tique. Nous prendrons la fréquence angulaire g/l associé aux oscillations
p
Qu’est-ce que vous observez. Est-ce que les deux mouvements sont iden-
tiques. Qu’est-ce qui se passe pour les grands instants. Est-ce que le mou-
vement du pendule est prévisible. Pour la deuxième valeur de Fd utiliser
N = 10000 , dt = 0.01s.
(3) Une section de Poincaré est obtenue numériquement en traçant les points
(θ, Ω) de l’orbite qui correspondent aux instans oú la fonction sin πtνD est 0.
Ce sont les instants oú la fonction sin πtνD change de signe. Ils sont obtenus
par la commande
physique numérique, ydri et al. 83
(2) Calculer l’angle θ en fonction de Fd pour les temps t qui satisfont la condition
2πνD t = 2nπ. Nous prenons Fd dans l’intervalle
d2 θ 1 dθ
2
= − sin θ − + FD cos 2πνD t.
dt Q dt
Dans cette simulation, nous prenons les valeurs FD = 1.5 radian/s2 , 2πνD = 23 s−1 .
Afin d’atteindre une meilleure précision numérique, nous utilisons l’algorithme de
Runge-Kutta de deuxiéme ordre.
Dans le régime linéaire les orbites sont périodiques de période égale à la période
TD de la force motrice externe et sont symétriques sous θ −→ −θ. Il existe d’autres
solutions qui sont périodiques avec période égale TD , mais ne sont pas symétriques
sous θ −→ −θ. Dans ces solutions le pendule passe la majorité de son temps dans
la région á la gauche de son axe vertical (θ < 0) ou dans la région á la droite de
son axe vertical (θ > 0).
Ces solutions peuvent être décrites par un diagramme de bifurcation Ω = Ω(Q).
Pour chaque valeur du facteur de qualité Q on calcule la section de Poincaré.
Nous observons que la section de Poincaré se bifurquent à une valeur Q∗ de Q. En
dessous de cette valeur nous obtenons une ligne tandis qu’au-dessus de cette valeur
nous obtenons deux lignes correspondantes aux deux solutions dans lesquelles le
pendule passe la majorité de son temps dans les régions (θ > 0) et (θ < 0).
d2 xi 1 X xi − xk d2 yi 1 X yi − yk
2
= ax,i = fk,i , 2
= ay,i = fk,i .
dt m k6=i rki dt m k6=i rki
L’algorithme numérique que nous allons utiliser est l’algorithme de Verlet donné
par les équations
xi,n+1 = 2xi,n − xi,n−1 + (∆t)2 ax,i,n , yi,n+1 = 2yi,n − yi,n−1 + (∆t)2 ay,i,n .
if (xij > L/2) then xij = xij − L , if (xij < −L/2) then xij = xij + L
if (yij > L/2) then yij = yij − L , if (yij < −L/2) then yij = yij + L.
Dans ce probléme, nous prendrons toujours N impairs et N un carré parfait.
L’espacement du réseau est définie par
L
a= √ .
N
Il ya clairement N cellules d’aire a×a. Nous choisissons L et N tel√que a > 2σ. Les
positions initiales des atomes sont fixés comme suit. L’atome k = N(i−1)+j sera
placé au centre de la cellule avec des angles (i, j), (i+ 1, j), (i, j + 1) et (i+ 1, j + 1).
Ensuite, nous allons perturbé de façon aléatoire ces positions initiales en ajoutant
des nombres aléatoires dans l’intervalle [−a/4, +a/4] aux coordonnées x et y des
atomes.
Tracer T comme une fonction du temps. Prenez Time = 1000 − 1500. Quelle
est la température du gaz á l’équilibre.
v 2 − 2kmv2T
PMaxwell (v) = C e B .
kB T
Déduire la température á partir du pic de la distribution donnée par kB T =
2
mvpeak . Comparer avec la valeur de la température obtenue á partir du
théoréme de l’équipartition. Qu’arrive-t-il si on augmente la vitesse initiale.
1) Montrer qu’ avec ces conditions vous obtenez un solide cristallin avec un
réseau triangulaire.
2) Afin d’observer la fusion, nous devons chauffer le systéme. Ceci peut être
réalisé en augmentant l’énergie cinétique des atomes manuellement. Une
façon pratique de faire cela est de redimensionner les positions actuelles et
antérieures des atomes périodiquement (par exemple tous les 1000 étapes)
comme suit
hh = int(n/1000)
if (hh ∗ 1000.eq.n) then
x(i, n) = x(i, n + 1) − R(x(i, n + 1) − x(i, n))
y(i, n) = y(i, n + 1) − R(y(i, n + 1) − y(i, n))
endif.
Test Aléatoire : Soit r1 , r2 , ..., rN une séquence des nombres aléatoires. Un test
trés efficace de hasard est de faire un plot (diagramme) de dispersion (xi = r2i , yi =
r2i+1 ) pour un grand nombre des i. Il doit y avoir aucune régularité dans le plot
sinon la séquence n’est pas aléatoire.
Encore une fois, si xi et xi+j sont des nombres aléatoires indépendants qui sont
distribués avec la distribution de probabilité conjointe P (xi , xi+j ), alors
Z 1 Z 1
< xi xi+j >≃ dx dyxyP (x, y). (1.11)
0 0
Nous avons clairement supposer que N est grand. Pour une distribution uniforme,
à savoir P (x, y) = 1 nous obtenons
1
< xi xi+j >≃ . (1.12)
4
√
Pour une distrubution aléatoire l’écart de ce résultat est d’ordre 1/ N. Ainsi
dans le cas où les nombres aléatoires ne sont pas corrélés, nous avons
C(j) = 0. (1.13)
Nous prenons le cas de la diffusion des molécules des fluides. Par exemple
le mouvement des particules de poussiére dans l’atmosphére, le mouvement des
molécules de parfum dans l’air ou le mouvement des molécules de lait dans un
café. Ces mouvements sont tous des exemples de mouvement brownien.
Dans le cas d’une goutte de lait dans un café, la masse blanche de la goutte
de lait se propagera lentement jusqu’á ce que le café prend une couleur brune
uniforme. Au niveau moléculaire, chaque molécule du lait entre en collision avec
les molécules dans le café. Clairement, la goutte de lait change de direction si
souvent que son mouvement apparaît aléatoire. Cette trajectoire peut être décrite
par une marche aléatoire dite aussi une marche au hasard. Il s’agit d’un systéme
dans lequel chaque molécule du lait se déplace d’une seule étape á la fois dans
n’importe quelle direction avec une probabilité égale.
La trajectoire d’une molécule de poussiére, du parfum ou du lait n’est pas
vraiment aléatoire, car il peut en principe être calculé en résolvant les équations
du mouvement de Newton pour toutes les molécules qui nous permet alors de
connaître l’évolution du systéme dans le temps. Bien que cela est possible, en
principe, il n’est pas réalisable dans la pratique. La marche au hasard est donc
effectivement une approximation. Toutefois, le grand nombre de molécules et de
collisions dans le systéme rend la marche au hasard une trés bonne approximation.
N
X
xN = si . (2.14)
i=1
Les marcheurs pour p = q = 1/2 peuvent être générés en retournant une pièce de
monnaie N fois. La position est augmenté de a pour les faces et diminué de a pour
les piles.
La moyenne sur un nombre quleconque des marcheurs chacun de N étapes est
N
X
< xN >= < si >= N < s > . (2.15)
i=1
En haut, nous avons utilisé le fait que la moyenne de chaque étape est la même
donnée par
< si >=< s >= p(a) + q(−a) = (p − q)a. (2.16)
Pour p = q = 1/2 nous obtenons < xN >= 0. Une meilleure mesure de la marche
aléatoire est donnée par
N
X 2
x2N = si . (2.17)
i=1
Dans le premier terme, parce que i 6= j, nous avons < (si − < s >)(sj − < s >
) >=< (si − < s >) >< (sj − < s >) >. Mais < (si − < s >) >= 0. Ainsi
N
X
2
∆x = < (si − < s >)2 >
i=1
= N(< s2i > − < s >2 >)
= N(a2 − (p − q)2 a2 )
= 4Npqa2 . (2.20)
physique numérique, ydri et al. 99
Le point principal est que, parce que N est proportionnel au temps, nous avons
< x2N >∝ t. Ceci est un exemple d’un comportement diffusif.
a2
1
P (x, t) − P (x, t − τ ) = P (x + a, t − τ ) − 2P (x, t − τ )
τ 2τ
1
+ P (x − a, t − τ ) 2 . (2.24)
a
∂P (x, t) ∂ 2 P (x, t)
=D . (2.25)
∂t ∂x2
Ceci est l’équation de diffusion. Généralisation á 3− dimensions est
∂P (x, y, z, t)
= D∇2 P (x, y, z, t). (2.26)
∂t
Une solution particuliére de (2.25) est donnée par
1 − x22 √
P (x, t) = e 2σ , σ = 2Dt. (2.27)
σ
100 physique numérique, ydri et al.
En d’autres termes la distribution spatiale des molécules qui diffusent est toujours
√
une gaussienne avec une demi-largeur σ qui augmente avec le temps comme t.
La moyenne de n’importe quelle fonction f de x est donnée par
Z
< f (x, t) >= f (x)P (x, t)dx. (2.28)
Nous multiplions les deux côtés de (2.25) par f (x) et puis nous intégrons sur x, á
savoir
∂P (x, t) ∂ 2 P (x, t)
Z Z
f (x) dx = D f (x) dx. (2.29)
∂t ∂x2
Clairement
∂P (x, t) ∂ d d
Z Z Z
< f (x) >(2.30)
f (x) dx = f (x)P (x, t) dx = f (x)P (x, t)dx = .
∂t ∂t dt dt
Ainsi
d ∂ 2 P (x, t)
Z
< f (x) > = D f (x) dx
dt ∂x2
∂P (x, t) x=+∞ ∂f (x) ∂P (x, t)
Z
= D f (x) |x=−∞ − D dx. (2.31)
∂x ∂x ∂x
Nous avons P (x = ±∞, t) = 0 et aussi toutes les dérivées spatiales sont nuls á
x = ±∞. Nous obtenons alors
d ∂f (x) ∂P (x, t)
Z
< f (x) > = −D dx. (2.32)
dt ∂x ∂x
Nous choisissons f (x) = x. alors
d ∂P (x, t)
Z
< x > = −D dx = 0. (2.33)
dt ∂x
En d’autres termes < x >= constante. Mais parce que x = 0 á t = 0, nous devons
avoir constante = 0. Ainsi
< x >= 0. (2.34)
Maintenant nous choisissons f (x) = x2 . Alors
d ∂P (x, t)
Z
2
< x > = −2D x dx
dt ∂x
= 2D. (2.35)
Par conséquent
< x2 > = 2Dt. (2.36)
Ceci est le comportement diffusif nous avons observé dans le probléme de la marche
aléatoire.
physique numérique, ydri et al. 101
M
r = M mod a , q = [ ]. (3.41)
r
Dans l’équation ci-dessus [ ] désigne la partie entiére. Remarquons que
M
r = M mod a = M − [ ]a. (3.42)
a
102 physique numérique, ydri et al.
Ainsi, par définition, r < a. Nous allons également exiger que r < q. Alors
r
<< 1. (3.43)
qa
Nous avons également
aXi
Xi+1 = aXi mod M = aXi − [ ]M
M
aXi
= aXi − [ ]M. (3.44)
aq + r
Nous calculons
aXi Xi Xi 1
= =
aq + r q + ar r
q 1 + qa
Xi r
= (1 − )
q qa
Xi Xi r
= − . (3.45)
q aq q
Il est clair que
Xi Xi Xi
= ≃ < 1. (3.46)
aq M −r M
Alors
aXi Xi
[ ] = [ ], (3.47)
M q
si négligeant ǫ = (rXi )/(aq 2 ) n’affecte pas la partie entiére de aXi /M et
aXi Xi
[ ] = [ ] − 1, (3.48)
M q
si négligeant ǫ affecte la partie entiére de aXi /M. Par conséquent nous obtenons
aXi
Xi+1 = aXi − [ ](aq + r)
M
aXi aXi
= a(Xi − [ ]q) − [ ]r (3.49)
M M
Xi Xi
= a(Xi − [ ]q) − [ ]r (3.50)
q q
Xi
= a(Xi mod q) − [ ]r, (3.51)
q
physique numérique, ydri et al. 103
si
Xi
a(Xi mod q) − [ ]r ≥ 0. (3.52)
q
Aussi
aXi
Xi+1 = aXi − [ ](aq + r)
M
aXi aXi
= a(Xi − [ ]q) − [ ]r (3.53)
M M
Xi Xi
= a(Xi − [ ]q + q) − [ ]r + r (3.54)
q q
Xi
= a(Xi mod q) − [ ]r + M, (3.55)
q
si
Xi
a(Xi mod q) − [ ]r < 0. (3.56)
q
Le générateur RAN0 contient des corrélations sériel. Par exemple les vecteurs
á D dimensions (x1 , ..., xD ), (xD+1 , ..., x2D ), ..., qui sont obtenus par des appels
successifs de RAN0 va se résider sur un petit nombre de hyperplans paralléles á
D −1 dimensions. Environ il y aura M 1/D hyperplans. En particulier les séquences
des nombres aléatoires de longueur N ≥ 107 , qui est beaucoup plus moins que la
période M − 1, générés par RAN0 ne passent pas le test du chi-carré.
Le RAN1 est conçu de telle sorte que les corrélations trouvées dans RAN0
sont éliminées en utilisant l’algorithme de Bays-Durham. L’algorithme de Bays-
Durham brouille la séquence afin de supprimer les corrélations sériel faibles. En
d’autres termes il change l’ordre des nombres de sorte que la séquence devient
indépendante de l’ordre et un nombre donné n’est pas corrélée avec les nombres
précédents. Plus précisément, le j éme nombre aléatoire est émis non pas sur
l’appel j, mais sur un appel randomisé tard qui est l’appel j + 32 en moyenne.
Le RAN2 est une amélioration par rapport á RAN1 et RAN0 dú á de L’Ecuyer.
Il utilise deux séquences avec des périodes différentes afin d’obtenir une nouvelle
séquence avec une plus grande période égale á le plus petit commun multiple des
deux périodes. Dans cet algorithme, nous ajoutons les deux séquences modulo le
module M de l’un d’eux. Afin d’éviter un dépassement , nous allons soustraire
plutôt que d’ajouter et si le résultat est négatif, nous ajoutons M − 1 de maniére
á envelopper l’ inetrval [0, M − 1]. L’Ecuyer utilise les deux séquences
La période est de 2.3×1018 . Notons également que RAN2 utilise aussi l’algorithme
de Bays-Durham.
Nous concluons cette section en discutant un autre générateur basé sur la méth-
ode congruentiel linéaire qui est le fameux générateur de nombre aléatoire RAND
donné par
La période de ce générateur est 232 et la structure en treillis est présente pour les
dimensions supérieures D ≥ 6.
Intégration Monte Carlo
11
11.1 Intégration Numérique
11.1.1 Approximation Rectangulaire
Nous commençons par un examen de l’approximation rectangulaire des intégrales
en une seule dimension. Nous considérons l’intégrale
Z b
F = f (x)dx. (1.1)
a
Nous allons discrétiser l’intervalle [a, b] de tel sorte que nous nous retrouvons avec
N petits intervalles égales de longueur ∆x, á savoir
b−a
xn = x0 + n∆x , ∆x = (1.2)
N
Il est clair que x0 = a et xn = b. La définition de Riemann de l’intégrale est donnée
par la limite suivante
N
X −1
F = lim ∆x f (xn ) . (1.3)
∆x−→0 , N −→∞ , b−a=fixed
n=0
La premiére approximation que nous pouvons faire est de laisser tomber la limite.
Nous obtenons l’approximation que l’on appelle rectangulaire donnée par
106 physique numérique, ydri et al.
N
X −1
FN = ∆x f (xn ). (1.4)
n=0
L’erreur peut être calculé comme suit. Nous commençons avec le développement
de Taylor
1
f (x) = f (xn ) + (x − xn )f (1) (xn ) + (x − xn )2 f (2) (xn ) + ... (1.5)
2!
Ainsi
xn+1
1 (1) 1
Z
dx f (x) = f (xn )∆x + f (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (1.6)
xn 2! 3!
L’erreur dans l’intervalle [xn , xn+1 ] est
Z xn+1
1 1
dx f (x) − f (xn )∆x = f (1) (xn )(∆x)2 + f (2) (xn )(∆x)3 + ... (1.7)
xn 2! 3!
Ceci est de l’ordre de 1/N 2 . Mais nous avons N sous-intervalles. Ainsi, l’erreur
totale est de l’ordre de 1/N.
1
yi = ya + (i − )h , i = 1, ..., ny . (1.10)
2
Les nombres des points dans la direction x/y sont
xb − xa yb − ya
nx = , ny = . (1.11)
h h
physique numérique, ydri et al. 107
x −1
nX
xi + xi+1
F =h f( ) , xi = xa + ih. (1.18)
i=0
2
L’erreur totale est alors 1/n2x par comparison á 1/nx de l’approximation rectangu-
laire.
108 physique numérique, ydri et al.
Nous allons faire cet exercice en deux dimensions. Nous écrivons l’erreur comme
Z xi+1 Z yj+1
xi + xi+1 yj + yj+1
f (x, y) dx dy − f ( , )∆x∆y (1.20)
xi yj 2 2
′ ′ 1 ′′
f (x, y) = f (xi , yj ) + fx (xi , yj )(x − xi ) + fy (xi , yj )(y − yj ) + fx (xi , yj )(x − xi )2
2
1 ′′
(1.21)
′′
+ f (xi , yj )(y − yj )2 + fxy (xi , yj )(x − xi )(y − yj ) + ...
2 y
Nous trouvons
Z xi+1 Z yj+1
xi + xi+1 yj + yj+1 1 ′′
f (x, y) dx dy − f ( , )∆x∆y = fx (xi , yj )(∆x)3 ∆y
xi yj 2 2 24
1 ′′
+ f (xi , yj )∆x(∆y)3 + ...
24 y
(1.22)
Rd
Z
= dΩd−1
d
d
Rd 2π 2
= . (1.23)
d Γ( d2 )
physique numérique, ydri et al. 109
1 √
Γ(1) = 1 , Γ( ) = π , Γ(n + 1) = nΓ(n). (1.25)
2
Z +R Z
Vd = dxd dx1 ...dxd−1
−R x21 +...+x2d−1 ≤R2 −x2d
Z +R Z √R2 −x2 Z
d
d−2
= dxd r dr dΩd−2
−R 0
Vd−1 +R
Z
2 d−1
= dxd (R 2
− xd)
2 . (1.26)
Rd−1 −R
Un méthode de Monte Carlo est une procédure qui utilise des nombres aléatoires
pour calculer ou estimer l’intégrale ci-dessus. Dans ce qui suit, nous allons décrire
deux simples méthodes de Monte Carlo qui donnent une valeur approximative de
cette intégrale. Comme nous progressons, nous serons en mesure de donner des
méthodes plus sophistiquées de Monte Carlo.
110 physique numérique, ydri et al.
Z
F = dx dy f (x, y). (2.31)
R
Encore une fois nous considérons un rectangle de côtés yb −ya et xb −xa qui entoure
la région R. L’échantillon moyen dans ce cas s’écrit
physique numérique, ydri et al. 111
n
1X
F =A f (xi , yi )H(xi , yi ). (2.32)
n i=1
Les points xi sont aléatoire et réparties uniformément dans l’intervalle [xa , xb ] alors
que les points yi sont aléatoires et réparties uniformément dans l’intervalle [ya , yb ].
A est la surface du rectangle, c’est á dire A = (xb − xa )(yb − ya ). La fonction de
Heaviside est définie par
Généralisation aux dimensions supérieures est évident. Par exemple, dans trois
dimensions nous aurions
n
1X
Z
F = dx dy dz f (x, y, z) −→ F = V f (xi , yi , zi )H(xi , yi , zi ). (2.34)
R n i=1
n
1X
y1 =< xi >= xi p(xi ). (3.35)
n i=1
La question que nous voulons répondre est la suivante: quelle est la fonction de
distribution de probabilité de z.
De toute évidence la probabilité d’obtenir une valeur particuliére z est le pro-
duit des probabilités d’obtenir les moyennes individuelles yi (qui sont supposés
être indépendants) avec la contrainte que la moyenne de yi est z. Soit p̃(y) la
112 physique numérique, ydri et al.
Alors
1 q 2 σN
2
Z
P (z) = dqeiq(z−µ) e− 2N
2π
2
1 − 2σN2 (z−µ)2
Z σN
− 2N (q− σiN (z−µ))2
= e N dqe N
2π
(z−µ)2
−
2Σ2
1 e N
= √ . (3.42)
2π ΣN
σN
ΣN = √ . (3.43)
N
physique numérique, ydri et al. 113
Ceci est la distribution normale. De toute évidence le résultat ne dépend pas des
fonctions originales de distribution de probabilités p(x) et p̃(y).
La moyenne z de N nombres aléatoires yi correspondant á une fonction de
distribution de probabilité p̃(y) est réparti selon la fonction de distribution de
probabilité normale avec une moyenne égale á√la valeur moyenne de p̃(y) et une
variance égale á la variance de p̃(y) divisé par N.
N
1 X
FN = (b − a) < f > , < f >= f (xi ). (4.45)
N i=1
∆ = F − FN . (4.46)
N
1 X
y= f (xi ). (4.47)
N i=1
s
(z− < y >)2
M
2
exp −M 2
. (4.50)
2πσ̃M 2σ̃M
L’écart-type (la déviation standard) de la moyenne σ̃M est donnée par la racine
carrée de la variance
M
1 X
2
σ̃M = (yα − < y >)2 . (4.51)
M − 1 α=1
L’écart type (déviation standard) de f (x) pour un seul ensemble de mesures avec
N points de données est donnée par
N
1 X
2
σ̃ = (f (xi )− < f >)2 . (4.53)
N − 1 i=1
Encore une fois, parce que N est grand, on peut remplacer σ̃ avec l’écart-type
(déviation standard) σ définie par
N
1 X
2
σ = (f (xi )− < f >)2 =< f 2 > − < f >2 . (4.54)
N i=1
N N
1 X 1 X
< f >= 2
f (xi ) , < f >= f (xi )2 . (4.55)
N i=1 N i=1
M N M N
1 XX 1 XX
< f >= 2
f (xi,α ) , < f >= f (xi,α )2 . (4.58)
NM α=1 i=1 NM α=1 i=1
Dans l’équation ci-dessus, nous avons utilisé le fait que < y >=< f >. Pour
chaque set α la somme sur j et i se divise en deux morceaux. Le premier est
la somme sur les éléments de la diagonale avec i = j et le second est la somme
sur les éléments hors diagonaux avec i 6= j. Il est clair que f (xi,α )− < f > et
f (xj,α )− < f > sont en moyenne aussi positive et négative et, par conséquent,
pour des grand nombres M et N les termes hors diagonaux s’annuleront et nous
nous retrouvons avec
M N 2
2 1 XX
σM = f (xi,α )− < f >
N 2 M α=1 i=1
σ2
= . (4.60)
N
L’écart-type de la moyenne σM peut donc être interprétée comme l’erreur probable
dans les N mesures originales. Ceci est parce que si nous faisons M ensembles des
mesures chacun avec N échantillons, l’écart-type de la moyenne σM permettra
d’estimer combien mesures sur les N s’écartont de la moyenne exacte.
Plus précisément la mesure originale Fn de l’intégrale F a une chance de 68
pour cent d’être dans les limites d’ un écart-type σM de la vraie moyenne, et une
chance de 95 pour cent d’être á l’intérieur de 2σM et une chance de 99.7 pour cent
d’être á l’intérieur de 3σM . En général, la proportion des valeurs de données qui
sont dans les limites de z écart-types de la vraie moyenne est définie par la fonction
d’erreur
<y>+zσM √z
(y− < y >)2
1 2 z
Z Z
2
exp −x2
p exp − 2
dy = √ dx = erf( √ ).
<y>−zσM
2
2πσM 2σM π 0 2
(4.61)
i−1
X i
X
pj ≤ r ≤ pj . (5.62)
j=1 j=1
Dans
Pn la limite continue, on remplace la probabilité pi avec p(x)dx. La condition
i=1 pi = 1 devient
Z +∞
p(x) dx = 1. (5.63)
−∞
Z x
(5.64)
′ ′
P (x) ≡ p(x ) dx = r
−∞
Alors
Ainsi, étant donné les nombres aléatoires uniformes r, nous pouvons calculer di-
rectement en utilisant la formule ci-dessus les nombres aléatoires x qui sont dis-
x
tribués selon la fonction de distribution de Poisson p(x) = λ1 e− λ .
L’exemple suivant est la distribution Gaussienne en deux dimensions
1 − x2 +y2 2
p(x, y) = e 2σ . (5.68)
2πσ 2
Nous pouvons immédiatement calculer que
Z +∞ Z +∞ Z 1 Z 1
1 2
− x +y
2
dx dy e 2σ 2
= dw dv. (5.69)
2πσ 2 −∞ −∞ 0 0
Nous considérons les systémes physiques qui sont en contact thermique avec un
environnement. L’environnement est généralement beaucoup plus grande que le
systéme physique d’intérêt et par conséquence l’échange d’énergie entre les deux
ne changera pas la température de l’environement. L’environement est appelé un
bain ou un réservoir de chaleur. Lorsque le systéme atteigne l’équilibre avec le bain
de chaleur sa température sera donnée par la température du bain de chaleur.
Un systéme á l’équilibre avec un bain de chaleur est décrit statistiquement par
l’ensemble canonique dans lequel la température est fixée. En revanche un systéme
isolé est décrit statistiquement par l’ensemble microcanonique dans lequel l’énergie
est fixé. La plupart des systémes dans la nature ne sont pas isolés, mais sont en
contact thermique avec l’environnement. Il s’agit d’un résultat fondamental de la
mécanique statistique que la probabilité de trouver un systéme en équilibre avec
un bain de chaleur á la température T dans un micro-état s avec énergie Es est
donnée par la distribution de Boltzmann
120 physique numérique, ydri et al.
1 −βEs 1
Ps = e , β= . (1.1)
Z kT
La constante de normalisation connstant Z est la fonction de partition. Elle est
définie par
X
Z= e−βEs . (1.2)
s
La somme est sur tous les micro- états du systéme avec N et V fixés. L’énergie
libre de Helmholtz F d’un systéme est donné par
F = −kT ln Z. (1.3)
Dans l’équilibre l’énergie libre est minimale. Toutes les autres grandeurs ther-
modynamiques peuvent étre données par différentes dérivées de F . Par exemple,
l’énergie interne U du systéme qui est la valeur moyenne de l’énergie peut être
exprimée en termes de F comme suit
X 1X ∂ ∂
U =< E >= Es Ps = Es e−βEs = − ln Z = (βF ). (1.4)
s
Z s ∂β ∂β
N
1 X f (xi )
FN = . (2.9)
N i=1 p(xi )
La distribution de probabilité p(x) est choisi de telle sorte que la fonction f (x)/p(x)
est lentement variable ce qui réduit l’écart-type correspondant.
X N
X
EI {si } = − ǫij si sj − H si . (3.10)
<ij> i=1
X N
X
EI {si } = −ǫ si sj − H si . (3.11)
<ij> i=1
Pn −βEs
s=1 As e
< A > ≃ < A >n = P n −βEs
. (4.16)
s=1 e
physique numérique, ydri et al. 123
Le calcul de < E >n et < A >n procède donc par 1) choisissant au hasard un
micro état s, 2) calculer Es , As et e−βEs puis 3) évaluant la contribution de ce
micro-état aux valeurs moyennes < E >n et < A >n . Cette procédure général de
Monte-Carlo est trés inefficace puisque le micro-état s est trés improbable et donc
sa contribution aux valeurs moyennes est négligeable. Nous avons besoin d’utiliser
l’échantillonnage d’importance. Á cette fin, nous introduisons une distribution de
probabilité ps et réécrire la valeur moyenne < A > sous la form
As −βEs
P
s ps e ps
< A >= P 1 −βE . (4.17)
s ps e
sp
s
Maintenant, nous générons des micro-états s avec des probabilités ps et nous esti-
mons < A > avec < A >n donnée par
Pn As −βEs
s=1 p e
< A >n = Pn 1s −βE . (4.18)
s=1 ps e
s
L’algorithme de Metropolis, dans le cas des systèmes de spin tels que le modèle
d’Ising, peut être résumé comme suit
1) Choisissez un micro-état initial.
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.
La démonstration que cet algorithme conduit en effet á une séquence d’états qui
sont distribués en fonction de la distribution de Boltzmann va comme suit.
Il est clair que les étapes 2) á 7) correspondent á une probabilitĂŠ de transition
entre les micro-états {si } et {sj } donnée par
Puisque seulement le rapport des probabilités w = e−β∆E est exigé, il n’est pas
nécessaire de normaliser la distribution de probabilité de Boltzmann. Il est clair
que cette fonction de probabilité satisfait á la condition de bilan détaillé
Toute autre fonction de probabilité W qui satisfait á cette condition va générer une
séquence d’états qui sont distribués en fonction de la distribution de Boltzmann.
Cela peut être démontréPcomme suit. En sommant sur l’indice j dans l’équation
ci-dessus et en utilisant j W (i −→ j) = 1, nous obtenons
X
e−βEi = W (j −→ i) e−βEj . (4.23)
j
1
W (i −→ j) = min(1, ) , ∆E = Ej − Ei . (5.24)
1 + eβ∆E
Cette probabilité d’acceptation satisfait également la condition de bilan détaillé
pour la distribution de probabilité de Boltzmann. En d’autres termes la condition
d’équilibre qui est suffisante mais pas nécessaire pour un ensemble pour atteindre
l’équilibre n’a pas de solution unique.
Le systéme est supposé être en équilibre avec un bain de chaleur avec température
T . L’équilibre thermique du modèle d’Ising est décrit par l’ensemble canonique.
La probabilité de trouver le modèle d’Ising dans une configuration {s1 , ..., s2N } est
donnée par la distribution de Boltzmann
e−βE{s}
P {s} = . (6.26)
Z
La fonction de partition est donnée par
X X X
Z= e−βE{s} = ... e−βE{s} . (6.27)
{s} s1 s2N
L’aimantation M dans une configuration {s1 , ..., s2N } est le paramètre d’ordre du
système. Elle est définie par
X
M= si . (6.28)
i
126 physique numérique, ydri et al.
En-dessus d< si >=< s > puisque tous les spins sont équivalentes. Nous avons
1 ∂ log Z ∂F
< M >= =− . (6.30)
β ∂H ∂H
Afin de calculer < M > nous avons besoin de calculer Z. Dans cette section, nous
utilisons l’approximation du champ moyen. D’abord, nous réécrivons l’énergie
E{s} sous la forme
X X
E{s} = −(J sj )si − H si
<ij> i
X X
= i
Heff si −H si . (6.31)
i i
L’indice j(i) parcourt les quatre plus proches voisins du spin i. Dans l’approximation
du champ moyen, nous remplaçons les spins sj(i) par leur moyenne thermique
< s >. Nous obtenons
i
Heff = −γJ < s > , γ = 4. (6.33)
En d’autre termes
X X
E{s} = −(H + γJ < s >) si = Heff si (6.34)
i i
L’aimantation devient
Il est clair que < s >= 0 est toujours une solution. Il s’agit de la phase paramag-
nétique á haute température. Pour des températures petite nous avons aussi une
solution < s >6= 0. Il s’agit de la phase ferromagnétique. Il doit exister une tem-
pérature critique Tc qui sépare les deux phases. Nous nous attendons que < s >
approche < s >= 0 quand T tend á Tc par dessous. En d’autres termes prés de
Tc nous pouvons traiter < s > en tant que petit et par conséquent nous pouvons
utiliser l’expansion tanh x = x − 31 x3 . Nous obtenons
1 3
< s >= γβJ < s > − γβJ < s > . (6.40)
3
De façon équivalente
3 1 γJ
2
(6.41)
<s> <s> − −T = 0.
T (γβJ)3 kB
Nous obtenons les deux solutions
F = −kT N ln 2 cosh γβJ < s > . (6.44)
128 physique numérique, ydri et al.
Nous voyons que, pour T < Tc la solution ferromagnétique a une énergie libre
inférieure á la solution paramagnétique < s >= 0. La phase T < Tc est en effet
ferromagnétique. La transition á T = Tc est du second ordre. L’énergie libre
est continue en T = Tc , c’est á dire il n’y a pas de chaleur latente alors que la
chaleur spécifique est logarithmiquement divergente. La théorie du champ moyen
donne la valeur correcte 0 pour l’exposant critique α, bien qu’il ne reproduit pas
la divergence logarithmique. La susceptibilité diverge á T = Tc avec un exposant
critique γ = 1. Ces derniers faits peuvent étre demontrés comme suit. La chaleur
spécifique est donnée par
∂ 2 ∂
Cv = − kB T (βF )
∂T ∂T
2
∂ 2 ∂
= −2kB T (βF ) − kB T (βF ). (6.45)
∂T ∂T 2
Ensuite, nous utilisons l’expression β = F − N ln(ex + e−x ) oú x = γβJ < s >.
Nous trouvons
Cv ∂x ∂2x 1 ∂x 2
= 2kB T tanh x + kB T 2 tanh x 2 + kB T 2 2 ( ) . (6.46)
N ∂T ∂T cosh x ∂T
Nous calculons
s s s
2
3kB 1 ∂x 1 3kB 1 ∂ x 1 3kB 3
x=± (Tc − T ) 2 , =∓ (Tc − T )− 2 , 2
=∓ (Tc − T )− 2 .
γJ ∂T 2 γJ ∂T 4 γJ
(6.47)
Il n’est pas difficile de montrer que les termes divergents s’annulent et par con-
séquence
Cv
∼ (Tc − T )−α , α = 0. (6.48)
N
La susceptibilité est donnée par
∂
χ= <M >. (6.49)
∂H
Pour calculer le comportement de χ prés de T = Tc nous considérons l’équation
< s >= tanh(γβJ < s > +βH). (6.50)
Pour un champ magnétique faible, nous pouvons toujours supposer que γβJ <
s > +βH est petit prés de T = Tc et par conséquent nous pouvons développer
l’équation ci-dessus comme
1
< s >= (γβJ < s > +βH) − (γβJ < s > +βH)3. (6.51)
3
physique numérique, ydri et al. 129
En prenant la dérivée par rapport á H des deux côtés de cette équation, nous
obtenons
∂
χ̂ = <s>. (6.53)
∂H
Fixant le champ magnétique á zéro on obtient
En d’autre termes
1 − γβJ + γβJ(γβJ < s >) χ̂ = β − β(γβJ < s >)2 .
2
(6.55)
Tc − T 1
2 χ̂ = (1 − (γβJ < s >)2 ). (6.56)
T kB T
Ainsi
1
χ̂ = (Tc − T )−γ , γ = 1. (6.57)
2kB
N −k
1 X
< xi+k >= xi+k .
N − k i=1
Nous prenons N nombres aléatoires dans l’intervalle [0, 1] qui est divisé en K bins
de longueur δ = 1/K. Soit Ni le nombre de nombres aléatoires qui tombent dans
le bin i. Pour une séquence uniforme de nombres aléatoires le nombre de nombres
aléatoires dans chaque bin est
N
nideal = .
K
1) Vérifier ce résultat pour le générateur "rand" trouvé dans la bibliothéque
standard de Fortran avec une graine donnée par seed = 32768. Nous prenons
K = 10 et N = 1000. Plot Ni en fonction de la position xi de bin i.
1
p=q= , a = 1.
2
Afin de simuler le mouvement d’un marcheur aléatoire, nous avons besoin d’un
générateur de nombres aléatoires. Dans ce probléme, nous travaillons avec le
générateur "rand" trouvé dans la bibliothéque standard de Fortran. Nous appelons
ce générateur comme suit
call srand(seed)
rand()
seed = 32768.
K
1 X (i)
< xN >= x .
K i=1 N
physique numérique, ydri et al. 135
K
1 X (i) 2
< x2N >= (x ) .
K i=1 N
(i)
Dans les équations ci-dessus xN est la position du marcheur aléatoire i aprés
N pas. Etudier le comportement de ces moyennes en fonction de N. Com-
parer avec les prédictions théoriques.
Z
Vd = dx1 ...dxd
x21 +...+x2d ≤R2
Z q
= 2 dx1 ...dxd−1 R2 − x21 − ... − x2d−1
d
Rd 2π 2
= .
d Γ( d2 )
+R
Vd−1
Z
d−1
Vd = dxd (R2 − x2d ) 2 .
Rd−1 −R
Z q
Vd = 2 dx1 ...dxd−1 R2 − x21 − ... − x2d−1 .
Partie II (optionnel)
1) La valeur de π peut être donnée par l’intégrale
Z
π= dx dy.
x2 +y 2 ≤R2
Utilisez la méthode de rejet de Monte Carlo pour donner une valeur approx-
imative de π.
2) L’intégrale ci-dessus peut également être mis sous forme
Z +1 √
π=2 dx 1 − x2 .
−1
1 (x − µ)2
P (x) = √ exp − .
2πσ 2 2σ
x = r cos φ.
r 2 = −2σ 2 ln v , φ = 2πw.
3) Tracer les données sur une échelle logarithmique, i.e. tracer log(fraction) par
rapport á x2 . Trouver le fit et comparer avec la théorie.
physique numérique, ydri et al. 139
Partie II (optionnel)
X X
E = −J si sj − H si .
<ij> i
L
J X
E = − φ(i, j) φ(i + 1, j) + φ(i − 1, j) + φ(i, j + 1) + φ(i, j − 1)
2 i,j=1
X
− H φ(i, j).
i=1
∆E = 2Jφ(i, j) φ(i + 1, j) + φ(i − 1, j) + φ(i, j + 1) + φ(i, j − 1)
+ 2Hφ(i, j).
physique numérique, ydri et al. 141
φ(i, j) = +1.
4) Ajouter une évolution de Monte Carlo avec TTM = 210 et calculer les
moyennes de E et M.
6) Déterminer le √
point critique. Comparez avec le résultat théorique exacte
kB Tc = 2J/ln( 2 + 1).
χ −γ 7
∼ |T − Tc | , γ = .
L2 4
Déterminer γ numériquement. Utilisez TTH = 210 , TMC = 213 , L = 30 avec T
dans la gamme suivante
Vérifiez ce fait. Dans cette question nous prenons LL = 20, TTH = 210 ,
TTC = 215 et les températures
Nous considérons une machine de 32 bits. Puisque 1≤m < 2, nous devons avoir
b0 = 1. Nous disons que cette expansion binaire est normalisée. Dans le cas d’une
précision simple, nous utilisons un mot de longueur 32 bits avec un des bits pour le
signe, 8 bits pour l’ exposant e et 23 bits pour la mantisse m. Parce que seulement
8 bits sont utilisés pour stocker l’exposant nous devons avoir e dans la gamme
0≤e≤255. Le paramétre bias est choisi de tel sorte que l’exposant est dans la
gamme −127≤e − bias≤128. En d’autre termes nous choisissons bias = 127. De
cette façon, nous pouvons avoir de trés petits nombres avec des exposants toujours
positifs. Puisque le premier bit de la mantisse est 1 les bits stockés de la mantisse
sont seulement b1 b2 ...b23 . Si b24 , b25 , .. ne sont pas tous nuls la représentation en
virgule flottante n’est pas exacte. Strictement parlant un nombre á virgule flottante
est un nombre pour lequel b24 = b25 = ..0. La représentation en virgule flottante
d’un certain nombre réel non nul est unique en raison de la condition 1≤m < 2.
En résumé, le nombre réel ci-dessus est représenté sur l’ordinateur par
Ces nombres sont les nombres á virgule flottante normaux. Le point binaire peut
être déplacé (il est flottant) vers n’importe quelle position dans la chaîne de bits
en choisissant un exposant approprié.
Le nombre normalisé le plus petit est 2−126 . Les nombres á virgule flottante
sous-normaux sont représentées par
xsubnormal float = (−1)s 0.f × 2−126 . (1.3)
Ces nombres ne sont pas normalisées. En fait l’espace compris entre 0 et le plus
petit nombre positif normalisé est rempli par les nombres sous-normaux.
Explicitement nous avons
s e f
bit 31 30-23 22-0
Puisque seulement un nombre fini de bits est utilisé, l’ensemble des nombres de
la machine (les nombres que l’ordinateur peut stocker exactement ou approxi-
mativement) est beaucoup plus petit que l’ensemble des nombres réels. Il y a
un maximum et un minimum. En dépassant le maximum on obtient la condition
d’erreur connue sous le nom de overflow (débordement). En dépassant le minimum
nous obtenons la condition d’erreur connue sous le nom underflow.
Le plus grand nombre correspond au nombre normal flottant avec s = 0, e =
254 et 1.f = 1, 111..1 (avec 23 1 aprés le point binaire). Nous calculons 1.f =
1 + 0.5 + 0.25 + 0.125 + ... = 2. Ainsi xnormal float max = 2 × 2127 ≃ 3.4 × 1038 .
Le plus petit nombre correspond au nombre sous-normal flottant avec s = 0 et
0.f = 0.00...1 = 2−23 . Ainsi xsubnormale float min = 2−149 ≃ 1.4 × 10−45 . Nous
obtenons pour les nombres flottants avec précision simple la gamme
Ainsi les nombres flottants avec précision simple ont 7 places décimales d’importance.
Il y a des cas spéciaux. Le zéro ne peut pas être normalisée. Il est représenté
par deux nombres flottants ±0. Aussi ±∞ sont des nombres spéciaux. Enfin NaN
(pas un nombre) est également un cas particulier. Explicitement, nous avons
±0 = (−1)s 0.0...0 × 2−126 . (1.6)
s e f f
bit 63 62-52 51-32 31-0
Dans ce cas, bias = 1023. Ils correspondent á peu prés á 16 place décimales de
précision. Ils sont dans la gamme
ǫa = ǫb + ǫc . (2.14)
Ceci est l’estimation la plus conservatrice de l’erreur d’arrondi. Les erreurs d’arrondi
sont analogues aux incertitudes dans les mesures des grandeurs physiques.
Il y a naturellement une concurrence entre les deux types d’erreurs. Pour les
petites N, c’est l’erreur systématique qui domine tandis que pour les grandes N
c’est l’erreur d’arrondi qui domine. C’est trés intéressant parce que cela signifie
que, en essayant de diminuer l’erreur systématique (en augmentant N), nous allons
augmenter l’erreur d’arrondi. Le meilleur algorithme est l’algorithme qui donne
une approximation acceptable dans un petit nombre d’étapes de sorte qu’il n’y
aura pas de temps pour les erreurs d’arrondi de croître trop.
A titre d’exemple, considérons le cas β = 2 et α = 1. L’erreur totale est
1 √
ǫtot = + Nǫm . (3.18)
N2
Cette erreur est minimal lorsque
dǫtot
= 0. (3.19)
dN
Pour le calcul avec précision simple (ǫm = 10−7 ), nous obtenons N = 1099. Ainsi
ǫtot = 4 × 10−6 . La plupart de l’erreur est arrondi.
Afin de diminuer l’erreur d’arrondi et donc l’erreur totale dans l’exemple ci-
dessus, nous devons réduire le nombre d’étapes. De plus, pour que l’erreur systé-
matique n’augmente pas quand on diminue le nombre d’étapes nous devons trouver
un autre algorithme qui converge rapidement avec N. Pour un algorithme avec
α = 2 et β = 4 l’erreur totale est
2 √
ǫtot = + Nǫm . (3.20)
N4
Cette erreur est minimale maintenant á N = 67 pour lequel ǫtot = 9 × 10−7 . Nous
avons seulement 1/16 le nombre original d’étapes avec une erreur 4 fois plus petite.
154 physique numérique, ydri et al.
C
Exercices
dv
= a − bv. (0.2)
dt
• Écrivez les solutions exactes.
d2 z
= −g. (0.7)
dt2
dN
= aN − bN 2 . (0.8)
dt
Exercice 6: Le modèle de Lorenz est un système chaotique donnée par les trois
équations différentielles de premier ordre couplés:
dx
= σ(y − x)
dt
dy
= −xz + rx − y
dt
dz
= xy − bz. (0.9)
dt
physique numérique, ydri et al. 157