Académique Documents
Professionnel Documents
Culture Documents
ENSAM de Meknès
Université Moulay Ismail
1.1 Introduction
On s’intéresse ici à des problèmes physiques où l’inconnue est une fonction :
• Chute libre : Trouver la vitesse v(t) satisfaisant
mv0 (t) = mg − kv(t)2 ∀t
• Pendule : Trouver l’angle θ (t) satisfaisant
ml θ 00 (t) = −mg sin θ (t) − lc f θ 0 (t) ∀t
• Masse-ressort : Trouver le déplacement x(t) satisfaisant
x00 (t) + cx0 (t) + ω 2 x(t) = 0 ∀t
• Croissance de population : Trouver le nombre d’individus N(t)
N 0 (t) = (n1 − m1 N(t))N(t) ∀t
où u = u(t) est une fonction inconnue, u0 , · · · , u(n) désignent les dérivées successives de u et F
est une fonction donnée.
Exemple 1.1 • Ordre 1 : u0 (t) = tu(t) alors F(t, u, u0 ) = u0 (t) − tu(t).
• Ordre 2 : u00 (x)
= u0 (x) − u(x) alors F(x, u, u0 , u00 ) = u00 (x) − u0 (x) + u(x).
6 Chapter 1. Résolution numérique des EDO
a0 u + a1 u0 + · · · + an u(n) = b
1.2.3 Splitting
La forme la plus simple (EDO d’ordre 1)
du
= f (t, u)
dt
u1 = u, u2 = u0 , · · · , un = u(n−1)
u01 = u2
u02 = u2 − u1 + t + 1
2) équation du pendule
00 g
θ (t) = − sin θ (t),
L
θ (0) = θ0 , (1.2.1)
0
θ (0) = θ1 .
Cette équation différentielle d’ordre 2 se ramène à un système d’ordre 1 en posant y1 (t) = θ (t) et
y2 (t) = θ 0 (t). En effet :
g g
y01 (t) = θ 0 (t) et y02 (t) = θ 00 (t) = − sin θ (t) = − sin y1 (t).
L L
1.3 Problème de Cauchy 7
y1 (t) y2 (t)
On note Y (t) = et F(t,Y (t)) = ,
y2 (t) − Lg sin y1 (t)
alors l’équation (1.2.1) est équivalente à
0
Y (t) = F(t,Y (t),
θ0 (1.2.2)
Y (0) = .
θ1
où u0 ∈ Rm et f : [t0 , T ] × Rm → Rm .
on dit alors que le problème de Cauchy est un problème d’évolution, c’est à dire à partir de
la condition initiale, on peut calculer la solution à l’instant t.
• Si f est continue, alors la solution u est de classe C 1 .
Définition 1.3.2 On dit que la fonction f (t, u) est lipschitzienne par rapport à u uniformement
en t s’il existe L > 0 telle que
on obtient
un+1 = un + h f (tn , un ), 0 ≤ n < N, u0 = η donnée
où h = tn+1 − tn est le pas.
Exemple : f (t, u) = αu alors un+1 = un (1 + αh)
• Le schéma d’Euler
R tn+1
implicite (ordre 1)
L’intégrale tn f (s, u(s))ds est approchée par la méthode des rectangles à droite :
Z tn+1
f (t, u(t))dt ≈ h f (tn+1 , u(tn+1 )),
tn
on obtient
un+1 = un + h f (tn+1 , un+1 ), u0 = η donnée
un
Exemple : f (t, u) = αu alors un+1 = 1−αh
• Le schéma de Cranck-Nicholson semi-implicite (ordre 2)
R tn+1
L’intégrale tn f (s, u(s))ds est approchée par la méthode des trapèzes
Z tn+1
h
f (t, u(t))dt ≈ ( f (tn , u(tn )) + f (tn+1 , u(tn+1 ))),
tn 2
on obtient
f (tn , un ) + f (tn+1 , un+1 )
un+1 = un + h , u0 = η donnée
2
1+αh/2
Exemple : f (t, u) = αu alors un+1 = 1−αh/2 un
1.4 Schémas numériques à un pas 9
• Le schéma d’Euler
R tn+1
modifié (point milieu) (ordre 2)
L’intégrale tn f (s, u(s))ds est approchée par la méthode du point milieu
Z tn+1
h h
f (t, u(t))dt ≈ h f (tn + , u(tn + ))),
tn 2 2
h h
un+1 = un + h f (tn + , un + f (tn , un )), u0 = η donnée
2 2
On peut écrire
k1 = f (tn , un )
k = f (tn + h2 , un + h2 k1 )
2
un+1 = un + hk2
un+1 = un + hun
= (1 + h)un .
dont la solution est u(t) = 13 + t. Appliquons la méthode d’Euler pour en chercher la solution
approchée à l’instant T , pour différentes valeurs de T et différents choix du pas h. Les résultats
obtenus peuvent surprendre. Le tableau suivant donne les erreurs dans le calcul de uN :
h T =5 T = 10 T = 20
1 1.8651 10−14 1.9403 10−11 2.0345 10−05
0.5 4.9560 10−13 4.7278 10−09 4.2999 10−01
0.1 5.2402 10−14 2.6318 10−08 6.5252 10+03
0.05 1.5525 10−11 1.8232 10−05 2.5142 10+07
On constate que l’erreur semble croître avec le pas, contrairement à ce que l’on espérait. Par
ailleurs, pour T = 20, cette erreur atteint des valeurs astronomiques !!!
Analyse de l’exemple
Calculons la solution générale de l’équation différentielle : u0 (t) = 3u(t) − 3t.
La solution de l’équation homogène est u(t) = Ke3t . La méthode de variation de la constante fournit
pour notre équation
1 1
K 0 (t) = −3te−3t ⇒ K(t) = (t + )e−3t + k ⇒ u(t) = t + + ke3t .
3 3
La constante k peut être évaluée à l’aide de la valeur de u en 0, avec k = 0 si u(0) = 13 . Mais
si u(0) = 13 + δ . On obtient k = δ implique que la solution réelle du problème devient uδ (t) =
1 3t 3T sont respectivement :
3 + t + δ e . Les valeurs de e
• pour T = 5, e ' 3.269 106 ,
3T
ou aussi
u(tn+1 ) = u(tn ) + hφ (tn , u(tn ), h) + εn+1
• Erreur globale max |en+1 | avec en+1 = u(tn+1 ) − un+1 . On peut écrire
0≤n≤N−1
ou aussi
u(tn+1 ) = un + hφ (tn , un , h) + en+1
Le schéma à pas séparé est dit consistant si ∀u ∈ C1 , ∀t ∈ [a, b], l’erreur de troncature
u(t + h) − u(t)
R(t, u, h) = − φ (t, u(t), h)
h
tends vers 0 lorsque h tends vers 0. (Autrement dit φ (t, u, 0) = f (t, u)).
Définition 1.5.2 Ordre Le schéma à pas séparé est dit d’ordre p si il existe C > 0 indépendante
de h et de t tel que kR(t, u, h)k ≤ C(h) p
On dit aussi que le schéma est p-consistant.
On pose τn+1 (h) = R(tn , u(tn ), h) l’erreur de troncature du schéma (*) à l’instant tn+1 . On a donc
εn+1
τn+1 (h) =
h
Le schéma (*) est alors consistant si on a
Pour déterminer la consistance et l’ordre d’un schéma, nous utilisons la formule de Taylor.
Théorème 1.5.1 Taylor Supposons u de classe C p ([a, b]), alors ∀t ∈ [a, b] et ∀h ∈ R tels que
p
t + h ∈ [a, b] on a u(t + h) = u(t) + hu0 (t) + · · · + hp! u(p) (t) + O(h p+1 )
Exemples :
1. u(t + h) = u(t) + hu0 (t) + O(h2 ) (pour u ∈ C1 )
2. u(t) = u(t + h) − hu0 (t + h) + O(h2 ) (pour u ∈ C1 )
3. u(t + h) = u(t) + O(h1 ) (pour u ∈ C0 )
• Les schémas d’Euler explicite et implicite sont d’ordre 1
u(t + h) = u(t) + hu0 (t) + O(h2 )
= u(t) + h f (t, u(t)) + O(h2 )
donc R(t, u, h) = u(t+h)−u(t)
h − f (t, u) = O(h)
• Le schéma d’Euler modifié est d’ordre 2
2
u(t + h) = u(t + 2h ) + h2 u0 (t + 2h ) + h8 u00 (t + h2 ) + O(h3 )
2
u(t) = u(t + h2 ) − h2 u0 (t + h2 ) + h8 u00 (t + h2 ) + O(h3 )
donc u(t + h) = u(t) + hu0 (t + h2 ) + O(h3 )
Et u(t + h2 ) = u(t) + 2hu0 (t) + O(h2 ) donc
u(t + h) = u(t) + h f t + h2 , u(t) + 2h f (u(t),t) + O(h3 )
h2 00 h3 hp
u(t + h) = u(t) + hu0 (t) + u (t) + u(3) (t) + . . . + u(p) (t) + . . .
2! 3! p!
∂Φ h2 ∂ 2 Φ h3 ∂ 3 Φ
Φ(t, u(t), h) =Φ(t, u(t), 0) + h (t, u(t), 0) + (t, u(t), 0) + (t, u(t), 0)+
∂h 2! ∂ 2 h 3! ∂ 3 h
h p−1 ∂ p−1 Φ
...+ (t, u(t), 0) + . . .
(p − 1)! ∂ p−1 h
alors
2 1 00 ∂Φ
0
εn+1 = h u (t) − Φ(t, u(t), 0) + h u (t) − (t, u(t), 0)
2 ∂h
h3 1 (3) ∂ 2Φ hp ∂ p−1 Φ
1 (p)
+ u (t) − 2 (t, u(t), 0) + . . . + u (t) − p−1 (t, u(t), 0) .
2! 3 ∂ h (p − 1)! p ∂ h
1.5 Analyse de la méthode d’Euler 13
On conclut que :
Le schéma est au moins d’ordre 1 (consistant) si
Φ(t, u(t), 0) = u0 (t) = f (t, u(t))
Le schéma est au moins d’ordre 2 si de plus
∂Φ 1 1d 1
(t, u(t), 0) = u00 (t) = f (t, u(t)) = ∂t f (t, u(t)) + u0 (t)∂u f (t, u(t))
∂h 2 2 dt 2
1
= [∂t f (t, u(t)) + f (t, u(t))∂u f (t, u(t))] .
2
Le schéma est au moins d’ordre 3 si de plus
∂ 2Φ 1 (3) 1 d2
(t, u(t), 0) = u (t) = f (t, u(t)).
∂ 2h 3 3 dt 2
Le schéma est au moins d’ordre p si de plus
∂ p−1 Φ 1 (p) 1 d p−1
(t, u(t), 0) = u (t) = f (t, u(t)).
∂ p−1 h p p dt p−1
1.5.3 Stabilité
Un schéma est stable signifie qu’une petite perturbation sur les données (u0 , Φ) n’entraîne qu’une
petite perturbation sur la solution indépendamment de h. Plus précisément, soient (un )n , (vn )n ,
n = 0, . . . , N, les solutions de
(
un+1 = un + hΦ(tn , un , h), n = 0, . . . , N − 1
(1.5.1)
u0 donné,
et
(
vn+1 = vn + h(Φ(tn , un , h) + δn+1 ), n = 0, . . . , N − 1
(1.5.2)
v0 donné.
Définition 1.5.3 La méthode est dite stable s’il existe deux constantes M1 et M2 indépendantes
de h telles que
Théorème 1.5.2 (Convergence) Soit une méthode à un pas consistante et stable, alors elle est
convergente.
Ce qui montre
max |un − u(tn )| −→ 0,
0≤n≤N
et le schéma est convergent.
14 Chapter 1. Résolution numérique des EDO
Proof. Soient (un )n solution de (1.5.1) et (vn )n solution de (1.5.2). En faisant la différence de deux
équations, il vient
|un+1 − vn+1 | ≤ |un − vn | + h|Φ(tn , un , h) − Φ(tn , vn , h)| + h|δn+1 |,
en tenant compte du fait que Φ est M-Lipschitz,
|un+1 − vn+1 | ≤ (1 + hM)|un − vn | + h|δn+1 |.
On réutilise cette estimation pour estimer |un − vn |, on déduit
|un+1 − vn+1 | ≤ (1 + hM)2 |un−1 − vn−1 | + (1 + hM)h|δn | + h|δn+1 |,
ce qui permet de conclure par récurrence que
n
|un+1 − vn+1 | ≤ (1 + hM)n+1 |u0 − v0 | + h ∑ (1 + hM)k |δn−k+1 |, (1.5.4)
k=0
On a
n
1 − (1 + hM)n+1 (1 + hM)n+1 − 1
∑ (1 + hM)k = 1 − 1 − hM
=
hM
,
k=0
d’autre part,
(1 + hM)n+1 ≤ e(n+1)hM ≤ e(T −t0 )M
De (1.5.4), on déduit
n
|un+1 − vn+1 | ≤ (1 + hM)n+1 |u0 − v0 | + h ∑ (1 + hM)k max |δk |,
k=0 0≤k≤N
(1 + hM)n+1 − 1
≤ (1 + hM)n+1 |u0 − v0 | + max |δk |,
M 0≤k≤N
e(T −t0 )M − 1
≤ e(T −t0 )M |u0 − v0 | + max |δk |,
M 0≤k≤N
e(T −t0 )M −1
ce qui établit (1.5.3) avec M1 = e(T −t0 )M et M2 = M .
R tn+1
• L’intégrale tn f (t, u(tn ) est approchée par la méthode des trapèzes, on aura
h
un+1 = un + ( f (tn , un ) + f (tn+1 , un+1 ))
2
• Cette forme est implicite en un+1 qui sera approchée par pn+1 grace au schéma d’Euler
(schéma prédicteur)
pn+1 = un + h f (un ,tn ) ≈ un+1
• Le schéma de Heun (schéma correcteur)
h
un+1 = un + [ f (tn , un ) + f (tn+1 , un + h f (un ,tn ))]
2
• La fonction incrément dans ce cas est
1
φ (t, u; h) = [ f (tn , un ) + f (tn+1 , un + h f (un ,tn ))]
2
Les poids ωi , et les coefficients αi et ai j sont à choisir de tel sort à assurer la consistance.
Tableau de Butcher :
• On résume la méthode de Runge Kutta par le tableau de Butcher
α2 a21
α3 a31 a32
.. .. .. ..
. . . .
αq−1 aq−1,1 aq−1,2 · · · aq−1,q−2
αq aq,1 aq,2 ··· aq,q−2 aq,q−1
ω1 ω2 ω3 ··· ωq−1 ωq
• La méthode de Runge-Kutta est consistante si
i−1
∑ ai, j = αi , pour i = 2, · · · , q
j=1
k1 = f (tn , un ),
k = f (t , u + hk ))
2 n+1 n 1 1 1
1 1
h 2 2
un+1 = un + (k1 + k2 )
2
1
un+1 = un + h (k1 + 4k2 + k3 )
6
où
k1 = f (tn , un )
f tn + 2h , un + h2 k1
k =
2
k3 = f (tn + h, un − hk1 + 2hk2 )
1 1
2 2
Le tableau de Butcher de RK3 1 −1 2
1/6 2/3 1/6
1
un+1 = un + h (k1 + 2k2 + 2k3 + k4 )
6
où
k1 = f (tn , un )
f tn + h2 , un + 2h k1
k2 =
k = f tn + h2 , un + 2h k2
3
k4 = f (tn + h, un + hk3 )
1/2 1/2
1/2 0 1/2
Le tableau de Butcher de RK4
1 0 0 1
1/6 2/6 2/6 1/6
Exemples :
Méthode explicite à 2 pas (Méthode du point milieu)
u0 donné et u1 à déterminer.
Méthode implicite à 2 pas (Méthode de Simpson)
h
un+1 = un−1 + [ fn−1 + 4 fn + fn+1 ], n≥1
3
u0 donné et u1 à déterminer.
• Les méthodes multi-pas linéaires à p + 1 pas (p ≥ 0) sont définies par
p p
un+1 = ∑ a j un− j + h ∑ b j fn− j + hb−1 fn+1 , n = p, p + 1, · · ·
j=0 j=0
• L’idée est d’approcher f (t, u(t)) dans l’intégrale par un polynôme d’interpolation (Ln,p ) aux
points (tn−i )0≤i≤p
Z tn+1
u(tn+1 ) ≈ u(tn ) + Ln,p (t)dt
tn
• L’intégrale est calculée analytiquement
• Pour p = 0 (Ln,0 (t) = fn ), on retrouve le schéma à un pas d’Euler explicite (ordre 1)
Z tn+1
un+1 = un + Ln,0 (t)dt = un + h fn
tn
h
un+1 = un + (3 fn − fn−1 )
2
• Méthode d’ADAMS-BASHFORTH à 3 pas (ordre 3)
h
un+1 = un + (23 fn − 16 fn−1 + 5 fn−2 )
12
1.8 Schémas numériques à pas liés 19
h
un+1 = un + (55 fn − 59 fn−1 + 37 fn−2 − 9 fn−3 )
24
∗ ) aux
• La fonction f (t, u(t)) est approchée, dans ce cas, par un polynôme d’interpolation (Ln,p
points (tn+1−i )0≤i≤p
Z tn+1
∗
u(tn+1 ) ≈ u(tn ) + Ln,p (t)dt
tn
∗ (t) = f
• Pour p = 0 (Ln,0 n+1 ), on retrouve le schéma à un pas d’Euler implicite (ordre 1)
Z tn+1
∗
un+1 = un + Ln,0 (t)dt = un + h fn+1
tn
h
un+1 = un + ( fn+1 + fn ) ,
2
h
un+1 = un + (5 fn+1 + 8 fn − fn−1 ) ,
12
h
un+1 = un + (9 fn+1 + 19 fn − 5 fn−1 + fn−2 ) ,
24
• Ces schémas sont implicites et leur ordre correspond au nombre de pas plus un.