Schémas d'Euler pour EDPs
Schémas d'Euler pour EDPs
Série d’exercices no 4
Schémas numériques pour les équations différentielles
Exercice 1.
On considère le problème de Cauchy suivant : trouver X ∈ C 1 ([0, 1], R) telle que
0
X (t) = −100X(t) + 25,
(S1 )
X(0) = 1,
1. Partie 1 : solution exacte de (S1 )
(a) Donner la solution exacte de (S1 ).
(b) Etudier la limite de la solution quand t tend vers l’infini.
2. Partie 2 : schéma d’Euler explicite
(a) Ecrire le schéma d’Euler explicite pour (S1 ) (avec pas ∆t).
(b) Calculer la solution numérique xn en fonction de n et de ∆t.
(c) On suppose ∆t = 1/25. Calculer xn , puis étudier lim |xn |.
n→+∞
(d) Quelle valeur de ∆t > 0 maximale faut-il choisir pour que lim |xn | soit finie ?
n→+∞
3. Partie 3 : schéma d’Euler implicite
Reprendre les questions de la partie 2, en remplaçant schéma explicite par schéma implicite.
Correction
1. Partie 1
(a) On peut utliser la technique de la variation de la constante :
Z t
−100t
X(t) = e X(0) + 25 e−100(t−s) ds
0
1
= e−100t + (1 − e−100t )
4
3 −100t 1
= e + .
4 4
Alternativement, en détails, on peut poser Y (t) = e100t X(t), et voir que
Y 0 (t) = e100t (X 0 (t) + 100X(t)) = 25e100t .
Rt
Alors Y (t) = Y (0) + 0 e100s ds, et on retrouve X(t) = e−100t Y (t) = e−100t X(0) +
R t −100(t−s)
0
e ds.
1
(b) On trouve que lim X(t) = 14 .
t→+∞
2. Partie 2
(a) L’équation différentielle est de la forme X 0 = f (X) avec f (x) = −100x + 25. Le
schéma d’Euler explicite s’écrit alors
avec x0 = 1 = X(0).
(b) On reconnait une suite arithmético-géométrique. Posons alors zn = xn − 41 , de telle
sorte que pour tout n ≥ 0, on a
zn+1 = (1 − 100∆t)zn .
1
Donc zn = (1 − 100∆t)n z0 avec z0 = x0 − 4
= 43 , puis on en déduit que
1 3 1
xn = zn + = (1 − 100∆t)n + .
4 4 4
1
(c) Si on choisit ∆t = 25
, 1 − 100∆t = −3, donc |xn | → +∞.
n→+∞
Ainsi,
n−1
X
zn = z0 + (z`+1 − z` )
`=0
n−1
X
= 1 + 25∆t (1 + 100∆t)` ,
`=0
2
puis
zn
xn =
(1 + 100∆t)n
n−1
1 25∆t X 1
= n
+
(1 + 100∆t) 1 + 100∆t `=0 (1 + 100∆t)n−`−1
1
1 25∆t 1 − (1+100∆t)n
= + 1
(1 + 100∆t)n 1 + 100∆t 1 − 1+100∆t
3 1 1
= n
+ .
4 (1 + 100∆t) 4
(c) Pour toute valeur de ∆t > 0, on trouve lim xn = 14 , la même valeur que pour la
n→+∞
solution exacte.
(d) Contrairement au cas du schéma explicite, il n’y a pas de restriction sur le pas de temps
∆t pour le schéma implicite : c’est la propriété de "A-stabilité".
Exercice 2. Soit θ ∈]0, +∞[. Déterminer les valeurs des limites suivantes, en les interprétant à
l’aide de schémas numériques :
θ N θ −N θ N θ −N
lim (1 + ) , lim (1 − ) , lim (1 + ) (1 − ) .
N →+∞ N N →+∞ N N →+∞ 2N 2N
X 0 = θX,
lim xN = X(1) = eθ
N →+∞
Correction
Rt
1. Posons Θ(t) = 0 θ(s)ds pour tout t ≥ 0. Alors Θ est de classe C 1 et Θ0 (t) = θ(t) pour tout
t ≥ 0.
On peut alors réécrire l’inégalité sous la forme
Θ0 (t) ≤ a + bΘ(t).
En multipliant par e−bt , et en introduisant ψ(t) = e−bt Θ(t), on obtient
ψ 0 (t) = e−bt Θ0 (t) − bΘ(t) ≤ ae−bt ,
pour tout t ≥ 0.
En intégrant et en utilisant la condition ψ(0) = Θ(0) = 0, pour tout t ≥ 0, on obtient
Z t
a
ψ(t) ≤ ψ(0) + ae−bs ds = (1 − e−bt ),
0 b
donc Θ(t) = ebt ψ(t) ≤ ab (ebt − 1), puis finalement
θ(t) ≤ a + bΘ(t) ≤ aebt .
4
2. Posons Sn = n−1
P
`=0 u` pour n ≥ 1 et S0 = 0. Alors un = Sn+1 −Sn , et on peut donc réécrire
l’inégalité sous la forme
Sn+1 ≤ a + (1 + b)Sn .
On pose sn = (1+b)−n Sn . En multipliant l’inégalité précédente par (1+b)−(n+1) , on obtient
pour tout n ∈ N
sn+1 ≤ a(1 + b)−(n+1) + sn ,
ou de façon équivalente
sn+1 − sn ≤ a(1 + b)−(n+1) .
Avec un argument de somme télescopique (et s0 = S0 = 0), on a pour tout n ∈ N,
n−1
X n−1
X
sn = s0 + (sk+1 − sk ) ≤ a (1 + b)−(k+1) .
k=0 k=0
Commenter ce résultat.
5
Correction
1. En utilisant l’expression q(t) = A cos(ωt) + B sin(ωt), on calcule
pour tout t ≥ 0.
On en déduit que q est solution de l’équation différentielle si ω = 1.
On détermine ensuite A et B en fonction des données initiales :
A = q(0) = q0 ,
B = q (0) = p0 (0) = p0 .
0
q(t)2 = (q0 cos(t) + p0 sin(t))2 = q02 cos(t)2 + p20 sin(t)2 + 2q0 p0 cos(t) sin(t)
p(t)2 = (−q0 sin(t) + p0 cos(t))2 = q02 sin(t)2 + p20 cos(t)2 − 2p0 q0 sin(t) cos(t).
En sommant,
1 1 1
q(t)2 + p(t)2 = q02 + p20 (cos(t)2 + sin(t)2 ) = q02 + p20 .
E(t) =
2 2 2
3. (a) En remplaçant pn+1 par son expression, on trouve
qn+1 = qn + ∆tpn+1
= qn + ∆t(pn − ∆tqn+1 )
= qn + ∆tpn − ∆t2 qn+1 .
pn+1 = pn − ∆tqn+1
= pn − ∆t(qn + ∆tpn+1 )
= pn − ∆tqn − ∆t2 pn+1 ,
donc
pn − ∆tqn
pn+1 = .
1 + ∆t2
6
(b) Pour tout n ∈ N, en utilisant les expressions ci-dessus,
1 2
qn+1 + p2n+1
En+1 =
2
1 2 2
= q n + ∆tpn + p n − ∆tq n
2(1 + ∆t2 )2
1
2 2
= q + pn
2(1 + ∆t2 ) n
1
= En .
1 + ∆t2
On obtient alors
1
En = E0 .
(1 + ∆t2 )n
La solution exacte préserve la fonction E (E(tn ) = E(0) = E0 pour tout n ∈ N), mais
pas la solution numérique donnée par le schéma implicite. On a même En → 0.
n→∞
h h
1− H0 (q, p) ≤ Hh (q, p) ≤ 1 + H0 (q, p).
2 2
4. On fixe le pas de temps ∆t ∈ (0, 2)et la condition initiale (q0 , p0 ) ∈ R2 , avec H0 (q0 , p0 ) 6= 0.
Montrer que la suite H0 (qn , pn ) n∈N est bornée, et ne tend pas vers 0 quand n → ∞.
Comparer avec les schémas d’Euler explicite et implicite, et avec le comportement de la
solution exacte.
7
5. Plus précisément, montrer que
Correction
1. On trouve (
qn+1 = qn + ∆tpn
pn+1 = (1 − ∆t2 )pn − ∆tqn ,
q + ∆tp
c’est-à-dire Φ∆t (q, p) = .
(1 − ∆t2 )p − ∆tq
2. On calcule
1 2
H∆t (qn+1 , pn+1 ) = (qn + ∆tpn )2 + (1 − ∆t2 )pn − ∆tqn
2
1
+ ∆t qn + ∆tpn (1 − ∆t2 )pn − ∆tqn
2
1 2
= qn 1 + ∆t2 − ∆t2
2
1
+ p2n ∆t2 + (1 − ∆t2 )2 + ∆t2 (1 − ∆t2 )
2
1
+ ∆tqn pn 2 − 2(1 − ∆t2 ) + (1 − ∆t2 ) − ∆t2
2
1 2
= qn + p2n + ∆tqn pn
2
= H∆t (qn , pn ).
puis
∆t ∆t
1− 2
1+ 2
∆t
H0 (q0 , p0 ) ≤ H0 (qn , pn ) ≤ ∆t
H0 (q0 , p0 ).
1+ 2
1− 2
On en déduit que la suite H0 (qn , pn ) n∈N est bornée, et ne tend pas vers 0. Ces propriétés
sont vérifiées par la solution exacte (puisque H0 est constante le long des solutions).
Le fait que ces propriétés de la solution exacte soient vérifiées par le schéma numérique
constitue une grande amélioration par rapport au schéma d’Euler explicite (pour lequel
H0 (qn , pn ) → +∞) ou au schéma d’Euler implicite (pour lequel H0 (qn , pn ) → 0).
n→+∞ n→+∞
Correction
1. On calcule, pour tout t ≥ 0 :
en utilisant l’équation différentielle satisfaite par X, puis en exprimant X(t) = e−γt Y (t).
On en déduit que Y est solution de l’équation différentielle (non-autonome)
Y 0 = g(t, Y )
Il s’agit du θ-schéma.
10
(b) Il s’agit de réécrire le schéma précédent en revenant à l’inconnue X, au lieu de la
variable auxiliaire Y . On calcule, pour tout n ∈ N,
Xn+1 = e−γ(n+1)∆t Yn+1
= e−γ(n+1)∆t Yn + ∆t(1 − θ)e−γ(n+1)∆t g(tn , eγn∆t Xn ) + ∆tθe−γ(n+1)∆t g(tn+1 , eγ(n+1)∆t Xn )
= e−γ∆t Xn + ∆t(1 − θ)e−γ∆t f (Xn ) + ∆tθf (Xn+1 ),
d’après la définition de g(t, y).
On a donc Xn+1 = Fθ (Xn , ∆t, Xn+1 ), où
Fθ (x, ∆t, z) = e−γ∆t x + ∆t(1 − θ)e−γ∆t f (x) + ∆tθf (z).
(b) Pour pouvoir appliquer la méthode de Newton, on doit supposer que z 7→ F̃θ (Xn , ∆t, z)
∂
est de classe C 1 , donc que f est de classe C 1 , et que sa dérivée ∂z F̃θ (Xn , ∆t, z) 6= 0
est non nulle pour tout z ∈ R.
On calcule
∂
F̃θ (Xn , ∆t, z) = 1 − θ∆tf 0 (z) > 0,
∂z
sous la condition θ∆tLip(f ) < 1 identifiée à la question précédente. En effet, sup |f 0 (z)| ≤
z∈R
Lip(f ).
Sous ces conditions, la méthode de Newton prend la forme
F̃θ (Xn , ∆t, zk )
zk+1 = zk − ∂
,
F̃ (Xn , ∆t, zk )
∂z θ
11
Exercice 7. Rattrapage 2019
On considère l’équation différentielle X 0 = f (X), avec condition initiale X(0) = x0 , où on
suppose que f : R → R est une fonction de classe C 1 , de dérivée bornée.
1. Rappeler la définition du schéma d’Euler explicite et du schéma d’Euler implicite.
2. On considère la méthode de Runge-Kutta donnée par le tableau de Butcher
θ θ
1
avec θ ∈ [0, 1], et pas de temps noté ∆t.
Justifier que le schéma associé s’écrit sous la forme
xn+1 = xn + ∆tf (1 − θ)xn + θxn+1 . (1)
R1
3. (a) Sur quelle méthode de quadrature (pour le calcul de 0
g(x)dx) le schéma (1) est-il
construit ?
(b) Etudier en fonction de θ l’ordre de cette méthode de quadrature.
4. Montrer que sous la condition ∆tkf 0 k∞ < 1, l’équation (1) admet une unique solution xn+1 ,
pour toute valeur de xn .
On écrit alors xn+1 = Φ∆t (xn ) = xn + ∆tΨ∆t (xn ).
∂Φh (x)
5. Montrer que Φ0 (x) = x et que ∂h
= f (x).
h=0
∂Ψh (x)
6. En déduire les valeurs de Ψ∆t (x) et ∂h
, et étudier l’ordre du schéma en fonction du
h=0
paramètre θ.
Correction
1. Pour cette équation différentielle, le schéma d’Euler explicite s’écrit
En remplaçant ∆tk = xn+1 −xn (deuxième équation) dans la première équation, le deuxième
argument de f s’écrit xn + θ∆k = (1 − θ)xn + θxn+1 )). En remplaçant alors k dans la
deuxième équation par la valeur obtenue, on en déduit la formulation du schéma :
On
R tn+1obtient le schéma en utilisant la formule
de quadrature suivante : on approche
tn
g(s)ds par ∆tg (1 − θ)tn + θt n+1 .
Sur l’intervalle [0, 1], cette méthode de quadrature s’écrit
J(g) = g(θ).
(b) Pour déterminer l’ordre de cetteR méthode de quadrature, on doit comparer les valeurs
1
de J(X k ) et I(X k ), où I(g) = 0 g(t)dt.
D’une part, on a I(1) = 1, I(X) = 21 et I(X 2 ) = 31 .
D’autre part, on a J(1) = 1, J(X) = θ et J(X 2 ) = θ2 .
On en déduit que
– si θ ∈ [0, 1] \ { 12 }, alors cette méthode de quadrature est d’ordre 0 ;
– si θ = 21 , alors cette méthode de quadrature est d’ordre 1.
4. Sauf dans le cas θ = 0, le schéma est implicite, et il faut justifier qu’il existe une unique
solution de l’équation
z = xn + ∆tf (1 − θ)xn + θz ,
avec xn fixé.
Pour cela, il suffit que l’application z 7→ gn (z) = xn +∆tf (1−θ)xn +θz soit contractante.
On calcule, pour tous z1 , z2 ∈ R,
|gn (z2 ) − gn (z1 )| = ∆t f (1 − θ)xn + θz2 − f (1 − θ)xn + θz2
≤ ∆tkf 0 k∞ θ|z2 − z1 |,
13
∂Φh (x)
donc ∂h
= f (x) pour tout x ∈ R.
h=0
Une autre approche est possible : si on suppose que h 7→ Φh (x) est dérivable, en dérivant
la définition par rapport à h on obtient
On rappelle les conditions d’ordre énoncées dans le cours : le schéma est d’ordre au moins 1
si et seulement si Ψ0 (x) = f (x), et il est d’ordre au moins 2 si et seulement si Ψ0 (x) = f (x)
h
et ∂Ψ∂h(x) = 21 f 0 (x)f (x).
h=0
On en déduit que :
– si θ ∈ [0, 1] \ { 12 }, le schéma est d’ordre 1 ;
– si θ = 21 , le schéma est d’ordre au moins 2.
∂ 2 Ψh (x)
En étudiant ∂h2
, on pourrait vérifier que lorsque θ = 12 , le schéma est d’ordre 2.
h=0
On peut remarquer que l’ordre de la méthode de quadrature et l’ordre du schéma sont liés.
x = y + kf (x)
et exprimer F en fonction de G.
6. Calculer ∂h F (x, 0).
7. Déterminer en fonction de θ l’ordre de convergence du θ-schéma.
Correction
1. Posons g(x) = y + kf (x), en considérant y et k comme des paramètres.
Si g est contractante, alors en appliquant le théorème du point fixe contractant, il existe un
unique point fixe de g.
Pour tous x1 , x2 ∈ R, on a
avec
F (x, h) = (1 − θ)f (x) + θf (G(x + h(1 − θ)f (x), θh)).
6. En dérivant par rapport à h,
∂h F (x, h) = θf 0 (G(x + h(1 − θ)f (x), θh))(1 − θ)f (x)∂y G(x + h(1 − θ)f (x), θh)
+ θf 0 (G(x + h(1 − θ)f (x), θh))θ∂h G(x + h(1 − θ)f (x), θh),
et en évaluant en h = 0, on a
Correction On considère une équation différentielle X 0 = f (t, X). Tous ces schémas sont des
exemples de schémas importants et ont été mentionnés dans le cours.
1. Ce schéma s’écrit
k = f (tn , xn )
xn+1 = xn + ∆tk,
k1 = f (tn , xn )
∆t ∆t
k2 = f (tn + , xn + k1 )
2 2
xn+1 = xn + ∆tk2 ,
et peut se réécrire
tn + tn+1 ∆t
xn+1 = xn + ∆f , xn + f (tn , xn ) .
2 2
C’est la méthode RK2, appelée méthode du point milieu explicite.
Pour comprendre ce schéma, il faut interpréter xn + ∆t2 f (tn , xn comme une valeur approchée de la solution à
tn +tn+1
l’instant 2 = tn + 2 , obtenue par une méthode des rectangles à gauche sur l’intervalle [tn , tn + ∆t
∆t
2 ].
Ensuite, cette approximation est utilisée dans une méthode du point milieu pour calculer xn+1 à partir de xn .
3. Le schéma s’écrit
k1 = f (tn , xn )
k2 = f (tn+1 , xn + ∆tk1 )
∆t ∆t
xn+1 = xn + k1 + k2 ,
2 2
et peut se réécrire
∆t
xn+1 = xn + f (tn , xn ) + f (tn+1 , xn + ∆tf (tn , xn )) .
2
C’est la méthode de Heun, c’est un schéma explicite.
Dans cette méthode, on applique la méthode des trapèzes pour calculer xn+1 à partir de xn , et on interprète
xn + ∆tk1 comme une première approximation de la valeur de la solution à l’instant tn+1 .
C’est un schéma de type "prédicteur-correcteur".
17
4. Le schéma s’écrit
k1 = f (tn , xn )
tn + tn+1 ∆t
k2 = f ( , xn + k1 )
2 2
tn + tn+1 ∆t
k3 = f ( , xn + k2 )
2 2
k4 = f (tn+1 , xn + ∆tk3 )
∆t
xn+1 = xn + k1 + 2k2 + 2k3 + k4 ,
6
et peut se réécrire, en éliminant succesivement k4 , k3 , k2 et k1
∆t
xn+1 = xn + k1 + 2k2 + 2k3 + k4
6
∆t
= xn + k1 + 2k2 + 2k3 + f (tn+1 , xn + ∆tk3 )
6
∆t tn + tn+1 ∆t tn + tn+1 ∆t
= xn + k1 + 2k2 + 2f ( , xn + k2 ) + f (tn+1 , xn + ∆tf ( , xn + k2 ))
6 2 2 2 2
∆t tn + tn+1 ∆t
= xn + k1 + 2f ( , xn + k1 )
6 2 2
tn + tn+1 ∆t tn + tn+1 ∆t
+ 2f ( , xn + f( , xn + k1 ))
2 2 2 2
tn + tn+1 ∆t tn + tn+1 ∆t
+ f (tn+1 , xn + ∆tf ( , xn + f( , xn + k1 )))
2 2 2 2
∆t tn + tn+1 ∆t
= xn + f (tn , xn ) + 2f ( , xn + f (tn , xn ))
6 2 2
tn + tn+1 ∆t tn + tn+1 ∆t
+ 2f ( , xn + f( , xn + f (tn , xn )))
2 2 2 2
tn + tn+1 ∆t tn + tn+1 ∆t
+ f (tn+1 , xn + ∆tf ( , xn + f( , xn + f (tn , xn )))) .
2 2 2 2
Il s’agit du fameux schéma RK4 (qui est d’ordre 4).
On a vérifié que le schéma est bien explicite (xn+1 s’exprime en fonction de xn ) : ce n’était
pas surprenant étant donnée la forme du tableau de Butcher.
En pratique, on n’écrit pas le schéma sous cette forme, on garde la structure du système : on
calcule k1 , puis k2 , etc...
18