Académique Documents
Professionnel Documents
Culture Documents
J IMMY R OUSSEL
2021
femto-physique.fr/analyse-numerique
Cours d’introduction à l’analyse numérique – femto-physique.fr
J IMMY R OUSSEL, professeur agrégé à l’Ecole Nationale Supérieure de Chimie de
Rennes
Jimmy Roussel
Table des matières
Preface iii
2 MÉTHODES DE RUNGE-KUTTA 9
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Retour sur Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Les schémas de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 LA MÉTHODE DE VERLET 15
3.1 Algorithmes de Verlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 MÉTHODE D’EULER-RICHARDSON 21
4.1 Schéma d’Euler-Richardson . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Mouvement képlérien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
A NNEXES 35
A LES ERREURS NUMÉRIQUES 37
Notations 39
Table des figures
1.1 Généralités
L’approche numérique
Travail préliminaire
Simplifier
d𝑣
𝑚 = −𝛼𝑣 + 𝑚𝑔 avec 𝑣(0) = 0
d𝑡
d𝑣 ∗
= 1 − 𝑣∗ avec 𝑣 ∗ (0) = 0
d𝑡 ∗
Notez que cette équation différentielle est celle que nous aurions ob-
tenue en faisant 𝑚 = 1 et 𝑔 = 1 et 𝛼 = 1. Finalement, on retiendra que
lorsque l’on rend unitaire des paramètres physiques, cela équivaut à
2. Il faut juste prendre garde à rendre définir un nouveau jeu d’unités2 .
unitaire des paramètres de dimensions
indépendantes.
1.2 La méthode d’Euler 5
Algorithme d’Euler
Algorithme d’Euler
d𝑣 ∗
= 1 − 𝑣∗ avec 𝑣 ∗ (0) = 0
d𝑡 ∗
et le schéma itératif (1.2) donne :
(
𝑣 ∗𝑛+1 = 𝑣 ∗𝑛 + ℎ(1 − 𝑣 ∗𝑛 )
𝑣 ∗0 = 0
𝑣 ∗1 = 𝑣 ∗0 + ℎ(1 − 𝑣 ∗0 ) = ℎ
Euler : ℎ = 0, 2 Euler : ℎ = 0, 02
solution exacte solution exacte
𝑣∞ 𝑣∞
𝑣(𝑡)
𝑣(𝑡)
𝜏 𝜏
𝑡 𝑡
𝑣 𝑣∞
F IGURE 1.1 – Solution numérique de l’équation 𝑣¤ + 𝜏 = 𝜏 avec 𝑣 (0) = 0. À gauche, le pas vaut 0,2, à droite 0,02 (1 point sur 10 est
représenté)
1.2 La méthode d’Euler 7
2
p
𝜔0
= 𝑔/ℓ
𝜃¥ = −𝜔0 2 sin 𝜃 avec 𝜃 (0) = 𝜃0
𝜃¤ (0)
= 0
𝜃 (𝑡)
On peut constater sur le résultat de la Figure 1.3 un autre défaut de
𝜃0
la méthode d’Euler : bien que le système étudié soit conservatif, le
schéma d’Euler ne respecte pas la conservation de l’énergie. En ef-
fet, en vertu des lois de la mécanique, l’amplitude des oscillations
𝑡
𝜋 2𝜋 3𝜋 4𝜋 doit rester constante, contrairement à ce que l’on observe. Plus pré-
cisément, l’énergie mécanique du pendule simple à l’instant 𝑡 𝑛 est
proportionnelle à 𝐸 𝑛 = 12 𝜔2𝑛 − cos 𝜃 𝑛 . Or, à partir de la récurrence (1.3),
on obtient
1 1
F IGURE 1.3 – Solution 𝜃 (𝑡) avec un pas 𝐸 𝑛+1 = 𝐸 𝑛 + ℎ2 𝜔2𝑛 cos 𝜃 𝑛 + sin2 𝜃 𝑛
ℎ = 0, 05 et 𝜃0 = 45◦ (1 point sur 10 est 2 2
représenté).
Par conséquent, puisque le terme 1/2𝜔2𝑛 cos 𝜃 𝑛 + 1/2 sin2 𝜃 𝑛 est positif
en moyenne, il en découle une dérive positive de l’énergie quel que soit
le pas. Autrement dit, le comportement à long terme est mal décrit4
4. Sur femto-physique.fr on trouve une . En pratique, lorsque l’on met en place une résolution numérique
simulation qui illustre cette dérive. d’un système conservatif, on fait plutôt appel à l’algorithme de Verlet5
5. Voir Chapitre 3. particulièrement adapté dans le sens où elle conduit à une dérive de
l’énergie faible aux temps longs.
Conclusion
2.1 Introduction
d𝑦
0≤𝑡 ≤𝑇
= 𝑓 (𝑡, 𝑦(𝑡)),
d𝑡
𝑦(0)
= 𝑦0
Euler explicite
Euler explicite L’intégrale (2.1) peut s’approcher par la méthode du rectangle à gauche :
∫ 𝑡𝑛+1
𝑓 (𝑡, 𝑦 (𝑡))
𝑓 (𝑡, 𝑦(𝑡)) d𝑡 ' ℎ × 𝑓 (𝑡 𝑛 , 𝑦(𝑡 𝑛 ))
erreur 𝑡𝑛
Euler implicite
𝑦 𝑛+1
= 𝑦 𝑛 + ℎ 𝑓 (𝑡 𝑛 , 𝑦 𝑛+1 )
(2.4)
𝑦0 = 𝑦(0)
ℎ
𝑡
𝑡𝑛 𝑡𝑛+1
Notez que dans ce cas, 𝑦 𝑛+1 est présent dans le terme de gauche et celui
F IGURE 2.2 – Méthode d’intégration sui-
vant le schéma d’Euler implicite. de droite. Contrairement à la méthode d’Euler explicite, la grandeur
recherchée 𝑦 𝑛+1 est reliée à une fonction qui dépend de cette même
grandeur. Autrement dit, 𝑦 𝑛+1 est défini implicitement d’où le nom
de la méthode. Il faut donc résoudre l’équation implicite à chaque
étape ce qui demande l’emploi d’un algorithme annexe (dichotomie,
algorithme de Newton-Raphson, etc.).
Cette méthode, comme on le voit graphiquement, produit une erreur
opposée à celle de la méthode d’Euler explicite ; elle est donc aussi
2.3 Les schémas de Runge-Kutta 11
Runge-Kutta d’ordre 2
∫ 𝑏 𝑓 (𝑡, 𝑦 (𝑡)) •
𝑏−𝑎 •
𝑓 (𝑥) d𝑥 ' [ 𝑓 (𝑎) + 𝑓 (𝑏)]
𝑎 2
𝑦 𝑛+1 qui intervient dans 𝑓 (𝑡 𝑛+1 , 𝑦(𝑡 𝑛+1 )). On obtient le schéma itératif
suivant :
𝑘1
= 𝑓 (𝑡 𝑛 , 𝑦 𝑛 )
1 1
𝑦 𝑛+1 = 𝑦𝑛 + ℎ 𝑘1 + 𝑘2 avec 𝑘2 = 𝑓 (𝑡 𝑛 + ℎ, 𝑦 𝑛 + ℎ𝑘 1 )
2 2
𝑦
0 = 𝑦(0)
(2.5)
Cette méthode présente l’avantage d’être précise et assez simple à
programmer (voir algorithme ci-dessous).
Algorithme RK2
d’où la relation
ℎ
𝑦 𝑛+1 = 𝑦 𝑛 + 𝑓 (𝑡 𝑛 , 𝑦 𝑛 ) + 4 𝑓 (𝑡 𝑛+1/2 , 𝑦 𝑛+1/2 ) + 𝑓 (𝑡 𝑛+1 , 𝑦 𝑛+1 )
6
Ici, une difficulté apparaît car l’équation présente deux inconnues :
𝑦 𝑛+1/2 et 𝑦 𝑛+1 . Pour rendre le schéma explicite, il faut estimer 4 𝑓 (𝑡 𝑛+1/2 , 𝑦 𝑛+1/2 )
et 𝑓 (𝑡 𝑛+1 , 𝑦 𝑛+1 ) à partir de 𝑦 𝑛 , 𝑡 𝑛 et ℎ.
𝑘1
= 𝑓 (𝑡 𝑛 , 𝑦 𝑛 )
4 𝑓 (𝑡 𝑛+1/2 , 𝑦 𝑛+1/2 ) ' 2𝑘 2 + 2𝑘 3 avec 𝑘2 = 𝑓 (𝑡 𝑛 + 12 ℎ, 𝑦 𝑛 + 12 ℎ𝑘 1 )
𝑓 (𝑡 𝑛 + 21 ℎ, 𝑦 𝑛 + 12 ℎ𝑘 2 )
𝑘
3 =
2.3 Les schémas de Runge-Kutta 13
𝑘1 = 𝑓 (𝑡 𝑛 , 𝑦 𝑛 )
𝑓 (𝑡 𝑛 + 12 ℎ, 𝑦 𝑛 + 12 ℎ𝑘 1 )
=
1 1 1 1
𝑘2
𝑦 𝑛+1 = 𝑦 𝑛 + ℎ 𝑘1 + 𝑘2 + 𝑘3 + 𝑘4 avec
6 3 3 6
𝑘3 = 𝑓 (𝑡 𝑛 + 12 ℎ, 𝑦 𝑛 + 12 ℎ𝑘 2 )
= 𝑓 (𝑡 𝑛 + ℎ, 𝑦 𝑛 + ℎ𝑘 3 )
𝑘4
Par rapport à la méthode RK2, ce schéma numérique exige deux fois
plus de calcul à chaque pas et donc un temps de calcul plus long, sans
parler des erreurs d’arrondi qui s’accumulent plus vite. Cependant,
ce défaut est compensé par un gain de précision. En effet, comme son
nom l’indique, il s’agit d’une méthode d’ordre 4. On peut le vérifier
sur un exemple simple. Prenons l’équation
d𝑦
= 1−𝑦 avec 𝑦(0) = 0 (2.6)
d𝑡
dont la solution est la fonction exponentielle 𝑦(𝑡) = 1 − e−𝑡 .
Quelle valeur prévoit la méthode de Runge-Kutta-4 pour 𝑦 1 = 𝑦(ℎ) ?
Sachant que l’on a ici 𝑓 (𝑡, 𝑦(𝑡)) = 1 − 𝑦(𝑡), le schéma numérique donne
𝑘 1 = 𝑓 (0, 𝑦 0 ) = 1 − 𝑦 0 = 1
𝑘 2 = 𝑓 ( 12 ℎ, 𝑦 0 + 21 ℎ𝑘 1 ) = 1 − 12 ℎ
𝑘 = 𝑓 ( 1 ℎ, 𝑦 + 1 ℎ𝑘 ) = 1 − 1 (ℎ − 1 ℎ2 ) (2.7)
3 2 0 2 2 2 2
𝑘 4 = 𝑓 (ℎ, 𝑦 0 + ℎ𝑘 3 ) = 1 − ℎ(1 − 1 ℎ + 1 ℎ2 )
2 4
d’où il vient
1 1 1 1 1 1 1
𝑦1 = 𝑦0 + ℎ 𝑘 1 + 𝑘 2 + 𝑘 3 + 𝑘 4 = ℎ − ℎ2 + ℎ3 − ℎ4 𝑦
6 3 3 6 2 6 24
1
𝑡
Algorithme RK4 1
RK4 : ℎ = 0, 2 solution exacte
1. Initialisation du pas ℎ, de la durée 𝑇.
F IGURE 2.4 – Résolution numérique de
2. Initialisation des conditions initiales : 𝑡 = 0 et y = y(0). l’équation (2.6) par la méthode de Runge-
3. Définition de la fonction 𝑓 (𝑡, 𝑦). Kutta-4.
2.4 Conclusion
→
−𝑟 = →
− ℎ2 −
−1 𝑟0 − →
−
𝑣0 ℎ + → 𝑎0
2
d) Nouvelle vitesse : →
−𝑣 = →
−𝑣 + ℎ (→
− → −
2 𝑎0 + 𝑎1 )
e) 𝑡 = 𝑡 + ℎ.
f) Enregistrement des données
3.2 Exemples
Le pendule simple
𝐸 𝑛+1 = 𝐸 𝑛 + O(ℎ3 )
𝑚 1 = 1 𝑚★ 𝑚 1 = 1 𝑚★
2 𝑚 2 = 0,1 𝑚★ 2 𝑚 2 = 0,1 𝑚★
1 1
𝑦 (u.a)
𝑦 (u.a)
0 0
−1 −1
−2 −2
−1 0 1 2 3 −1 0 1 2 3
𝑥 (u.a) 𝑥 (u.a)
F IGURE 3.1 – Simulations numériques de la trajectoires de deux astres liés par gravitation avec un pas ℎ = 0,01 an. Les points
correspondent à une photographie toutes les 0,08 ans.
MÉTHODE
D’EULER-RICHARDSON 4
Les méthodes classiques utilisées pour approcher les solutions des 4.1 Schéma d’Euler-Richardson 21
Généralités . . . . . . . . . . 21
équations différentielles (Euler, Runge-Kutta ou Verlet) présentent
Principe de l’algorithme . . 22
l’inconvénient d’avoir un pas fixe. Or, dans de nombreuses situations,
4.2 Mouvement képlérien . . . 23
une grandeur physique peut varier rapidement un moment, puis plus Travail préliminaire . . . . . 23
lentement ensuite. Il est alors judicieux d’adapter le pas en fonction Résultat . . . . . . . . . . . . 24
des besoins, c’est-à-dire de le diminuer lorsque les variations sont 4.3 Conclusion . . . . . . . . . . 25
rapides et de l’augmenter dans l’autre cas, de façon à économiser du
temps de calcul. C’est la philosophie des algorithmes à pas adaptatif dont
la méthode décrite ici fait partie.
Généralités
𝑡 𝑛 = 𝑡 𝑛−1 + ℎ 𝑛
Principe de l’algorithme
y𝑒1
𝑛+1 = y𝑛 + ℎ 𝑓 (𝑡 𝑛 , y𝑛 )
ℎ ℎ
y𝑒2
𝑛+1 = y𝑛 + 𝑓 (𝑡 𝑛 , y𝑛 ) + 𝑓 (𝑡 𝑛+1/2 , y𝑛+1/2 )
2 2
ce qui produit une erreur
2
ℎ ℎ2 1
𝜀2 ' 2 × 𝑘 =𝑘 = 𝜀1
2 2 2
y𝑛+1 = 2 y𝑒2 𝑒1
𝑛+1 − y𝑛+1 = y𝑛 + ℎ 𝑓 (𝑡 𝑛+1/2 , y𝑛+1/2 )
k𝑛 = 𝑓 (𝑡 𝑛 , y𝑛 )
k𝑛0
= 𝑓 (𝑡 𝑛 + ℎ2 , y𝑛 + ℎ2 k𝑛 )
(4.1)
y0 = y(0)
y𝑛 + ℎ k 0 𝑛 ,
y
𝑛+1 =
qui représente l’erreur que l’on fait avec la méthode d’Euler lorsque
l’on multiplie par deux le pas (ℎ/2 → ℎ). Cette erreur va nous servir
d’indicateur pour savoir si l’on peut augmenter le pas ou s’il faut le
diminuer. Il suffit alors de fixer un seuil de précision (notons le 𝜀 seuil ).
Si l’erreur est plus grande que 𝜀 seuil d’un facteur 𝛼, il suffit de réduire
√
le pas d’un facteur 𝛼 puisque 𝜀 2 varie comme ℎ2 . Symétriquement, si
l’erreur est plus petite que le seuil d’un facteur 𝛼, alors on s’autorise à
√
augmenter le pas d’un facteur 𝛼, l’idée étant de ne pas gaspiller du
temps de calcul.
Résumons maintenant la méthode :
4.2 Mouvement képlérien 23
Algorithme d’Euler-Richardson
Travail préliminaire
𝑎3 G𝑚★
2
= =⇒ G = 4𝜋 2
𝑇0 4𝜋 2
4𝜋 2 𝑥 4𝜋 2 𝑦
𝑥¥ = − et 𝑦¥ = −
(𝑥 2 + 𝑦 2 ) 3/2 (𝑥 2 + 𝑦 2 ) 3/2
24 4 MÉTHODE D’EULER-RICHARDSON
© 𝑣𝑥 ª
𝑣𝑦 ®
©𝑥ª ®
𝑦® 2
4𝜋 𝑥
®
y = ®® et 𝑓 (y) = −
®
®
𝑣 𝑥 ® (𝑥 2 + 𝑦 2 ) 3/2 ®
®
2
«𝑣 𝑦 ¬ − 4𝜋 𝑦
®
®
2 2 3/2
« (𝑥 + 𝑦 ) ¬
Notons qu’ici la fonction d’évolution 𝑓 (y) ne dépend pas explicitement
du temps (on dit que l’équation différentielle est autonome).
Résultat
© 𝑦1 = 0, 5
ª
𝑦2 =0 ®
2. Conditions initiales : 𝑡 = 0 et y = ®.
𝑦3 =0 ®
®
« 𝑦4 = 11, 5 ¬
3. Tant que 𝑡 ≤ 𝑇 faire :
a) Calcul de k = 𝑓 (y) :
© 𝑦3 ª
𝑦4 ® 𝑘1
® © ª
4𝜋 2𝑦 𝑘2
1
® ®
k = − ®= ®
(𝑦 1 2 + 𝑦 2 2 ) 3/2 𝑘3
® ®
® ®
− 4𝜋 2 𝑦 2 ®
® « 𝑘4 ¬
2 2 3/2
« (𝑦 1 + 𝑦 2 ) ¬
b) Calcul de k0 = 𝑓 (y + ℎ2 k) :
𝑦 3 + (ℎ/2)𝑘 3
© ª
𝑦 4 + (ℎ/2)𝑘 4 ® 𝑘 10
2 [𝑦 + (ℎ/2)𝑘 ]
® ©
4𝜋 1 1 ®
𝑘 20
ª
k0 = −
®
®=
3/2 ® ®
(𝑦 1 + (ℎ/2)𝑘 1 ) 2 + (𝑦 2 + (ℎ/2)𝑘 2 ) 2 ® 𝑘 30 ®
®
4𝜋 2 [𝑦 2 + (ℎ/2)𝑘 2 ] 𝑘 40
®
®
− 3/2 ® « ¬
« (𝑦 1 + (ℎ/2)𝑘 1 ) 2 + (𝑦 2 + (ℎ/2)𝑘 2 ) 2 ¬
c) Calcul de l’erreur 𝜀 = |k − k0 | ℎ2 et 𝛼 :
ℎq 0
𝜀= (𝑘 1 − 𝑘 1 ) 2 + (𝑘 20 − 𝑘 2 ) 2 + (𝑘 30 − 𝑘 3 ) 2 + (𝑘 40 − 𝑘 4 ) 2 et 𝛼 = 𝜀/𝜀 seuil
2
√
d) Si 𝛼 > 1 faire ℎ = 0, 9 ℎ/ 𝛼.
4.3 Conclusion 25
√
e) Si 𝛼 < 1 faire y = y + k0 ℎ ; ℎ = 0, 9 ℎ/ 𝛼 ; 𝑡 = 𝑡 + ℎ ; enregistre-
ment des données.
La figure 4.1, montre le résultat et le compare à celui obtenu avec
la méthode de Runge-Kutta. Dans les deux cas, le nombre de pas
est le même : 𝑁 = 158. Théoriquement, on prévoit une trajectoire
elliptique d’excentricité 𝑒 = 0, 853, d’aphélie 𝑥 = −2, 58 ua et de période
𝑇𝐴 = 1, 908 an. Malgré le faible nombre de points, la méthode d’Euler-
Richardson donne un résultat tout à fait acceptable : l’astre fait un tour
sur une orbite quasi-elliptique en 𝑡 = 1, 901 an. Les points sont d’autant
plus denses que l’astre est près du périhélie car l’attraction et donc
l’accélération, est grande. En revanche, la méthode de Runge-Kutta
est décevante. Le pas étant trop grand près du périhélie, la trajectoire
est instable et l’astre spirale en convergeant sur le soleil pour quitter le
système solaire au bout d’un certain temps.
1
𝑦 (u.a)
4.3 Conclusion
Notation Signification
, relation de définition
∼ égal en ordre de grandeur
𝑓 moyenne temporelle de 𝑓 (𝑡)
𝑓pp amplitude crête-à-crête du signal 𝑓 (𝑡)
𝑓rms valeur efficace du signal 𝑓 (𝑡)
Π𝑎 (𝑡) fonction porte de largeur 𝑎
𝛿(𝑡) impulsion de Dirac
d𝑓
d𝑡 dérivée première par rapport au temps
d𝑛 𝑓
d𝑡 𝑛 dérivée n-ième par rapport au temps
−→ limite lorsque 𝑡 tend vers l’infini, équivalent à lim𝑡→∞
𝑡→∞
𝑧 grandeur complexe
𝑧★ complexe conjuguée
Re(𝑧) partie réelle d’un nombre complexe
Im(𝑧) partie imaginaire d’un nombre complexe
𝑓 (𝜈)
b transformée de Fourier associée à 𝑓 (𝑡) équivalent à ou TF[ 𝑓 (𝑡)]
𝑓 (𝜈 𝑥 , 𝜈 𝑦 )
b transformée de Fourier bi-dimensionnelle associée à 𝑓 (𝑥, 𝑦) équivalent à TF2𝑑 [ 𝑓 (𝑥, 𝑦)]
TF
−
−−
↽−−
−⇀
−− relation de dualité entre le signal et sa transformée de Fourier
TF−1
→
−𝑢 vecteur unitaire
( 𝑢−
→, 𝑢−
→→ −
𝑥 𝑦 , 𝑢𝑧 ) base cartésienne
→ − →−
k 𝐴 k ou 𝐴 norme du vecteur 𝐴
→− −
𝐴𝑧 composante suivant l’axe (O𝑧) = 𝐴 𝑧 = 𝐴 · →
𝑢𝑧
log10 logarithme à base 10