Les méthodes d`Euler et ses cousines

Transcription

Les méthodes d`Euler et ses cousines
POIRET Aurélien
Ingénierie Numérique
MPSI
FF
Chapitre No 3 : Les méthodes
d’Euler et ses cousines
Dans ce chapitre, on présente les méthodes (schémas) d’Euler et ses cousines qui consistent à résoudre de manière approchée une équation différentielle puis on établit leurs vitesses de convergences
respectives.
1
Le théorème de Cauchy-Lipschitz
Un théorème de mathématiques, dont la démonstration utilise des résultats d’analyses hors programme,
dit la chose suivante :
Théorème 1 : Le théorème de Cauchy-Lipschitz
Soient I un intervalle de R, a ∈ I, ye0 ∈ R et f : I × R → R une fonction continue et lipschitzienne
par rapport à la seconde variable uniformément localement par rapport à la première, c’est-à-dire,
vérifiant pour tout K segment inclus dans I,
∃ CK > 0 / ∀(t, x1 , x2 ) ∈ K × R × R, |f (t, x1 ) − f (t, x2 )| 6 CK |x1 − x2 |.
Alors il existe b ∈ I, a < b tel que le problème de Cauchy
∀t ∈ I, y 0 (t) = f (t, y(t)),
y(a) = ye0 .
admet une unique solution y ∈ C 1 ([a, b]).
Remarque I
Vérifions que ce théorème s’applique dans le cadre du cours de mathématiques, c’est-à-dire, dans le
cas des équations linéaires d’ordre 1. Soit I un intervalle de R et a, b deux fonctions continues sur I
et cherchons à résoudre
0
y + ay = b,
y(a) = ye0
Dans ce cas, nous avons f (t, x) = a(t)x − b(t). Vu que a et b sont continues, la fonction f est bien
continue sur I × R. Vérifions que cette fonction est lipschitzienne par rapport à la seconde variable
uniformément localement par rapport à la première. Si K est un segment de I alors
|f (t, x1 ) − f (t, x2 )| = |a(t)||x1 − x2 | 6 CK |x1 − x2 |,
puisque la fonction a est continue sur le segment K donc y est bornée.
1
Les équations linéaires d’ordres 1 ont le mérite de donner une solution explicite ce qui n’est pas le cas
de la plupart des autres équations différentielles. C’est pourquoi il est donc nécessaire d’introduire une
méthode numérique qui va approcher la solution du problème de Cauchy : on présente dans ce cours
les méthodes d’Euler et de ses cousines.
2
La méthode d’Euler explicite
On cherche donc à approximer la solution de
∀t ∈ I, y 0 (t) = f (t, y(t)),
y(a) = ye0 .
sur un segment [a, b]. Plus précisément, on veut calculer une approximation, notée yk , des y(tk ) avec
tk = a + k × h où h = b−a
n est un pas qu’il conviendra d’ajuster.
De façon très simple, si on écrit à la physicienne :
Z tk+1
Z tk+1
0
f (u, y(u)) du ≈ hf (tk , y(tk )).
y (u) du =
y(tk+1 ) − y(tk ) =
tk
tk
alors on obtient la méthode d’Euler explicite. On a en réalité approximé la dernière intégrale par la
méthode des rectangles.
La méthode d’Euler explicite consiste donc à définir la suite (yk ) par la relation de récurrence
y0 = ye0
∀k ∈ {0, · · · , n − 1}, yk+1 = yk + hf (tk , yk ).
La méthode d’Euler explicite est une méthode convergente d’ordre 1. Plus précisément, nous avons le
résultat suivant :
Théorème 2
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma d’Euler explicite.
Alors il existe une constante C > 0 telle que
b−a
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
.
n
3
La méthode d’Euler implicite
Le schéma d’Euler implicite ou rétrograde consiste à remplacer la relation :
yk+1 = yk + hf (tk , yk )
par
yk+1 = yk + hf (tk+1 , yk+1 ).
2
Bien entendu, cette relation ne donne pas explicitement yk+1 en fonction de yk (d’où son nom) et
nécessite donc à chaque étape une résolution d’équation de la forme Φ(y) = 0 d’inconnue y. Des
théorèmes d’analyse (le théorème de Banach-Picard et le théorème des fonctions implicites pour ne
pas citer leurs noms) permettent d’établir que si f est classe C 1 alors le schéma possède à chaque étape
une unique solution.
La méthode d’Euler implicite est une méthode convergente d’ordre 1. Plus précisément, nous avons le
résultat suivant :
Théorème 3
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma d’Euler implicite.
Alors il existe une constante C > 0 telle que
b−a
.
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
n
Remarque II
La méthode d’Euler implicite consiste à effectuer l’approximation suivante
Z tk+1
Z tk+1
y(tk+1 ) − y(tk ) =
y 0 (u) du =
f (u, y(u)) du ≈ hf (tk+1 , y(tk+1 )).
tk
tk
En réalité, on approxime l’intégrale par la méthode des rectangles modifiée. Vu que la vitesse de
convergence de la méthode des rectangles et la même que la méthode des rectangles modifiée, c’est
en toute logique que les vitesses de convergences des méthodes d’Euler explicite et implicite sont
identiques.
4
La méthode d’Euler modifiée
Le schéma d’Euler modifié consiste à remplacer la relation :
yk+1 = yk + hf (tk , yk )
par
yk+1 = yk + hf (tk + h/2, yk + h/2f (tk , yk ))).
Cela revient à approximer l’intégrale par la méthode du point milieu. En effet, à la physicienne,
Z tk+1
Z tk+1
y(tk+1 ) − y(tk ) =
y 0 (u) du =
f (u, y(u)) du
tk
tk
≈ hf (tk + h/2, y(tk + h/2))
≈ hf (tk + h/2, y(tk ) + h/2y 0 (tk ))
= hf (tk + h/2, y(tk ) + h/2f (tk , y(tk ))).
3
La méthode d’Euler modifiée consiste donc à définir la suite (yk ) par la relation de récurrence
y0 = ye0
∀k ∈ {0, · · · , n − 1}, yk+1 = yk + hf (tk + h/2, yk + h/2f (tk , yk ))).
La méthode d’Euler modifiée est une méthode convergente d’ordre 2. Plus précisément, nous avons le
résultat suivant :
Théorème 4
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma d’Euler modifié.
Alors il existe une constante C > 0 telle que
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
5
b−a
n
2
.
La méthode de Heun
La méthode de Heun consiste à prendre
yk+1 = yk +
h
(f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))).
2
On fait une moyenne entre la dérivée au temps tk et celle au temps tk+1 en la valeur approchée calculée
par Euler. Cela revient à approximer l’intégrale par la méthode des trapèzes. En effet, à la physicienne,
Z tk+1
Z tk+1
0
f (u, y(u)) du
y(tk+1 ) − y(tk ) =
y (u) du =
tk
tk
≈ h/2(f (tk , y(tk )) + f (tk+1 , y(tk+1 )))
≈ h/2(f (tk , y(tk )) + f (tk+1 , y(tk ) + hy 0 (tk )))
= h/2(f (tk , y(tk )) + f (tk+1 , y(tk ) + hf (tk , y(tk )))).
La méthode de Heun consiste donc à définir la suite (yk ) par la relation de récurrence
y0 = ye0
∀k ∈ {0, · · · , n − 1}, yk+1 = yk + h2 × (f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))).
La méthode de Heun est une méthode convergente d’ordre 2. Plus précisément, nous avons le résultat
suivant :
4
Théorème 5
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma de Heun.
Alors il existe une constante C > 0 telle que
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
6
b−a
n
2
.
La méthode de Runge-Kutta d’ordre 4
Dans la méthode de Runge-Kutta d’ordre 4, on réinjecte successivement des premières approximations
dans de nouvelles. On calcule donc successivement :
αk = yk +
h
h
f (tk , yk ), βk = yk + f (tk + h/2, αk ), γk = yk + hf (tk + h/2, βk )
2
2
et enfin
h
(f (tk , yk ) + 2f (tk + h/2, αk ) + 2f (tk + h/2, βk ) + f (tk+1 , γk )).
6
En réalité, on approxime l’intégrale par la méthode de Simpson.
La méthode de Runge-Kutta d’ordre 4 (RK4) est une méthode convergente d’ordre 4. Plus précisément,
nous avons le résultat suivant :
yk+1 = yk +
Théorème 6
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma de RK4.
Alors il existe une constante C > 0 telle que
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
7
b−a
n
4
.
Preuve de la convergence de la méthode d’Euler explicite
Dans cette partie, on cherche à montrer le théorème suivant :
5
Théorème 7
- Soient I un intervalle de R, f ∈ C 1 (I × R), a et b deux points de I et ye0 ∈ R.
- On suppose qu’il existe L > 0 tel que
∀t ∈ [a, b], ∀(x1 , x2 ) ∈ R2 , |f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |.
- Supposons données y une (la) solution exacte du problème de Cauchy définie sur [a, b] et (yk )06k6n
la suite obtenue par le schéma d’Euler explicite.
Alors il existe une constante C > 0 telle que
b−a
.
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6 C ×
n
Preuve : Remarquons que comme y ∈ C 1 ([a, b]) et vérifie y 0 = f (t, y) avec f de classe C 1 sur I × R, on en déduit que y
est de classe C 2 sur [a, b].
La fonction y 00 est continue sur le segment [a, b] donc y est bornée par une constante notée M .
Appliquons l’inégalité de Taylor-Lagrange à y à l’ordre 2 sur le segment [tk , tk+1 ], on obtient
2
y(tk+1 ) − y(tk ) − (tk+1 − tk )y 0 (tk ) 6 (tk+1 − tk ) M.
2
Comme tk+1 − tk = h et
1
2
6 1, nous obtenons
|y(tk+1 ) − y(tk ) − hf (tk , y(tk ))| 6 h2 M.
Puis comme, yk+1 = yk + hf (tk , yk ), on en déduit
|y(tk+1 ) − yk+1 |
6 |y(tk+1 ) − y(tk ) − hf (tk , y(tk ))| + |y(tk ) + hf (tk , y(tk )) − yk − hf (tk , yk )|
6 h2 M + |y(tk ) − yk | + h|f (tk , y(tk )) − f (tk , yk )|
6 |y(tk ) − yk | × (1 + Lh) + h2 × M.
Ainsi, pour k ∈ {0, · · · , n − 1},
2
b−a
b−a
|y(tk+1 ) − yk+1 | 6 |y(tk ) − yk | × 1 + L ×
+
×M
n
n
|
{z
} |
{z
}
:=α
:=β
On pose alors δk = |y(tk ) − yk | × α−k qui vérifie donc
∀k ∈ {0, · · · , n − 1}, δk+1 6 δk +
β
.
αk+1
Par télescopage et en utilisant que δ0 = 0, on obtient
∀k ∈ {1, · · · , n}, δk 6
k−1
1 − α−k
β X −i
α 6β×
.
α i=0
α−1
Ainsi,
∀k ∈ {1, · · · , n}, |y(tk ) − yk | 6 β ×
αk − 1
βαk
6
.
α−1
α−1
Or αk = exp (k ln (1 + Lh)) et en exploitant que si u > −1 alors ln(1 + u) 6 u, on obtient
αk 6 exp (kLh) 6 exp (L(b − a))
puisque 0 6 k 6 n et h =
b−a
.
n
Par conséquent,
∀k ∈ {0, · · · , n}, |y(tk ) − yk | 6
6
hM
× exp (L(b − a)) .
L
Remarque III
Pour que notre schéma converge, il faut s’assurer que y soit définie sur [a, b], où le réel b, donné par le
théorème de Cauchy, n’est pas connu. Il faut donc dans la pratique choisir un b qui ne soit pas trop
éloigné de a.
7