Equations différentielles. Méthodes numériques

Transcription

Equations différentielles. Méthodes numériques
Licence à distance
Chapitre V : Equations différentielles. Méthodes numériques à un pas.
M. Granger
Table des matières
1 Rappels sur le cours d’équations différentielles
1.1 Généralités . . . . . . . . . . . . . . . . . . . . .
1.2 Enoncé du théorème de Cauchy-Lipschitz . . . .
1.3 Sur la régularité des solutions. . . . . . . . . . . .
1.4 Méthode d’Euler. . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
3
4
2 Introduction à la notion de schéma numérique
6
3 Quelques exemples de méthodes
3.1 Méthode d’Euler. . . . . . . . .
3.2 Méthode de Taylor d’ordre p. .
3.3 Méthode du point milieu. . . .
8
8
8
9
à un pas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Etude générale de la convergence des méthodes à un pas : consistance et stabilité
4.1 Consistance, stabilité et convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 La notion de consistance d’un schéma . . . . . . . . . . . . . . . . . . . . . . .
4.1.2 La notion de stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3 La notion de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Quelques conditions suffisantes ou nécessaires et suffisantes de consistance ou de stabilité.
4.3 Ordre d’une méthode à un pas et erreur globale. . . . . . . . . . . . . . . . . . . . . .
4.3.1 .- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 La constante SCT de majoration de l’erreur globale . . . . . . . . . . . . . . .
4.3.3 La constante SCT de majoration de l’erreur globale . . . . . . . . . . . . . . .
11
11
11
11
12
13
16
16
16
17
5 Quelques remarques sur les aspects numériques
5.1 Sur les inconvénients du cumul des erreursd’arrondi . . . . . . . . . . . . . . . . . . .
5.2 Problèmes de Cauchy bien posés numériquement, probl‘emes mal conditionnés . . . .
17
17
18
6 Méthode(s) de Runge Kutta.
6.1 description de la méthode . . . . . . . . . .
6.2 Quelques exemples . . . . . . . . . . . . . .
6.3 Thèmes de TD . . . . . . . . . . . . . . . .
6.3.1 Tester (RK)4 sur l’exemple fétiche y 0
6.3.2 Ordre d’une méthode (RK)4 . . . . .
19
19
20
21
21
22
. . . .
. . . .
. . . .
= −y.
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Rappels sur le cours d’équations différentielles
Les deux premières sous-sections sont des rappels que nous donnons pour fixer les notations de
notions et de résultats développés dans le cours d’équations différentielles : cylindre de sécurité et
théorème de Cauchy-Lipschitz. Les deux suivantes sont plus spécifiques à notre propos : régularité
des solutions, avec l’introduction des fonctions f [k] (x, y) outil de calcul des dérivées successives d’une
solution et méthode d’Euler, qui est la méthode ”de base” pour le calcul approché des solutions.
1.1
Généralités
Les données du problème sont les suivantes :
– U ⊂ R × Rm , un ouvert
– f : U → Rm , une application (au moins continue. )
On cherche les solutions de l’équation différentielle
(E)
y 0 = f (t, y),
c’est à dire les couples (I, ϕ), où I ⊂ R est un intervalle et ϕ : I → Rm est une application dérivable,
telle que :
∀t ∈ I , (t, ϕ(t)) ∈ U et ϕ0 (t) = f (t, ϕ(t)).
On s’intéresse au problème de Cauchy de condition initiale (t0 , y0 ), c’est à dire à l’existence d’une
solution de (E), sur un intervalle I telle que t0 ∈ I, et ϕ(t0 ) = y0 , et à l’éventuelle unicité, pour I fixé,
d’une telle solution.
La condition sur ϕ équivaut à l’équation intégrale :
Z t
ϕ(t) = y0 +
f (t, ϕ(u))du
t0
Dans tout ce qui suit f est au minimum supposée continue.
Cylindres de sécurité
On choisit un compact K0 = [t0 − T0 , t0 + T0 ] × B(y0 , r0 ) ⊂ U, centré en (t0 , y0 ), et on note
M = sup kf (t, y)k. Ce nombre M est fini par la compacité de K0 et la continuité de f. Le choix
(t,y)∈K0
de la norme sur Rm est arbitraire.
r0
Proposition 1 .- Soit T = min(T0 , M
). Toute solution au problème de Cauchy pour les conditions
initiales (t0 , y0 ) satisfait à :
|t − t0 | ≤ T =⇒ kϕ(t) − y0 k ≤ r0
On appelle [t0 − T, t0 + T ] × B(y0 , r0 ) un cylindre de sécurité pour la condition initiale (t0 , y0 ).
1.2
Enoncé du théorème de Cauchy-Lipschitz
(sans démonstrations)
Nous renvoyons au cours d’équations différentielles pour la démonstration à l’aide du théorème du
point fixe et pour d’éventuels énoncés plus généraux.
Théorème 1 .- On suppose que f : U → Rm est continue et localement lipschitzienne dans la
deuxième variable, ce qui signifie que tout point de U admet un voisinage de la forme J × V , tel
qu’il existe une constante k (dépendant de J × V !), avec la condition :
∀t ∈ J, ∀y1 , y2 ∈ V, kf (t, y1 ) − f (t, y2 )k ≤ kky1 − y2 k
Alors, pour tout cylindre de sécurité C = [t0 − T, t0 + T ] × B(y0 , r0 ), l’équation (E) admet une unique
solution, de condition initiale (t0 , y0 ), définie sur l’intervalle I = [t0 − T, t0 + T ].
1.3
Sur la régularité des solutions.
Si la fonction f est différentiable de classe C k , avec k ≥ 1, on peut en déduire un résultat sur
l’ordre de dérivabilité des solutions ϕ, et calculer les dérivées successives de ϕ à l’aide de fonctions
construites récursivement à partir de f . C’est utile pour obtenir des majorations, fondées sur la formule
de Taylor, de l’erreur commise dans une approximation numérique de ϕ.
Proposition 2 .- 1) Si la fonction f est de classe C k , avec k ≥ 1, toute solution t 7→ z(t), de l’équation
(E) est de classe C k+1 .
2) Les fonctions f [i] : U → R, définies récursivement, pour i = 0, · · · , k, par les formules :
m
f
[0]
= f, et f
[i+1]
X
∂f [i]
∂f [i]
(t, y) =
(t, y) +
(t, y)
f` (t, y)
∂t
∂y`
`=0
sont de classes respectives C k−i , et pour toute solution z(t) de l’équation (E), ses dérivées successives
s’obtiennent par les formules :
z (i+1) (t) = f [i] (t, z(t))
Démonstration.- On démontre ce résultat par récurrence sur i.
-La classe de différentiabilité de f [i] , s’obtient par la formule de récurence et une application directe
de la définition de la classe C k .
-Pour la différentiabilité de z, on montre par récurrence sur i, pour 0 ≤ i ≤ k, l’existence de z (i+1) ,
et la formule annoncée en 2).
Pour i = 0, il s’agit simplement de l’égalité z 0 (t) = f (t, z(t)), qui signifie que t → z(t) est une solution.
On voit sur cette relation que z 0 est continûment dérivable et la formule de dérivation des fonctions
composées s’écrit :
m
X
∂f
∂f
z (t) =
(t, z(t)) +
z`0 (t)
(t, z(t))
∂t
∂y`
00
`=0
=
∂f
(t, z(t)) +
∂t
m
X
f` (t, z(t))
`=0
∂f
(t, z(t))
∂y`
[1]
= f (t, z(t))
Pour le pas général de la récurrence, on suppose que z (i+1) (t) = f [i] (t, z(t)), avec 1 ≤ i < k. Alors
puisque f [i] est de classe C k−i , avec k − i > 0, on en déduit que z (i+1) est encore continûment dérivable
et par un calcul semblable au cas de z 00 , on trouve :
m
z
(i+2)
(t) = (z
X
∂f [i]
∂f [i]
(t, z(t)) +
f` (t, z(t))
(t, z(t))
) (t) =
∂t
∂y`
(i+1) 0
`=0
=f
[i+1]
(t, z(t))
Exemple : Dans le cas scalaire (m = 1), voici les formules obtenues pour f [1] et f [2] , qui permettent
de calculer z (2) et z (3) :
∂f
∂f
f [1] =
+ f.
∂t
∂y
[1]
∂f
∂f [1]
f [2] =
+ f.
∂t
∂y
2
∂ f
∂2f
∂2f
∂f
∂f ∂f
= 2 + 2f.
+ f 2 2 + f ( )2 +
∂t
∂t∂y
∂y
∂y
∂t ∂y
Exercice : On suppose que f est de classe C 1 , déterminer par une inégalité l’ensemble des points
(t0 , y0 ) au voisinage desquels une solution z(t) telle que z(t0 ) = y0 soit convexe. Expliciter le résultat
pour l’équation y 0 = t − y 2 .
1.4
Méthode d’Euler.
On reprend les notations précédentes concenant un cylindre de sécurité, et on ne s’occupe pour
simplifier que des solutions à droite c’est à dire sur l’intervalle [t0 , t0 + T ].
Dans toute la suite, on gardera les notations suivantes :
t0 < t1 < · · · < tN = t0 + T,
hn = tn+1 − tn pour n = 0, · · · , N − 1
définit une subdivision de [t0 , t0 + T ], et hn est appelé le (n + 1)ième pas de la subdivision. On parle
T
de subdivision à pas constant si tn = t0 + nT
N , hn = N indépendant de n.
La méthode d’Euler ou méthode de la tangente consiste à approcher une solution (éventuelle !) z(t)
de (E) par une fonction y(t) continue affine par morceaux, affine en restriction à chaque intervalle
[tn , tn+1 ], de pente f (tn , yn ) où yn = y(tn ). Ceci donne le calcul par récurrence suivant des yn appelé
schéma d’Euler et l’expression de y(t) :


condition initiale ,
y(t0 ) = y0
yn+1 = yn + hn f (tn , yn )
formule de récurrence pour les yn ,


y(t) = yn + (t − tn )f (tn , yn ) si t ∈ [tn , tn+1 ] .
Ce schéma peut être illustré par le dessin suivant où on a représenté simultanément une solution
exacte z(t) passant par les point Mi de coordonnées (ti , z(ti )), et une solution approchée linéaire par
morceaux de graphe la ligne brisée (A0 , A1 · · · ), Ai de coordonnées (ti , yi ).
A2
A3
A1
B2
M1
M2
M3
M0=A0
t0=a
t1
t3=b
t2
f ig.1
Noter que la pente f (tn , yn ) du segment An An+1 diffère en général (sauf pour n = 0) de z 0 (tn ) =
f (tn , z(tn )). Par exemple sur la figure z 0 (t1 ) est la pente du segment [M1 B2 ], et f (t1 , y1 ) celle du
segment [A1 A2 ]
Exercice : Montrer que dans la situation du théorème 1, toute solution approchée affine par
morceaux construite par la méthode de la tangente a un graphe contenu dans le cylindre de sécurité
C.
Nous admettrons le résultat suivant de convergence uniforme, qui implique le théorème 1.
Soit yp (t) une suite de solution approchées, construite par la méthode d’Euler à partir d’une
subdivision tp,0 < tp,1 < · · · < tp,Np de l’intervalle [t0 , t0 + T ]. On note hp,max = max(hp,1 , · · · , hp,Np )
appelé pas maximal de la subdivision pour yp .
Dans la situation du théorème 1 toute suite yp (t), de solutions approchées, dont le pas maximal
tend vers zéro lorsque p → ∞, converge uniformément vers la solution z(t).
Dans le chapitre suivant on se place uniquement dans la situation du théorème 1, avec unicité de
z(t).
2
Introduction à la notion de schéma numérique
On considère une équation différentielle y 0 = f (t, y), dans laquelle f satisfait aux conditions du
théorème de Cauchy-Lipschitz, et on notera dans toute la suite t 7→ z(t) la solution unique sur
[t0 , t0 + T ], dont le graphe est contenu dans un cylindre de sécutité [t0 − T, t0 + T ] × B(y0 , r0 ).
On appelera parfois z la ”solution exacte”, par opposition aux solutions approchées notées t 7→ y(t).
Pour l’évaluation approchée de z(t), la stratégie générale est la suivante :
• Définir un schéma numérique : on appelle ainsi les formules de récurrence associées à une méthode
numérique de résolution des équations différentielles. Il s’agit d’une méthode de calcul de valeurs
approchées notées yn des z(tn ), où les tn sont les termes d’une subdivision à N pas de [t0 , t0 +T ] :
t0 < t1 < · · · < tN = t0 + T
Le nième pas est noté hn = tn+1 − tn (on commence à l’indice 0), et le pas maximum est
hmax = max hn
0≤n≤N −1
On peut considérer la fonction affine par morceaux y(t) telle que pour tout n, y(tn ) = yn , ce qui
donne précisément :
y(t) = yn +
t − tn
(yn+1 − yn ) si t ∈ [tn , tn+1 ]
hn
• Evaluer ky(t)−z(t)k pour t ∈ [tn , tn+1 ] et trouver un majorant (en fonction de f et de la méthode
utilisée) de
sup( sup ky(t) − z(t)k
n
t∈[tn ,tn+1 ]
• Etudier le comportement de cette majoration en fonction de la subdivision et particulièrement
lorsque hmax → 0.
Définition 1 Un schéma numérique à un pas explicite est une équation de récurrence de la forme :
(
yn+1 = yn + hn Φ(tn , yn , hn )
tn+1 = tn + hn
Le domaine de définition de Φ contient au moins U × {0} et on doit vérifier dans chaque situation
concrète que l’itération est compatible avec ce domaine de définition.
Mentionnons d’autres types de schémas numériques dont l’étude dépasse le cadre de ce cours. Dans
les méthodes implicites la fonction Φ dépend aussi de yn+1 . Dans un schéma numérique explicite à q
pas Φ dépend aussi d’un nombre fixe de termes précédemment calculés, yn−q+1 . . . yn , et la méthode
doit être complétée par une initialisation, pour le calcul des q premiers termes.
Définition 2 Un schéma numérique à un pas implicite est de la forme :
(
yn+1 = yn + hn Φ(tn , yn , yn+1 , hn )
tn+1 = tn + hn
Dans le cas d’une méthode implicite il s’agira le plus souvent de s’assurer que l’équation
y = yn + hΦ(tn , yn , y, h)
a une solution unique du moins pour tout h assez petit. Dans les cas les plus courants cela résultera
du théorème des fonctions implicites.
Définition 3 Un schéma numérique à q pas explicite est de la forme :
(
yn+1 = yn + hn Φ(tn , yn , · · · , yn−q , hn )
tn+1 = tn + hn
avec n = N q, · · · , N − 1.
Bien sur la calcul de yn n’est possible qu’à partir de l’indice q et la méthode doit être complétée par
une initialisation, le calcul des q premiers termes, par exemple par une méthode à un pas.
L’erreur de consistance au pas n est par définition l’erreur commise sur yn+1 , lorsqu’on prend pour
les valeurs précédentes des yk les valeurs exactes z(tk ), ce qui donne la définition suivante où nous
n’explicitons que pour les méthodes a un pas.
Définition 4 L’erreur de consistance est la suite
en = z(tn+1 ) − yn+1 (tn , z(tn ), hn ) = z(tn+1 ) − z(tn ) − hn Φ(tn , z(tn ), hn ).
Illustration sur la figure 1. Par définition les erreurs de consistance e1 , e2 etc, sont des différences
d’ordonnées égales respectivement aux mesures des segments orientés M1 A1 , M2 B2 · · · . Au premier pas
e1 n’est autre que l’erreur y1 − z(t1 ), mais dès le deuxième pas l’erreur y2 − z(t2 ) = M2 A2 ) diffère bien
sur de e2 car A2 6= B2 , mais aussi du cumul e1 + e2 dès que les pentes f (t1 , y1 ), et z 0 (t1 ) = f (t1 , z(t1 ))
des segments A1 A2 et M1 B2 diffèrent.
Les valeurs de z(ti ) n’étant pas connues pour i ≥ 1, l’erreur de consistance est surtout un outil
théorique qui intervient dans le calcul d’une majoration de l’erreur |z(tn ) − yn |.
Définition 5 On dit qu’un schéma numérique est d’ordre p, si en = o(hp+1
n ), lorsque hn → 0.
Comme on le verra dans la section 4.1.3, L’ordre d’une méthode est une indication importante qui
avec la propriété dite de stabilité qui dépend de f gouverne la convergence de y(t) vers z(t). Nous
concluerons seulement cette section par un résultat admis qui donne une première idée intuitive de la
notion d’erreur de consistance :
Définition 6 Une méthode numérique est dite consistante si
lim
hmax →0
N
−1
X
|en | = 0
n=0
Théorème 2 .- Une méthode à un pas est consistante si et seulement si quel que soit (t, y) ∈ U , on
a:
Φ(t, y, 0) = f (t, y)
Démonstration.- Nous donnons plus loin une démonstration détaillée qui fait appel à un maniement
de sommes de Riemann. Intuitivement on peut justifier cet enoncé en remarquant que par le théorème
des accroissements finis, z(tn+1 )−z(tn ) est de l’ordre de hn z 0 (tn ) = hhn f (tn , z(tn )), donc que l’erreur de
consistance en = z(tn+1 )−z(tn )−hn Φ(tn , z(tn ), hn ) est de l’ordre de f (tn , z(tn ))−Φ(tn , z(tn ), hn ) .hn .
Si la condition de l’énoncé n’est pas remplie cette différence est pour h tendant vers zéro de l’ordre de
h, avec un facteur multiplicatif ne tendant pas vers zéro. Le cumul des erreurs d d’arrondi serait donc
de l’ordre du cumul des hn c’est à dire de la quantité fixe T , donc l’erreur ne tendrait pas vers 0 avec
le pas. 3
Quelques exemples de méthodes à un pas
3.1
Méthode d’Euler.
On a déjà décrit cette méthode appelée aussi méthode de la tangente qui correspond au cas de la
fonction :
φ(t, y, h) = f (t, y)
indépendante de t, définie sur U × R.
Calcul de l’erreur de consistance
en =z(tn + hn ) − z(tn ) − hn .f (tn , z(tn ))
=z(tn + hn ) − z(tn ) − hn .z 0 (tn )
par définition de z
Lorsque f est de classe C 1 , z est de classe C 2 et l’erreur de consistance prend la forme suivante grâce
à la formule de Taylor.
1
en = h2n z 00 (tn ) + o(h2n )
2
1 2 [1]
h f (tn , z(tn )) + o(h2n )
2 n
Ainsi la méthode d’Euler est d’ordre un.
3.2
Méthode de Taylor d’ordre p.
On suppose ici que f est de classe C p . On a vu alors que z est de classe C p+1 et on a défini des
fonction f [k] , construite par récurrence à partir de f et de ses dérivées partielles telles que z (k) (t) =
f [k−1] (t, z(t)), pour k = 1, . . . , p + 1. La formule de Taylor à l’ordre p + 1 s’écrit alors :
z(tn + hn ) = z(tn ) +
p
X
k=1
hkn
1 [k−1]
1
f
(tn , z(tn )) +
f [p] (tn , z(tn ))hp+1
+ o(hp+1
n
n )
k!
(p + 1)!
ou avec la formule de Taylor Lagrange :
z(tn + hn ) = z(tn ) +
p
X
k=1
hkn
1 [k−1]
1
f
(tn , z(tn )) +
f [p] (tn + θhn , z(tn + θhn ))hp+1
n , θ ∈]0, 1[.
k!
(p + 1)!
Ceci suggère le schéma numérique suivant obtenu en remplaçant les valeurs inconnues z(tk ) par les yk .

p
X
1

 yn+1 = yn +
hkn f [k−1] (tn , yn )
k!
(Tp )
k=1


tn+1 = tn + hn
La fonction Φ associée à cette méthode est :
Φ(t, y, h) =
p
X
k=1
hk−1
1 [k−1]
f
(t, y)
k!
Le résultat suivant généralise celui qu’on a déjà trouvé pour la méthode d’Euler (T1 ).
Proposition 3 La méthode de Taylor (Tp ) est du point de vue de l’erreur de consistance d’ordre p.
Plus précisément, si on considère un cylindre de sécurité C = [t0 − T, t0 + T ] × B(y0 , r), on a une
majoration :
1
en ≤
sup kf [p] (t, y)khp+1
n
(p + 1)! (t,y)∈C
En effet selon la formule de Taylor qui a servi de base à la méthode on obtient directement (en prenant
la formule de Taylor avec reste de Lagrange) :
en = z(tn + hn ) − z(tn ) −
p
X
k=1
hkn
1 [k−1]
f
(tn , z(tn ))
k!
1
1
=
f [p] (tn + θhn , z(tn + θhn ))hp+1
≤
sup kf [p] (t, y)khp+1
n
n
(p + 1)!
(p + 1)! (t,y)∈C
3.3
Méthode du point milieu.
Notons Mn le point de coordonnées (tn , z(tn )) du graphe de z. Le segment [Mn , Mn+1 ] a une pente
plus proche en général de z 0 (tn + h2n ) pente de la tangente au ”point milieu” que de z 0 (tn ), pente de
la tangente en Mn , comme le montre la figure ci-dessous :
A’1
M1
T
M0
M1/2
A1
tn
tn+hn
f ig.2
On peut donc considérer qu’une approximation de z(tn+1 ) à partir de z(tn ) meilleure que l’expression z(tn ) + f (tn , z(tn )) de la méthode d’Euler est :
hn
hn
hn
) = z(tn ) + hn f (tn +
, z(tn +
))
2
2
2
Dans le schéma numérique que nous avons en vue on peut prendre par récurrence yn approximation
de z(tn ).
Comme z(tn + t2n ) n’est pas connu non plus, il convient d’en chercher une approximation notée
yn+ 1 . Le schéma d’Euler suggère de prendre yn+ 1 = yn + h2n f (tn , yn ).
2
2
On aboutit ainsi donc au schéma numérique :

hn

f (tn , yn )
 yn+ 1 = yn +

2

2



hn
pn = f (tn +
,y 1)
(M)
2 n+ 2




yn+1 = yn + hn pn



tn+1 = tn + hn
(1)
z(tn ) + hn z 0 (tn +
Ce schéma est encore une méthode à un pas explicite dans laquelle l’expression explicite de Φ obtenue
en développant pn est :
hn
hn
Φ(t, y, h) = f (tn +
, yn +
f (tn , yn ))
2
2
Proposition 4 La méthode (M) est d’ordre 2 dès que f est de classe C 2 .
Démonstration.-
On écrit le schéma (M) avec yn = z(tn ) ce qui donne l’erreur de consistance
en = z(tn + hn ) − z(tn ) − hn pn , avec pn = f (tn +
hn
hn
, yn +
f (tn , z(tn ))
2
2
Comme pn est une approximation de z 0 (tn + h2n ), on a interêt à décomposer en ainsi :
(
e0n = z(tn + hn ) − z(tn ) − hn z 0 (tn + h2n )
en = e0n + e00n avec
e00n = hn (z 0 (tn + h2n ) − pn ).
On trouve d’abord en apppliquant la formule de Taylor jusqu’au terme en h3n aux deux fonctions z et
z0 :
hn
) − z 0 (tn ))
2
h2
h3
hn
h2
= n z 00 (tn ) + n z (3) (tn ) + o(h3n ) − hn ( z 00 (tn ) + n z (3) (tn )o(h2n ))
2
6
2
8
3
h3n (3)
h
=
z (tn ) + o(h3n ) = n f [2] (tn , z(tn )) + o(h3n )
24
24
e0n = z(tn + hn ) − z(tn ) − hn z 0 (tn ) − hn (z 0 (tn +
d’autre part on peut appliquer la formule de Taylor par rapport à la variable y dans l’expression de
e00n , ce qui donne :
hn
hn
hn
hn
, z(tn +
)) − f (tn +
, z(tn ) +
)f (tn , yn ))]
2
2
2
2
∂f
hn
hn
hn
= hn (tn +
, Θn )[z(tn +
)) − z(tn ) −
)f (tn , yn )]
∂y
2
2
2
e00n = hn [f (tn +
avec Θn sur le segment ]z(tn ) +
∂f
∂y
hn
hn
hn
2 )f (tn , yn ), z(tn + 2 ))[=]yn+ 12 , z(tn + 2 ))[ Du fait que
∂f
hn
de classe C 1 on déduit que ∂f
∂y (tn + 2 , Θn ) = ∂y (tn , yn ) +
Θn =
yn + O(hn ), et du fait que
est
O(hn )
0
et finalement tenant compte de z (tn ) = f (tn , z(tn )), et en appliquant encore la formule de Taylor à
l’ordre 2 à z(tn + h2n ) :
∂f
hn
1 h2n 00
hn
(tn , yn ) + O(hn ))( z 0 (tn ) +
z (tn ) −
)f (tn , yn ))
∂y
2
2 2
2
h3 ∂f
h3 ∂f
= n
(tn , yn )z 00 (tn )o(h3n ) = n
(tn , yn )f [1] (tn , z(tn )) + o(h3n )
8 ∂y
8 ∂y
e00n = hn (
En apparence ce calcul semble restreint au cas scalaire m = 1, mais en fait il est intégralement
n
valable en général à condition de considérer que ∂f
∂y (t, y).v désigne la valeur sur le vecteur v ∈ R de
n
n
n
l’application linéaire R → R dérivé partielle de f au point (t, y) ∈ U ⊂ R × R .
Exercice Montrer avec les même calculs mais la formule de Taylor-Lagrange la majoration explicite
suivante, qui met en jeu des normes du sup sur le cylindre de sécurité :
en ≤ (
1 [2]
1 ∂f
kf k∞ + k k∞ kf [1] k∞ )hmax .
24
8 ∂y
Un exemple simple : On considère l’équation y 0 = −y, avec les données initiales t0 = 0, y0 = 1, et
1
n
la subdivision de [0, 1] de pas constant 10
, tn = 10
, n = 0, · · · , 10.
La solution exacte est connue : z(t) = e−t , ce qui permet de comparer aisément différentes méthodes
quant à leur précision en fonction du pas.
La comparaison est proposée en exercice et on constatera des erreurs respectives de l’ordre de
2.10−2 , 10−3 , 2.10−5 pour les schémas (T1 ) (T2 ) et (T3 ). On verra aussi que pour atteindre la même
précision que par 10 pas avec (T3 ), le nombre de pas nécessaires serait de :
-100 pas dans le cas de la méthode de Taylor d’ordre 2.
-10000 pas dans le cas de la méthode d’Euler.
Vérifier au passage que la méthode du point milieu donne sur cet exemple la même formule que T2
Cet exemple montre que la méthode d’Euler n’est pas assez précise pour qu’on puisse s’en contenter
dans la pratique. L’augmentation du nombre de pas est en effet préjudiciable à cause du cumul des
erreurs d’arrondis, qui pour une méthode donnée impose une borne à la précision.
Le choix d’une méthode résulte d’un compromis entre la sophistication du schéma utilisé qui doit
rester raisonnable et le gain d’efficacité.
On étudiera dans la section 6 le méthode(s) de Runge Kutta. Il y a toute une famille de schémas
numériques qui portent ce nom, mais le plus classique et le plus utilisé d’entre eux est celui d’ordre 4.
4
Etude générale de la convergence des méthodes à un pas : consistance et stabilité
4.1
4.1.1
Consistance, stabilité et convergence
La notion de consistance d’un schéma
Il s’agit du bon comportement de l’erreur du même nom.
Définition 7 Une méthode numérique est dite consistante si
lim
hmax →0
4.1.2
N
−1
X
|en | = 0
n=0
La notion de stabilité
Dans la pratique les valeurs de yn sont perturbées par des valeurs voisines yf
n pour deux raisons :
1) Erreurs d’arrondi : on représente en machine la valeur yn issue du calcul par un nombre décimal
à q chiffres : |f
yn − yn |, est alors l’erreur d’arrondi majoré en valeur relative par 10−q yn .
2) Incertitude expérimentale Dans la plupart des problèmes concrets la ”vraie” valeur (notion
mythique...) de y0 est remplacée par une valeur ye0 tirée d’une expérience, d’une hypothèse etc :
|ye0 − y0 | est donc majorée par un nombre qui dépend de la précision expérimentale.
La méthode ne peut donc être utile que si la perturbation sur |yf
N − yN | provoquée par une faible
perturbation |ye0 − y0 | des données initiales et par les erreurs d’arrondi sur les termes yf
n antérieurs est
faible :
Définition 8 Une méthode est dite stable s’il existe S > 0 tel que quelle que soient les suites , définies
par récurence par les formules :
(
yn+1 = yn + hn Φ(tn , yn , hn )
yg
f
f
n+1 = y
n + hn Φ(tn , y
n , hn ) + n ,
on a :
max |f
yn − yn | ≤ S(|ye0 − y0 | +
0≤n≤N
N
−1
X
n=0
|n |).
Remarques sur l’évaluation de l’erreur. Dans ces formules n est une erreur d’arrondi qu’on majore
dans la pratique en erreur relative par 0, 5.10−q en fonction de la précision de la machine : q est le
nombre de chiffres dans l’écriture en virgule flottante et si yn ∈ [10k−1 , 10k [ avec k ∈ Z, l’erreur
d’arrondi absolue est au plus 0, 5.10k−q . La quantité |y˜0 − y0 |, de son coté doit être évaluée (donc
majorée) en fonction de la nature (physique ou autre) du problème modélisé.
Ainsi, selon la définition, on ne peut donc pas espérer une précision relative à priori meilleure que :
S × (N + 1) × 0, 5.10−16
pour une écriture de réels avec 16 chiffres significatifs.
Par conséquent, le fait qu’une méthode soit stable n’est pas une garantie d’obtenir des résultats
numériquement fiables lorsqu’on se heurte à l’un des deux écueuils suivants :
- Lorsqu’on on prend un pas très petit, donc N très grand N le cumul des erreurs d’arrondis peut
provoquer une erreur trop élevée.
- La constante de stabilité S peut être très grande de l’ordre de 10+16 ou plus ce qui ote toute
crédibilité aux résultats obtenus. C’est le cas de problème dits numériquement mal posés. C’est aussi
le cas, lorsqu’on cherche les solutions pour [t0 , t0 + T ], avec T trop grand. En effet que S croı̂t exponentiellement avec T . Voir la formule finale dans la démonstration du théorème 5 avec une constante
de stabilité en S = eLT , et la sous section 4.3.2 avec le facteur SCT = eLT CT pour le facteur
d’amplification de l’erreur.
4.1.3
La notion de convergence
Faisant abstraction des contraintes pratiques que nous venons d’évoquer on a quand même les
résultats théoriques suivants, de démonstration très facile, qui relient les deux notions de consistance
et de stabilité à la convergence de la méthode :
Définition 9 Une méthode numérique est dite convergente si pour toute solution exacte z définie sur
un intervalle [t0 , t0 + T ] et toute suite (yn ) construite, selon le schéma numérique considéré, à partir
de y0 et d’une subdivision de [t0 , t0 + T ], on a la relation de convergence uniforme :
lim
hmax →0
y0 →z(t0 )
max |yn − z(tn )| = 0.
0≤n≤N
Théorème 3 Une méthode numérique à un pas qui est stable et consistante est convergente.
Démonstration.- Posons yf
n = z(tn ). Dans ce cas l’erreur de consistance est par définition le réel
en qui complète la formule :
z(tn+1 ) = yg
n+1 = y˜n + hn Φ(tn , y˜n , hn ) + en
Donc en joue pour la suite des z(tn ) le role de la correction n associé en général à une suite yf
n . D’après
la définition de la consistance on a donc :
max |z(tn ) − yn | ≤ S(|z(t0 ) − y0 | +
0≤n≤N
N
−1
X
|en |)
n=0
L’hypothèse de consistance donne alors immédiatement le résultat annoncé. Exercice : Déduire du théorème 4.1.3 la convergence uniforme de y(t), fonction linéaire par morceaux
telle que y(tn ) = yn , vers z(t) en utilisant la continuité uniforme de z sur [t0 , t0 + T ].
4.2
Quelques conditions suffisantes ou nécessaires et suffisantes de consistance ou
de stabilité.
Dans cet énoncé on suppose que Φ remplit la condition suivante presque toujours réalisée dans les
exemples usuels :
Φ est continue sur un ouvert contenant U × [−h0 , h0 ]
Théorème 4 .- Une méthode à un pas est consistante si et seulement si quel que soit (t, y) ∈ U , on
a:
Φ(t, y, 0) = f (t, y)
Démonstration.- D’après le théorème des accroissement finis, il existe quel que soit n un réel
cn ∈]tn , tn+1 [ tel que :
en = z(tn+1 ) − z(tn ) − hn Φ(tn , z(tn ), hn )
= hn z 0 (tn ) − hn Φ(tn , z(tn ), hn ) = hn [f (cn , z(cn )) − Φ(tn , z(tn ), hn )]
hn [f (cn , z(cn )) − Φ(cn , z(cn ), 0)] + hn [Φ(cn , z(cn ), 0) − Φ(tn , z(tn ), hn )]
Pour clarifier les calculs qui suivent on écrira au moment opportun ce résultat sous la forme :
en = hn (An + Bn )
An = f (cn , z(cn )) − Φ(cn , z(cn ), 0)
Bn = Φ(cn , z(cn ), 0) − Φ(tn , z(tn ), hn )
D’après l’uniforme continuité de Φ sur C × [−h0 , h0 ] où C est le polycylindre de sécurité sur lequel on
travaille :
∀ > 0, ∃η > 0, α > 0, tels que (|h| < η, |t − t0 | < η, |y − y 0 | < α ⇒ |Φ(t, y, 0) − Φ(t0 , y 0 , h)|)
Par ailleurs, quitte à diminuer η, on peut s’assurer en utilisant l’uniforme continuité de z sur [t0 , t0 +T ]
que |hn | < η ⇒ |z(cn ) − z(tn )| < α, donc finalement en enchainant les deux implications précédentes
par transitivité :
|hn | < η ⇒ |Φ(cn , z(cn ), 0) − Φ(tn , z(tn ), hn )| < On en tire
N
−1
X
hmax < η ⇒
hn |Φ(cn , z(cn ), 0) − Φ(tn , z(tn ), hn )| < X
hn = T
n=0
Autrement dit avec les notations abrégées en = hn (An + Bn ), on a obtenu
hmax < η ⇒
N
−1
X
hn |Bn | < T
n=0
PN −1
Donc n=0 hn |Bn | tend vers zéro quand hmax → 0. Or on peut par ailleur écrire les majorations
suivantes :
|
N
X
(|en | − hn |An |)| ≤
n=0
≤
N
X
n=0
N
X
n=0
||en | − hn |An ||
|en − hn .An | =
N
X
n=0
hn |Bn |
On a donc démontré que
suite
PN
n=0 |en | −
N
X
PN
hn |An | =
n=0
n=0 hn |An |
N
X
tend vers zéro avec hmax . Or on reconnait dans la
hn |f (cn , z(cn )) − Φ(cn , z(cn ), 0)|
n=0
Z
t0 +T
|f (t, z(t)) − Φ(t, z(t), 0)|, donc une suite
une suite de sommes de Riemann de l’intégrale I =
t0
qui tend vers I. Le résultat obtenu nous donne alors aussi :
lim
hmax
N
X
|en | = I
n=0
La condition de consistance est équivalente au fait que cette limite est nulle donc à
Z
t0 +T
|f (t, z(t)) − Φ(t, z(t), 0)| = 0
t0
La nullité de cette intégrale de fonction positive continue impose pour tout t : f (t, z(t)) = Φ(t, z(t), 0).
Dans tout ce raisonnement la condition initiale (t0 , y0 ) est arbitraire, et l’égalité f (t0 , y0 ) = Φ(t0 , y0 , 0)
est valable pour tout (t0 , y0 ) ∈ U Théorème 5 .- Une condition suffisante de stabilité :
Si Φ est Lipschitzienne par rapport à la variable y, la méthode est stable. De plus si L est la
constante de Lipschitz pour Φ, la constante de stabilité est S = eLT .
Démonstration.-
On reprend les notations de la définition 8 et on pose :
θn = |f
yn − yn |
Par définition de la constante de Lipschitz pour Φ.
|Φ(t, y1 , h) − Φ(t, y2 , h)| ≤ L|y1 − y2 |
quel que soient (t, y1 , h) et (t, y2 , h) dans le domaine de définition de Φ. La majoration suivante découle
aussitôt de la définition de la suite de θn et de la condition de Lipschitz :
θn+1 = |yg
n+1 − yn+1 | = |y˜n − yn + hn (Φ(tn , y˜n , hn ) − Φ(tn , yn , hn )) + n |
≤ (1 + hn L)θn + |n |
(1)
(2)
Lemme 1 : Lemme de Gronwall discret .- Les inégalités (2) impliquent :
θn ≤ eL(tn −t0 ) θ0 +
n−1
X
eL(tn −ti+1 ) |i |
i=0
Démonstration.- C’est un exercice élementaire sur les fonctions R → R de vérifier que ∀x ∈
R, 1 + x ≤ ex et on a donc
1 + hn L ≤ eLhn
Le lemme se déduit par une récurrence sans mystère de cette majoration et de l’inégalité (2).
L’étape de récurrence de n à n + 1 s’écrit ainsi :
θn+1 ≤ (1 + hn L)θn + |n |
n−1
h
i
X
≤ (1 + hn L) eL(tn −t0 ) θ0 +
eL(tn −ti+1 ) |i | + |n |
i=0
h
≤ eLhn eL(tn −t0 ) θ0 +
n−1
X
i
eL(tn −ti+1 ) |i | + |n |
i=0
= eL(tn+1 −t0 ) θ0 +
n−1
X
eL(tn+1 −ti+1 ) |i | + |n |
i=0
= eL(tn+1 −t0 ) θ0 +
n
X
eL(tn+1 −ti+1 ) |i |
i=0
On déduit de ce lemme que pour tout n,
θn ≤ eLT (θ0 +
n−1
X
.|i |)
i=0
Ceci termine la démonstration du théorème de stabilité avec la constante de stabilité :
S = eLT
Remarque.- Ces calculs ne sont corrects que tant que les (tn , yn , hn ) et (tn , y˜n , hn ) restent dans le
domaine où Φ est Lipschitzienne de constante L.
Corollaire 6 Si f est Lipschitzienne en y, les méthodes d’Euler et du milieu sont convergentes.
Démonstration.- D’après le théorème 4.1.3 il suffit pour cela d’établir la consistance et la stabilité.
- La consistance est une conséquence directe du théorème 4, et de l’égalité Φ|h=0 = f . C’est aussi
valable pour la méthode de Taylor Tp . La stabilité se déduit du théorème 5 et du fait que Φ est
Lipschitzienne : pour la méthode d’Euler, c’est immédiat car f = Φ, et pour la méthode du milieu
cela résulte des calculs suivants :
h
h
φ = f (t + , y + f (t, y))
2
2
Donc si f est Lipshitzienne en y de constante de Lipschitz L on obtient :
h
|Φ(t, y1 , h) − Φ(t, y2 , h)| ≤ L |y1 − y2 + f (t, y1 ) − f (t, y2 )|
2
hL
|f (t, y1 ) − f (t, y2 )|
≤ L|y1 − y2 | +
2
h
≤ (L + L2 )|y1 − y2 |
2
D’où le caractère lipschitzien de Φ avec la constante de Lipschitz Λ = L + 2δ L2 , si on se limite a des
pas h assez petits c’est à dire assujettis à une condition : 0 < h ≤ δ Note : On montre aussi que lorsque f est de classe C p la méthode de Taylor Tp est convergente.
4.3
4.3.1
Ordre d’une méthode à un pas et erreur globale.
.-
Définition 10 Une méthode consistante est dite d’ordre p si pour tout compact K il existe C ≥ 0, tel
que pour toute solution z(t), de graphe {(t, z(t))} contenu dans K, l’erreur de consistance satisfait à
la condition :
|en | ≤ Chp+1
n
Mentionnons une caractérisation de l’ordre p qui s’applique à la méthode de Taylor de même indice
et généralise le critère de consistance déjà énoncé :
Proposition 5 .- Sous l’hypothèse que Φ est de classe C p , la méthode est d’ordre p si et seulement si
les conditions suivantes sont remplies :
∂`Φ
(t, y, 0)
∂h`
Démonstration.-
=
1
[`]
`+1 f (t, y)
pour 0 ≤ ` ≤ p − 1
Rappelons d’abord que l’erreur de consistance est :
en = z(tn+1 ) − z(tn ) − hn Φ(tn , z(tn ), hn )
La démonstration est similaire (en plus compliqué) a celle de la caractérisation de la consistance, qui
correspond au cas p = 1. En appliquent la formule de Taylor Lagrange on a l’existence de cn , dn ∈
]tn , tn+1 [ tels que :
z(tn+1 ) − z(tn ) =hn z 0 (tn ) + · · · +
=
p
X
hk
n
k=1
k!
hkn (k)
hpn (p)
hp+1
n
z (tn ) + · · · +
z (tn ) +
z (p+1) (cn )
k!
p!
(p + 1)!
f [k−1] (tn , z(tn )) +
hp+1
n
f [p] (cn , z(cn ))
(p + 1)!
hp−1
∂ p−1 Φ
h` ∂ ` Φ
n
Φ(tn , z(tn ), hn ) =hn Φ(tn , z(tn ), 0) + · · · + n
(t
,
z(t
),
0)
+
·
·
·
+
(tn , z(tn ), 0)
n
n
`! ∂h`
(p − 1)! ∂hp−1
hpn ∂ p Φ
(dn , z(dn ), dn )
+
p
p! ∂h
On en tire
en = hn
p−1 `
hX
hn f [`] (tn , z(tn )) ∂ ` Φ(tn , z(tn ), 0) i hp+1
f [p] (cn , z(cn )) ∂ p Φ(dn , z(dn ), dn )
n
(
−
) +
(
−
)
`
`!
`+1
p!
p+1
∂hp
∂h
`=0
Pour que cette expression soit un DL en hn de la forme o(hpn ), il faut et il suffit que tous les termes
`
f [`] (tn ,z(tn ))
,z(tn ),0)
− ∂ Φ(tn∂h
) soient nuls ce qui fournit la condition de l’énoncé puisque par tout point
`
`+1
(t0 , y0 ) passe une unique solution locale. Le reste fournit la majoration de l’énoncé avec la constante
p
1
C = (p+1)!
kf [p] kK + p!1 k ∂∂hΦp |K×[0,δ] , où les normes utilisées sont les normes du sup k • k∞ et les solution
sont supposée confinés dan un ensemble compact K. N.B. Pour justifier l’existence des f [`] on remarque que grâce à l’hypothèse de consistance on a
f = Φ| h = 0, qui est donc bien de classe C p . Le cas ` = 0 de la conclusion de l’énoncéredonne la
condion de consistance, avec un démonstration simplifi’ee par le fait qu’on suppose ici Φ de classe C 1
et pas seulement continue.
4.3.2
La constante SCT de majoration de l’erreur globale
On considère une méthode consistante et stable de constante de stabilité S qui est d’ordre p avec
un facteur multiplicatif C. On a les majorations d’erreurs suivantes. D’abord le cumul des erreurs de
consistance (qui n’est pas l’erreur globale ! !) est :
X
X
X
en ≤ C
hp+1
≤ C(
hn )hpmax = CT hpmax
n
P
En effet la somme de tous les pas est (tn+1 − tn ) = T si on travaille sur l’intervalle [t0 , t0 + T ]. Par
définition de la stabilité, on trouve alors : M ax|yn − z(tn )| ≤ S(|y0 − z(t0 )| + CT hpmax ). L’erreur est
donc majorée dans le cas d’absence d’erreur sur la condition initiale par
SCT hpmax
4.3.3
La constante SCT de majoration de l’erreur globale
On considère une méthode consistante et stable de constante de stabilité S qui est d’ordre p avec le
facteur multiplicatif p que nous venons de ttrouver. On a les majoration d’erreurs suivantes. D’abord
le cumul des erreurs de consistance (qui n’est pas l’erreur globale ! !) est :
X
X
X
en ≤ C
hp+1
≤ C(
hn )hpmax = CT hpmax
n
P
En effet la somme de tous les pas est (tn+1 − tn ) = T si on travaille sur l’intervalle [t0 , t0 + T ]. Par
définition de la stabilité, on trouve alors : M ax|yn − z(tn )| ≤ S(|y0 − z(t0 )| + CT hmaxp ). L’erreur est
donc majorée dans le cas d’absence d’erreur sur la condition initiale par
SCT hpmax
5
5.1
Quelques remarques sur les aspects numériques
Sur les inconvénients du cumul des erreursd’arrondi
On considère la suite des valeurs arrondies des yn notées y˜n . Soit ρn l’erreur d’arrondi dans le
calcul de Φ(tn , y˜n , hn ), et σn l’erreur d’arrondi dans l’évaluqtion de yn+1
˜ , ce qui conduit à la formule :
yn+1
˜ = y˜n + hn Φ(tn , y˜n , hn ) + hn ρn + σn
Alors si S est une constante de stabilité et si ρ et σ sont des bornes pour les erreurs d’arrondi, on
trouve :
X
max |y˜n − yn | ≤ S(|0 | +
|hn ρn + σn |) ≤ S(|0 | + T ρ + N σ)
En combinant avec la majoration de la dernière sous-section on trouve :
max |y˜n − z(tn ) ≤ S(|0 | + T ρ + N σ + CT hp )
En nous plaçant pour simplifier dans l’hypothèse de pas constants, donc avec N = Th , ce dernier
majorant devient :
σ
E(h) = S(|0 | + T ρ) + ST ( + Chp )
h
La fonction E(h) passe par un minimum pour une valeur optimale de h, qu’il est inutile (nefaste)
1
de dépasser puisque lim E(h) = +∞. Cette valeur est hopt = ( Cσ ) p+1 . On trouve le majorant optimal :
p
h→0
1
1
E(hopt ) = σ p+1 C p+1 p p+1 ( p+1
p )
5.2
Problèmes de Cauchy bien posés numériquement, probl‘emes mal conditionnés
Exemple 0.- On a déjà vu que le problème de Cauchy :
y0 =
p
2|y|, y(0) = 0
est mal posé mathématiquement car la solution n’est pas unique.
Dans les deux exemples suivants on se place dans les conditions du théorème de Cauchy, mais
d’autres difficultés surgissent.
Exemple 1. 0
y = 3y − t
calculer y(10).
1
y0 =
à 10−n près
3
Dans cet exemple 10−n représente la pr´
”ecision de la machine traité comme un majorant de l’erreur
d’arrondi. On prendra donc les conditions initiales respectives :
1
1
y0 = , et y˜0 = + avec || < 10−n
3
3
Les solutions exactes se calculent et valent : z(t) = Ce3t + t + 13 , avec C = z(0) − 13 . On a donc à
comparer les deux solutions
y(t) = t + 31
˜ = t + 1 +e3t
y(t)
3
˜ = |y(0) − y(0)|e
˜ 3t = e3t , ce qui donne la majoration :
Donc |y(t) − y(t)|
˜ ≤ 10−n e30
|y(10) − y(10)|
Conclusion : Le problème du calcul de y(10) est mal posé numériquement si on travaille avec n = 12
chiffres significatifs, car le majorant 10−12 e30 ≈ 10, 7 est excessif d l’oredre de grandeur de y(10) ?
La notion d’être mal posé numériquement dépend bien sur de la longueur T de l’intervalle sur
lequel on travaille, et aussi de l’exposant (L=3 ici) de l’exponentielle qui n’est autre que la constante
de Lipschitz de f . Pout T = 1 (calcul de y(1) = 4/3 + e1 ), le probolème serait bien posé avec une
amplification de l’erreur d’arrondi initiale e.10−12 . De même le problème de y(10) reste bien posé si
on prend 16 chiffres significatifs et cesse de l’être à parti de T = 13 environ.
Toutes ces considération reflètent le fait que la constante de stabilité qu’on a trouvé dans le
théorème 5 est en fonction de la constante de Lipschitz eLT , donc la constante d’amplification trouvé
dans la section précédente est SCT = E LT .C.T
Exemple 2. 0
y = −150y + 30
calculer y(10).
1
y0 =
à 10−n près
5
Cette fois le problème est bien posé numériquement car en conservant les notation analogues a celles
de l’exemple 1 :
1
ỹ(t) = + e−150t
5
˜ −1500 est très petit même pour de
et le problème est bien posé numériquement puisque |y(0) − y(0)|e
grandes valeurs de . Ceci montre qu’en un certain sens le problème est trop bien posé : a l’inversse si
on cherche a retrouver y˜0 , a partir d’une perturbation majorée α de y(10) = 15 on trouve : +
1
˜ − 1 | < α.e+1500
tildey(10) − | < α ⇒ |y(0)
5
5
ce qui est numériquement impraticable.
On remarque que la constante de stabilité est a nouveau énorme : S = e+150T = e+1500 , et
SCT = 10Ce+1500 , et resterait excessive même pour des plus petites valeurs de T . On dit que ce
problème est mal conditionné. Un tel problème même bien posé numériquement peut réserver des
surprises à la mise en oeuvre de la métrhode d’Euler. On trouve :
1
1
yn+1 = −150yn + 30, d’ou |yn+1 − | = −150|yn − |
5
5
donc y˜n = 15 + (1 − 150h)n (y˜0 − 15 ). Pour T = 1, si on a l’imprudence de prendre un pas trop élevé la
suite des y˜n , s’ecarte radicalement de ỹ(tn ) très voisin de 1/5. Par exemple si T = 1, et h = 1/50, on
trouve y˜n − 51 = (−2)n (y˜0 − 51 ) d’ou pour y(1), l’approximation 250 (y˜0 − 51 ) ≈ 1015 (y˜0 − 15 ). Le choix
1
de h est bien sur dicté par la convergence de la suite (1 − 150h)n , soit : 0 < h < 75
.
6
Méthode(s) de Runge Kutta.
6.1
description de la méthode
On considère comme d’habitude un problème de Cauchy
y0
= f (t, y)
y(t0 ) =
y0
ave une solution exacte z(t) sur [T0 , t0 + T ] et une subdivision :
t0 < · · · tN = t0 + T
On part de l’expression intégrale de l’accroissement z(tn+1 )−z(tn ), dans laquelle on ramène l’intervalle
d’intégration de [tn , tn+1 = tn + hn ], à [0, 1], par le changement de variables t = tn + uhn .
Z tn+1
z(tn+1 ) − z(tn ) =
f (t, z(t))dt
tn
1
Z
=
hn f (tn + uhn , z(tn + uhn ))du
0
ou encore
Z
1
z(tn+1 ) − z(tn ) = hn
g(u)du
(3)
0
avec g(u) = f (tn + uhn , z(tn + uhn ))
L’idée est d’utiliser un opérateur d’intégration approché (O.I.A.) pour calculer l’intégrale qui apparaı̂t dans l’équation (3) :
Z 1
q
X
g(u)du ∼ Σ(g) =
bi g(ci )
0
i=1
Comme les valeurs des g(ci ) = f (tn + ci hn , z(tn + ci hn )) = f (tn,i , z(tn,i )) ne sont pas connues, il faut
aussi évaluer la fonction z aux points tn,i = tn + ci hn par un calcul similaire d’O.I.A. :
Z ci
z(tn,i ) = z(tn ) + hn
g(u)du
(4)
0
On se contentera pour simplifier des méthodes explicites où l’O.I.A. choisi utilise les valeurs des
g(cj ) = f (tn,j , z(tn,j )), j = 1, · · · , i − 1 antérieurement calculées :
Z
ci
g(u)du ∼ Σi (g) =
0
i−1
X
j=1
ai,j g(ci )
d’où les formules d’approximation :
Pi−1
a g(c )
z(tn,i ) ∼ z(tn ) + hn j=1
Pq i,j i
z(tn+1 ) ∼ z(tn ) + hn i=1 bi g(ci )
L’algorithme de Runge Kutta associé aux opérateurs d’intégration approché Σ et Σi s’obtient en
remplaçant chaque g(ci ) par des valeurs approchées notées pn,j , puis z(tn,i ) par des valeurs approchées
yn,i , où on utilise l’O.I.A. Σi avec les pn,j au lieu des g(cj ). Il reste à poser au ième pas : yn,i =
f (tn,i , yn,i ). Le passage de yn à yn+1 se fait alors en utilisant de la même façon l’O.I.A. Σ.
On parle d’algorithme de type RKq , pour indiquer le nombre des ci . La méthode étant explicite
ai,j = 0 pour j ≥ i et on est donc dontraint à prendre c1 = 0, et pn,1 = f (tn , yn ).(NB : RK1 explicite
n’est donc rien d’autre que la méthode d’Euler). Le détail de l’algorithme RKq est donc le suivant :
– c1 = 0 , tn,1 = tn , yn,1 = yn , pn,1 = f (tn , yn )
– 
Pour i = 2, · · · , q,
tn,i =
tn + ci hn
P
 yn,i = yn + hn i−1 ai,j pn,j
j=1
pn,i =
f (tn,i , yn,i )
tn+1 =
tn P
+ hn
–
yn+1 = yn + hn qj=1 bj pn,j
Proposition 6 Tout schéma de type RKq définit une méthode à un pas explicite de la forme : yn+1 =
yn + hn Φ(tn , yn , hn ).
Il suffit en effet de vérifier par récurrence sur i l’existence de formules :
yn,i = yn + hn Φi (tn , yn , hn ),
pn,i = Qi (tn , yn , hn ).
On part de Φ1 = 0 et Q1 = f (t, y), et la récurrence se fait selon les formules :
Φi =
i−1
X
ai,j Qj (t, y, h)
j=1
Qi (t, y, h) = f (t + ci h, y + hΦi (t, y, h)).
P
et se conclut par Φ(t, y, h) = qj=1 bj Qj (t, y, h).
6.2
Quelques exemples
On fait systématiquement l’hypothèse que les O.I.A utilisés sont d’ordre au moins zéro(=exacts
sur les fonctions constantes), ce qui setraduit par les égalités :
ci =
i−1
X
ai,j
1=
j=1
q
X
bj .
j=1
On présent usuellement les données sous forme d’un tableau :
c1 = 0
c2
c3
..
.
..
.
cq
−−−
1
|
|
|
|
0
a2,1
a3,1
0
a3,2
0
..
.
..
.
|
|
aq,1
aq,2
···
···
aq,q−1
0
| −−− −−− −−− −−− −−− −−−
|
b1
b2
···
···
bq−1
bq
dans lequel la première colonne est la somme des suivantes.
– Les algorithmes de type RK2 sont donc régis par un tableau du type suivant :
0
α
−−−
1
|
0
|
α
0
| −−− −−−
|
b
1−b
On pourra voir en TD que pour α 6= 0 fixé la valeur optimale de b, pour laquelle l’ordre de la
1
méthode est le plus grand est b = 1 − 2α
.
Les O.I.A. de la méthode sont :
Z α
g(u)du ∼ Σ2 (g) = αg(0)
(5)
0
Z 1
1
1
g(u)du ∼ Σ(g)(1 −
)g(0) +
g(1)
(6)
2α
2α
0
– Pour α = 1, ce dernier O.I.A. est celui de la méthode des trapèzes et la méthode correspondante
(RK2 )α=1 est connue sous le nom de Méthode de Heun.
– La méthode RK4 classique correspond au tableau :
0
c2 = 21
c3 = 21
c4 = 1
−−−
1
|
0
1
|
0
2
1
|
0
0
2
|
0
0
1
| −−− −−− −−− −−−
1
2
2
1
|
6
6
6
6
Les O.I.A. de la méthode sont :
Z 1
2
1
g(u)du ∼ Σ2 (g) = g(0)
2
0
Z 1
2
1 1
g(u)du ∼ Σ3 (g) = g( )
2 2
0
Z 1
1
g(u)du ∼ Σ4 (g) = g( )
2
0
Z 1
1
1
1
g(u)du ∼ Σ(g) = (g(0) + 2g( + 2g( + g(1))
6
2
2
0
Les coefficients sont ceux de l’O.I.A. de Simpson.
L’algorithme
associé pour le calcul
: 

 des yn est le suivant
tn,2 =
tn + 21 hn
tn,3 = tn + 12 hn
tn,4 = tn + hn
 yn,2 = yn + 1 hn f (tn , yn )  yn,3 = yn + 1 hn pn,2  yn,4 = yn + hn pn,3
2
2
pn,2 =
f (tn,2 , yn,2 )
pn,3 = f (tn,3 , yn,3 )
pn,4 = f (tn,4 , yn,4 )
et yn+1 = yn +
6.3
6.3.1
hn
(pn,1 + 2pn,2 + 2pn,3 + pn,4 )
6
Thèmes de TD
Tester (RK)4 sur l’exemple fétiche y 0 = −y.
Montrer qu’avec un pas h = 0, 1, on trouve yn = (0, 9048375)n , ce qui donne y10 ' 0, 3678798,
ce qui fournit la solution exacte étant e−t , une approximation de e−1 ' 0, 3678794 à mieux que
10−6 près.
DémonstrationL a reprise de l’algorithme de (RK4) lorsque f (t, y) = −y donne en effet ;
yn,2 = yn −
hn
yn = −pn,2
2
hn hn
hn h2n
(
− 1)yn = yn (1 −
+
) = −pn,3
2 2
2
4
hn h2n
h2
h3
= yn − hn (1 −
+
)yn = yn (1 − hn + n − n ) = −pn,4
2
4
2
4
yn,3 = yn +
yn,4
et enfin
hn
hn h2n
h2
h3
hn
yn (1 + 2(1 −
) + 2(1 −
+
) + 1 − hn + n − n )
6
2
2
4
2
4
3
hn
h
=yn −
yn (6 − 3hn + h2n − n )
6
4
h2n h3n h4n
−
−
)
=yn (1 − hn +
2
6
24
yn+1 =yn −
2
3
4
Ainsi on trouve par récurrence yn = (1 − hn + h2n − h6n − h24n )n , ce qui en reportant h = 0, 1, puis
n = 10, fournit les valeurs numériques approchées indiquées. On remarque que sur cet exemple, le résultat est le même que celui que fournit la méthode de
Taylor d’ordre 4.
6.3.2
Ordre d’une méthode (RK)4 .
La fonction Φ(t, y, h)), s’obtient de la façon suivante : on réécrit l’algorithme de Runge Kutta en
substituant au départ t et y et h à tn et yn et hn , le même calcul fournissant alors des fonctions
yi (t, y, h) et pi (t, y, h) au lieu des yn,i pn,i et la fonction cherchée provient de y + h.Φ(t, y, h)) a
la place de yn+1 .
– 
Pour i = 2, · · · , q,
ti
=
t + c h
Pi−1 i

yi
= y + h j=1 ai,j pj (t, y, h)
pi (t, y, h) =
f (ti , yi (t, y, h))
Pq
– Φ(t, y, h) = j=1 bj pj (t, y, h)
La méthode est consistante car on trouve aisément par récurrence sur i et pour tout i :
yi (t, y, 0) = y
pi (t, y, 0) = f (t, y)
Pq
d’où Φ(t, y, 0) = ( j=1 bj )f (t, y) = f (t, y) ce qui est la condition suffisante trouvée dans le
théorème 4.
Lemme 2
q
X
∂Φ
(t, y, 0) = (
bj cj )f [1] (t, y)
∂h
j=1
DémonstrationO n a Φ =
Pq
i=1 bi f (t
+ ci h, yi (t, y, h)) d’où :
q
q
X
X
∂Φ
∂f
∂yi ∂f
bi ci (t + ci h, yi (t, y, h)) +
bi
(t, y, h) =
(t + ci h, yi (t, y, h))
∂h
∂t
∂h ∂y
i=1
i=1
Pq
Par ailleurs yi (t, y, h) = y + j=1 ai,j f (t + cj h, yj (t, y, h)), donc :
q
q
j=1
j=1
X
∂yi X
∂
=
ai,j f (t + cj h, yj (t, y, h)) + h
ai,j [f (t + cj h, yj (t, y, h))]
∂h
∂h
et puisque yi (t, y, 0) = y, on conclut par :
q
X
∂yi
(t, y, 0) = (
ai,j )f (t, y) = ci f (t, y).
∂h
j=1
et
q
q
X
X
∂f
∂f
∂Φ
(t, y, 0) =(
bi ci ) (t, y) +
bi (ci f (t, y)) (t, y)
∂h
∂t
∂y
i=1
i=1
q
X
∂f
∂f
=(
bi ci )( (t, y) + f (t, y) (t, y))
∂t
∂y
i=1
q
X
=(
bj cj )f [1] (t, y).
j=1
On a vu que la condition nécessaire et suffisante pour que la méthode soit d’ordre 2 est :
1 [1]
∂Φ
∂h (t, y, 0) = 2 f (t, y). Au vu du lemme c’et équivalent à la condition numérique suivante :
q
X
j=1
1
bj cj = .
2
(7)
Exemple 1) On reprend l’exemple de (RK2 ), avec le tableau :
0
α
−−−
1
|
0
|
α
0
| −−− −−−
|
b
1−b
La condition d’être d’ordre 2 est : 0 × b + α(1 − b) = 12 , et on retrouve la valeur optimale
1
b = b1 = 1 − 2α
.
2) La méthode classique (RK4 ) est d’ordre au moins deux également toujours d’après l’équation
, puisque : 0 × 16 + 21 26 + 12 × 26 + 1 × 16 = 21
On montre en fait que la méthode est d’ordre 4.
2
exercice Montrer en calculant ∂∂hΦ2 , à comparer à 13 f [2] , que la méthode (RK4 ) est d’ordre ≥ 3.
On établira que en général les conditions pour qu’une méthode de Runge-Kutta d’ordre ≥ 2 soit
en fait d’ordre ≥ 3 sont :
q
X
X
1
1
bj c2j =
et
bi ai,j cj =
3
6
j=1
i,j
On considère uine méthode de Runge Kutta de paramètres ai,j
réel positif :
X
|ai,j |)
α = max(
i
bj ,
et on lui associe le coefficient
j
Proposition 7 P
Si f (t, y) est Lipschitzienne de rapport k, la fonction Φ est Lipschitzienne de
rapport : Λ = k qj=1 |bj |(1 + αhk + · · · + (αhk)j−1 ) et la méthode (RKn ) associée est stable.
Démonstration
de rapport
On montre par récurrence sur i que la fonction yi (t, y, h) est Lipschitzienne
1 + αhk + · · · + (αhk)i−1
En effet étant données deux condition initiales y et z la définition de yi aboutit à :
|yi (t, y, h) − yi (t, z, h)| =|y − z + h
q−1
X
ai,j (f (t + cj , yj (t, y, h) − f (t + cj , yj (t, z, h))|
j=1
≤|y − z| +
q−1
X
|ai,j |.|yj (t, y, h) − yj (t, z, h)|
j=1
≤|y − z| + (αhk) max |yj (t, y, h) − yj (t, z, h)|
j<i
La conclusion pour la fonction yi en découle. En passant à Φ on en déduit le résultat :
|Φ(t, y, h) − Φ(t, z, h)| =|
≤
q
X
bj [f (t + cj , yj (t, y, h) − f (t + cj , yj (t, z, h)]|
j=1
q
X
|bj |.k|yj (t, y, h) − yj (t, z, h)|
j=1
≤|y − z| + (αhk) max |yj (t, y, h) − yj (t, z, h)| ≤ kΛ|y − z|.
j<i