Académique Documents
Professionnel Documents
Culture Documents
J IMMY R OUSSEL
2022
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
4 MÉTHODE D’EULER-RICHARDSON 19
4.1 Schéma d’Euler-Richardson . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Mouvement képlérien . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
A NNEXES 33
A LES ERREURS NUMÉRIQUES 35
Notations 37
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
Le terme 1/2𝜔2𝑛 cos 𝜃 𝑛 + 1/2 sin2 𝜃 𝑛 est en moyenne positif de telle
sorte que l’on observe une dérive positive à long terme.
Quant à la méthode de Verlet à un pas, on a le schéma numérique
suivant :
𝜃 𝑛+1 = 𝜃 𝑛 + 𝜔 𝑛 ℎ − 1/2 sin 𝜃 𝑛 ℎ2
𝐸 𝑛+1 = 𝐸 𝑛 + O(ℎ3 )
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 21
Algorithme d’Euler-Richardson
Travail préliminaire
𝑎3 G𝑚★
2
= =⇒ G = 4𝜋 2
𝑇0 4𝜋 2
22 4 MÉTHODE D’EULER-RICHARDSON
4𝜋 2 𝑥 4𝜋 2 𝑦
𝑥¥ = − et 𝑦¥ = −
(𝑥 2 + 𝑦 2 ) 3/2 (𝑥 2 + 𝑦 2 ) 3/2
© 𝑣𝑥 ª
𝑣𝑦 ®
©𝑥ª ®
4𝜋 2 𝑥
𝑦® ®
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 = 12 ¬
3. Tant que 𝑡 ≤ 𝑇 faire :
a) Calcul de k = 𝑓 (y) :
© 𝑦3 ª
𝑦4 ® 𝑘1
® © ª
4𝜋 2 𝑦 1 ® 𝑘2 ®
k = − ®= ®
(𝑦 1 + 𝑦 2 2 ) 3/2
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
ª
0
®
k = ®=
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 ¬
4.3 Conclusion 23
c) Calcul de l’erreur 𝜀 = |k − k0 | ℎ2 et 𝛼 :
ℎ
|𝑘 10 − 𝑘 1 | + |𝑘 20 − 𝑘 2 | + |𝑘 30 − 𝑘 3 | + |𝑘 40 − 𝑘 4 |
𝜀= et 𝛼 = 𝜀/𝜀 seuil
2
√
d) Si 𝛼 > 1 faire ℎ = 0, 9 ℎ/ 𝛼.
√
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 :𝑁 = 119. Avec la méthode d’Euler Richardson, l’astre fait un
tour en 4,768 ans alors qu’avec Runge-Kutta il ne met que 4,218 ans.
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