Chapitre 3 R´ESOLUTION NUM ´ERIQUE DES ´EQUATIONS DIFF

publicité
i
i
“mathL3” — 2009/6/17 — 11:37 — page 161 — #180
i
i
Chapitre 3
R ÉSOLUTION NUM ÉRIQUE DES ÉQUATIONS
DIFF ÉRENTIELLES ET DES ÉQUATIONS
AUX D ÉRIV ÉES PAR TIELLES
es équations différentielles interviennent dans de nombreux domaines comme la mécanique, l’astronomie, la biologie, la médecine, etc. Généralement, on ne peut pas calculer
la solution de ces équations de manière exacte. Il est alors nécessaire d’utiliser des méthodes numériques qui donneront des bonnes approximations des solutions pour un coût de
calcul qui ne soit pas trop important. La première de ces méthodes est la méthode d’Euler
(due au mathématicien suisse Leonhard Euler [1707-1783]) ; mais l’étude de ces méthodes s’est
surtout développée à partir des années cinquante avec l’apparition des ordinateurs .
L
Pour calculer une approximation de la solution d’une équation différentielle avec condition initiale sur un intervalle [t0 , t0 + T ], on
subdivise cet intervalle en sous-intervalles d’extrémités t0 < t1 <
... < tN = t0 + T et on cherche une valeur approchée de la solution
en ces points tn , n = 0...N. On étudiera dans ce chapitre deux types
de méthodes : les méthodes à un pas où la valeur approchée de la
solution au temps tn+1 est obtenue à partir de la valeur au temps
tn , et les méthodes multipas où le calcul de la valeur approchée en
tn+1 fait intervenir plusieurs valeurs approchées antérieures. Cependant, les problèmes issus de la physique font généralement intervenir
plusieurs variables d’espace et une variable de temps.
On présente dans ce chapitre des exemples simples des trois types
d’équations aux dérivées partielles. Les problèmes elliptiques, qui
modélisent par exemple l’équation de la chaleur en stationnaire,
sont résolus par des méthodes d’éléments finis ; le principe de ces
méthodes est de déterminer une solution approchée dans un espace de dimension finie dont les
fonctions de base possèdent des propriétés d’orthogonalité et sont faciles à intégrer ou dériver ;
le calcul de la solution approchée se ramène alors à la résolution d’un système linéaire dont la
matrice est creuse. L’exemple type de problèmes paraboliques est l’équation de la chaleur en
évolution, qui fait intervenir cette fois une variable supplémentaire : le temps. Ces problèmes
sont semi-discrétisés en espace par une méthode d’éléments finis, ce qui conduit à un système
d’équations différentielles, qui est ensuite discrétisé en temps par une méthode adaptée à ce
type de problème. Enfin, la propagation d’ondes est envisagée dans le cadre des équations non
linéaires du premier ordre en temps et en espace, qui sont des équations de type hyperbolique.
La notion de caractéristique est introduite, permettant la résolution explicite de ces équations
sous forme d’ondes de choc ou de détente, dans le cadre particulier du problème de Riemann,
puis la construction de schémas numériques adaptés à l’approximation de ce type de problème.
Leonhard Euler
(1707-1783)
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 162 — #181
i
i
162
Partie I. Analyse numérique
I. La méthode d’Euler
I.1. Généralités
Soit [t0 , t0 + T ] un intervalle fermé de R, f une fonction continue de [t0 , t0 + T ] × Rp dans Rp , y0
un élément de Rp ; on cherche une fonction y ∈ C1 ([t0 , t0 + T ]; Rp ) qui vérifie
∀t ∈ [t0 , t0 + T ], y (t) = f(t, y(t))
(3.1)
y(t0 ) = y0 .
(3.2)
Ce problème est le problème de Cauchy pour l’équation différentielle (3.1) et la condition (3.2)
est une condition de Cauchy. Souvent t représente le temps ; t0 est alors appelé instant initial
et y0 condition initiale. La donnée de f est équivalente à la donnée de p fonctions f1 , f2 , . . . , fp
continues de [t0 , t0 + T ] × Rp dans R et l’équation différentielle est équivalente au système
différentiel :
⎧
⎪
y (t) = f1 (t, y1 (t), . . . , yp (t))
⎪
⎨ 1
..
.
.
⎪
⎪
⎩ yp (t) = fp (t, y1 (t), . . . , yp (t))
Les équations différentielles précédentes sont du premier ordre car elles ne font intervenir que
les dérivées premières de y. On peut plus généralement considérer des équations différentielles
d’ordre supérieur, mais elles se ramènent aux équations du premier ordre ; en effet, considérons
l’équation différentielle
y(q) (t) = f(t, y(t), y (t), . . . , y(q−1) (t)) ,
(3.3)
où f ∈ C([t0 , t0 + T ] × (Rp )q ; Rp ), et cherchons en une solution y ∈ Cq ([t0 , t0 + T ]; Rp ). Si on pose
z1 = y, z2 = y , . . . , zq = y(q−1) , le problème (3.3) devient équivalent au système différentiel
⎧
⎪
z (t)
⎪
⎨ 1
⎪
⎪
⎩
zq (t)
= z2 (t)
..
.
= f(t, z1 (t), . . . , zq (t))
qui peut s’écrire sous la forme z (t) = F(t, z(t)) où z = t (z1 , . . . , zq ) et
F(t, z) = t (z2 , . . . , zq , f(t, z1 , . . . , zq )) ,
la notation t (·) désignant ici la transposition. La condition de Cauchy pour le problème (3.3)
s’écrit alors
(q−1)
y(t0 ) = y0 , . . . , y(q−1) (t0 ) = y0
,
(q−1)
(y0 , . . . , y0
) ∈ (Rp )q .
Des résultats d’existence (locale ou globale) ont été vus au chapitre 16 de l’ouvrage Mathématiques L2, Pearson Education, 2007. Rappelons ici le résultat le plus important, à savoir
le théorème de Cauchy-Lipschitz, qui assure l’existence d’une solution maximale lorsque f est
lipschitzienne par rapport à la deuxième variable y.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 163 — #182
i
i
163
Le théorème de Cauchy-Lipschitz
On suppose que la fonction f est continue sur [t0 , t0 + T ] × Rp et vérifie
∀ R > 0, ∃ LR tel que ∀ t ∈ [t0 , t0 + T ], ∀ y, z ∈ B(y0 , R), f(t, y) − f(t, z) LR y − z ,
où . désigne une norme sur Rp et B(y0 , R) la boule de centre y0 et de rayon R. Alors le
problème de Cauchy ((3.1),(3.2)) admet une unique solution maximale.
Nous nous placerons toujours dans le cadre de ce théorème lorsque nous définirons les méthodes
numériques.
I.2. Définition de la méthode d’Euler
Il n’est en général pas possible de calculer une solution exacte du problème de Cauchy. On doit
alors utiliser des méthodes numériques. Dans toute la suite, pour simplifier les notations, nous
nous restreindrons au cas des équations scalaires (p = 1, Rp = R). La plupart des résultats se
généralisent de façon immédiate au cas p > 1 en remplaçant les valeurs absolues par des normes.
Dans cette section, nous étudions la plus simple des méthodes numériques : la méthode d’Euler
explicite (ou Euler progressive). On considère donc le problème de Cauchy
y (t) = f(t, y(t))
.
(3.4)
y(t0 ) = γ donné
On se donne une subdivision σ : t0 < t1 < · · · < tn < tn+1 < · · · < tN = t0 + T de l’intervalle
[t0 , t0 + T ]. On note pour n = 0, ..., N − 1, hn = tn+1 − tn le pas et h = h(σ) := maxn hn . La
solution du problème de Cauchy vérifie
tn+1
f(t, y(t))dt .
y(tn+1 ) = y(tn ) +
tn
Si y0 est une approximation de y(t0 ), on calcule l’approximation yn de y(tn ) par
yn+1 = yn + hn f(tn , yn ), 0 n N − 1 ,
(3.5)
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
Rappel
ce qui revient à remplacer f(t, y(t)) par f(tn , yn ) pour t ∈]tn , tn+1 [. Cette méthode est la méthode d’Euler 1 . Le problème essentiel est l’estimation de l’erreur de discrétisation
en := y(tn ) − yn
(3.6)
en fonction de h. Nous ferons l’hypothèse que f ∈ C([t0 , t0 + T ] × R) (en abrégé C([t0 , t0 + T ]))
et vérifie
(3.7)
∃ L > 0, ∀ t ∈ [t0 , t0 + T ], ∀ y, z ∈ R, |f(t, y) − f(t, z)| L |y − z| ,
ce qui implique que le problème admet une solution globale sur [t0 , t0 + T ]. Dans la sous-section
suivante, nous donnerons une majoration de l’erreur de discrétisation. Nous étudierons ensuite
le comportement asymptotique de cette erreur ; ceci nous permettra d’obtenir une meilleure
approximation de y(tn ) en utilisant le procédé d’extrapolation à la limite de Richardson. Enfin,
nous décrirons une méthode de contrôle du pas qui permet d’assurer que l’erreur locale reste
voisine d’un seuil de tolérance fixé.
1. Elle fut introduite par le mathématicien suisse Leonhard Euler (1707-1783), sans doute dès 1768.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 164 — #183
i
i
164
Partie I. Analyse numérique
I.3. Majoration de l’erreur de discrétisation
On définit l’erreur de troncature à l’instant tn+1 par
n+1 =
1
(y(tn+1 ) − y(tn ) − hn f(tn , y(tn ))) .
hn
(3.8)
Pour estimer cette erreur de troncature, on introduit le module de continuité d’une fonction.
Définition 3.1. Soit g ∈ C([t0 , t0 + T ]). Pour tout δ > 0, on définit le module de continuité
ω(g; δ) par
|g(t1 ) − g(t2 )| .
ω(g; δ) =
max
t1 ,t2 ∈[t0 ,t0 +T ]
|t1 −t2 |δ
L’erreur de troncature peut se majorer en
1 tn+1
(y (t) − y (tn ))dt ω(y ; h), n = 0, ..., N − 1.
|n+1 | = hn tn
(3.9)
Comme y ∈ C0 ([t0 , t0 +T ]), nous avons lim ω(y ; h) = 0. Si on suppose de plus que f appartient
h−→0
à C1 ([t0 , t0 + T ] × R), alors y ∈ C2 ([t0 , t0 + T ]) et
y (t) =
∂f
∂f
(t, y(t)) +
(t, y(t))f(t, y(t)) .
∂t
∂y
En utilisant la formule de Taylor, on en déduit
1 tn+1
tn+1
(tn+1 − t)y (t)dt |y (t)|dt .
|n+1 | = hn tn
tn
On déduit de (3.5) et (3.8) la relation
en+1 = en + hn (f(tn , y(tn )) − f(tn , yn )) + hn n+1 ,
(3.10)
d’où, en utilisant l’inégalité (3.7), |en+1 | (1 + hn L) |en | + hn |n+1 |. Donnons maintenant un
résultat sur la majoration des solutions d’inégalités récurrentes.
Lemme 3.2. Soit (θn )n0 et (μn )n0 deux suites de réels positifs ou nuls qui vérifient
θn+1 (1 + hn L)θn + μn+1 , n 0
pour une certaine constante positive L. On a alors la majoration
θn eL(tn −t0 ) θ0 +
n
eL(tn −ti ) μi , ∀ n 0.
(3.11)
i=1
Preuve. On vérifie facilement par récurrence sur n que pour tout n 0,
θn (1 + hn−1 L) · · · (1 + h0 L)θ0 +
n−1
(1 + hn−1 L) · · · (1 + hi L)μi + μn .
i=1
D’autre part, pour x 0, on a l’inégalité (1 + x) ex , d’où l’on déduit
θn eL(h0 +···+hn−1 ) θ0 +
n−1
eL(hn−1 +···+hi ) μi + μn , ∀ n 0 .
i=1
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 165 — #184
i
i
165
Nous pouvons alors énoncer le théorème :
Théorème 3.3. Si f est continue sur [t0 , t0 + T ] × R et vérifie l’hypothèse (3.7), alors l’erreur
de discrétisation de la méthode d’Euler satisfait
|en | eL(tn −t0 ) |y(t0 ) − y0 | +
eL(tn − t0 ) − 1
ω(y ; h).
L
(3.12)
Preuve. En appliquant le lemme précédent aux suites (|en |)n0 et (hn |n+1 |)n0 , et en utilisant (3.9), on obtient
|en | eL(tn −t0 ) |e0 | +
n
eL(tn −ti ) hi−1 |i | eL(tn −t0 ) |e0 | + ω(y ; h)
i=1
L(tn −t0 )
e
|e0 | + ω(y ; h)
eL(tn −ti )
i=1
n ti
i=1
n
ti
dt
ti−1
eL(tn −t) dt
ti−1
eL(tn −t0 ) |y(t0 ) − y0 | + ω(y ; h)
eL(tn −t0 ) − 1
.
L
n
Remarque. Si y ∈ C2 ([t0 , t0 + T ]), on obtient de la même façon
|en | eL(tn −t0 ) |e0 | +
L(tn −t0 )
e
n
eL(tn −ti )
i=1
tn
|e0 | + h
ti
(ti − t)|y (t)|dt
ti−1
eL(tn −t) |y (t)|dt .
t0
Si on choisit y0 tel que limh→0 y0 = y(t0 ), on obtient limh→0 |y(tn ) − yn | = 0 et on dit que
la méthode d’Euler est convergente ; si on suppose de plus que y ∈ C2 ([t0 , t0 + T ]), on obtient
|y(tn ) − yn | = O(h) lorsque e0 = O(h).
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
D’après la définition de hn , on a l’égalité hn−1 + · · · + hi = tn − ti et l’inégalité précédente
n
implique immédiatement la majoration (3.11).
Proposition 3.4. Définissons une subdivision σ étant donnée, yh ∈ C([t0 , t0 + T ]) par
yh (t) = yn +
yn+1 − yn
(t − tn ), t ∈ [tn , tn+1 ] , n = 0, ..., N − 1 ,
hn
alors la famille yh converge vers y dans C([t0 , t0 + T ]) lorsque h tend vers 0.
Preuve. Si t ∈ [tn , tn+1 ], |yh (t) − y(t)| |yh (t) − yn | + |yn − y(tn )| + |y(tn ) − y(t)|, d’où
|yh (t) − y(t)| |yh (t) − yn | + |en | + ω(y; h). De plus, d’après (3.5), |yh (t) − yn | h |f(tn , yn )|.
Comme |f(tn , yn )| est bornée indépendamment de h et n, on en déduit que maxn |yh (t) − y(t)|
n
tend vers 0 lorsque h tend vers 0.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 166 — #185
i
i
166
Partie I. Analyse numérique
I.4. Comportement asymptotique de l’erreur
La majoration de l’erreur de discrétisation en donne une borne très large, valable pour toute
une classe d’équations différentielles. Elle est en général beaucoup trop pessimiste lorsqu’on s’intéresse à une équation différentielle particulière. Il est donc nécessaire d’obtenir des estimations
plus réalistes. On fera une hypothèse sur la suite de pas hn , n = 0, ..., N − 1, à savoir qu’il existe
une fonction φ continue et lipschitzienne sur [t0 , t0 + T ], telle que ∀ t ∈ [t0 , t0 + T ], 0 < φ(t) 1
et hn = h(φ(tn ) + O(h)). On démontre alors le théorème.
Théorème 3.5. Si f ∈ C2 ([t0 , t0 + T ] × R) et y(t0 ) − y0 = αh + O(h2 ) avec α ∈ R, l’erreur
de discrétisation peut se mettre sous la forme
en = he(tn ) + O(h2 ) ,
(3.13)
où la fonction e est solution du problème
e (t) =
∂f
1
(t, y(t))e(t) + φ(t)y (t)
∂y
2
et
e(t0 ) = α .
(3.14)
Preuve. Si f ∈ C2 ([t0 , t0 + T ]), alors y ∈ C3 ([t0 , t0 + T ]) et
n+1 =
1
hn h
(y(tn+1 ) − y(tn ) − hn f(tn , y(tn ))) =
y (tn ) + O(h2n ) = φ(tn )y (tn ) + O(h2 ) .
hn
2
2
D’autre part, en utilisant la relation (3.10), on obtient
en+1 = en + hn (f(tn , y(tn )) − f(tn , y(tn ) − en )) + hn n+1
∂f
hn h
φ(tn )y (tn ) + hn O(h2 ) .
= en + hn (tn , y(tn ))en +
∂y
2
De plus, si e est la solution du problème (3.14), e est lipschitzienne et donc
e(tn+1 ) = e(tn )+ hn e (tn )+ hn O(h) = e(tn )+ hn
hn
∂f
(tn , y(tn ))e(tn )+
φ(tn )y (tn )+ hn O(h) .
∂y
2
∂f (t , y(t ))z + h O(h2 ). La
En posant zn = en − he(tn ), on obtient ainsi zn+1 = zn + hn ∂y
n
n
n
n
fonction f vérifiant l’hypothèse (3.7), on peut en déduire |zn+1 | |zn | (1 + hn L) + Ch2 hn avec
C > 0 puis, en utilisant le lemme 3.2, on obtient
eL(tn − t0 ) − 1
.
L
2
Comme z0 = e0 − he(t0 ) = O(h ), on en déduit la relation (3.13).
|zn | eL(tn −t0 ) |z0 | + Ch2
n
Application L’extrapolation à la limite de Richardson 1 On suppose que le pas hn est
constant, égal à h, donc que φ(t) = 1 ; si on note y(t; h) la valeur approchée de y obtenue en
utilisant ce pas h, on a d’après (3.13) l’égalité y(t; h) = y(t) − he(t) + O(h2 ) ; si on refait les
calculs avec le nouveau pas rh, on obtient y(t; rh) = y(t) − rhe(t) + O(h2 ), d’où
y(t; rh) − ry(t; h)
+ O(h2 ) .
1−r
Cela fournit une approximation de y(t) à O(h2 ) près.
y(t) =
1. Lewis Fry Richardson, mathématicien britannique (1881-1953), dont les travaux se sont en particulier
orientés vers la météorologie.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 167 — #186
i
i
167
Quand on résout une équation différentielle, on choisit généralement le pas de façon à ce que
l’erreur locale soit partout environ égale à « T ol »(tolérance fournie par l’utilisateur). Pour cela,
il faut connaître une valeur approchée de l’erreur de troncature. Si y ∈ C2 ([t0 , t0 + T ]), on a,
pour n = 0, ..., N − 1, les relations
hn 1
y (tn ) + O(h2n ) = (y (tn+1 ) − y (tn )) + O(h2n )
2
2
1
= (f(tn+1 , y(tn+1 )) − f(tn , y(tn ))) + O(h2n )
2
n+1 =
ˆn+1 := (f(tn+1 , yn+1 )) − f(tn , yn ))/2, ce qui ne
et on prend pour approcher n+1 la quantité nécessite pas d’évaluations supplémentaires de la fonction f. Par ailleurs, si on pose f(1) (t, y) =
∂f
∂f
(t, y) + ∂y
(t, y)f(t, y), on obtient facilement
∂t
ˆn+1 =
n+1 − hn (1)
f (tn , y(tn )) − f(1) (tn , yn ) + O(h2n )
2
ˆn+1 = O(h2 ) et ˆn+1 = O(h). Le pas optimal
et, comme y(tn ) − yn = O(h), on en déduit n+1 − | = hn |ˆ
|˜
n+1 | soit proche
ĥ à chaque instant est alors choisi
de
façon
que
l’erreur
locale
n+1
n+1 |. On impose également une condition de la forme
de « T ol », ce qui donne ĥ ∼ hn T ol/|ˆ
hmin hn hmax pour éviter de trop grandes variations du pas.
Algorithme 3.1 Sélection automatique du pas
1: données : h0 , t0 , y0 , θ, T ol, T
2: T ∗ ← t0 + T
3: tant que tn+1 < T ∗ , faire
˜n+1
4:
calcul de yn+1 et 5:
si (1 − θ)T ol |˜
n+1 | (1 + θ)T ol, alors
6:
hn+1 = min(hn , T ∗ − tn+1 ) {le pas est accepté}
7:
sinon si |˜
n+1 | < (1 − θ)T ol, alors
8:
hn+1 = min(max(ĥ, hmax ), T ∗ − tn+1 ) {le pas est augmenté}
9:
sinon si (1 + θ)T ol < |˜
n+1 | (1 + 2θ)T ol, alors
10:
hn+1 = min(ĥ, T ∗ − tn+1 ) {le pas est diminué}
11:
sinon
12:
n+1 |, puis calcul de yn avec le nouveau pas {le pas hn est rejeté
ĥn = hn 9/10 × T ol/|˜
et on recommence le calcul de yn avec un pas plus petit}
13:
fin si
14: fin tant que
Test 3.1.
Soit le problème de Cauchy : y = y, y(0) =
1, t ∈ [0, 1]. (1) Calculer la solution exacte
et la solution approchée obtenue par la méthode d’Euler (on supposera le pas constant et
y0 = 1). (2) Calculer e(tn ) (a) en utilisant les
expressions obtenues pour y(tn ) et yn , (b) en
utilisant la définition (3.14).
Test 3.2.
On calcule une approximation de la solution
y(tn ), avec n pair, du problème étudié au test
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
I.5. Contrôle du pas
3.1 avec un pas h, puis avec un pas 2h. Quelle
est la valeur approchée ỹn de y(tn ) obtenue en
utilisant l’extrapolation à la limite de Richardson ? Calculer directement une majoration de
|y(tn ) − ỹn |.
Test 3.3.
Déterminer analytiquement les valeurs yn obtenues en résolvant le problème de Cauchy
y (t) = t − t3 , y(0) = 0 par la méthode
d’Euler. Calculer l’erreur en et la comparer à
n
he(t
1 k = n(n + 1)/2,
n n3). On rappelle que
2
1 k = (n(n + 1)/2) .
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 168 — #187
i
i
168
Partie I. Analyse numérique
II. Les méthodes à un pas
II.1. Introduction
On s’intéresse toujours à la résolution du problème de Cauchy
y (t) = f(t, y(t)), ∀t ∈ [t0 , t0 + T ]
y(t0 ) = γ donné ,
(3.15)
où f est une fonction continue de [t0 , t0 + T ] × R dans R, vérifiant (3.7). Pour simplifier les
notations, nous nous restreignons comme dans le paragraphe précédent au cas scalaire. De
même, nous supposerons le pas de temps constant ; il n’y a aucune difficulté à généraliser le
théorème d’estimation d’erreur au cas où le pas est variable.
Soit N ∈ N ; on pose h = 1/N et tn = t0 + nh, 0 n N. Nous nous intéressons dans cette
partie à la résolution approchée de (3.15) par des méthodes à un pas, c’est-à-dire des méthodes
qui permettent de calculer la valeur approchée yn+1 de y(tn+1 ) à partir de tn , h, yn , valeur
approchée de y(tn ) uniquement. Ces méthodes s’écrivent sous la forme
yn+1 = yn + hΦ(tn , yn ; h)
y0 = γh ,
(3.16)
où Φ est une fonction continue de [t0 , t0 +T ]×R×[0, h0 ], (h0 > 0) dans R qui dépend de la fonction
f. Par exemple, la méthode d’Euler est une méthode à un pas avec Φ(t, y; h) = f(t, y) ; dans ce
cas, la fonction Φ ne dépend pas de h. Nous avons vu, dans la première partie, que l’erreur de
discrétisation pour cette méthode (en = yn −y(tn )) est proportionnelle à h (si la fonction f est de
classe C2 , voir le théorème 3.5). Nous étudions ici des méthodes à un pas pour lesquelles l’erreur
de discrétisation est proportionnelle à hp avec p 1 lorsque f est suffisamment régulière. Nous
commencerons par introduire les notions fondamentales de consistance, stabilité, convergence,
qui permettent l’étude des méthodes à un pas ; nous présenterons ensuite des exemples de telles
méthodes, plus particulièrement les méthodes de Runge-Kutta 1 .
II.2. Notions de consistance, stabilité, convergence
On définit de manière analogue à celle de la partie précédente l’erreur de troncature.
Définition 3.6. L’erreur de troncature à l’instant tn+1 , (n = 0, ...N − 1) est définie par
n+1 :=
1
(y(tn+1 ) − y(tn )) − Φ(tn , y(tn ); h).
h
(3.17)
Définition 3.7. La méthode (3.16) est consistante avec l’équation différentielle (3.15),si et
seulement si
lim max |n | = 0 .
h−→0 n=1,..,N
1. Carl Runge, mathématicien et physicien allemand (1856-1927) ; Martin Kutta, mathématicien allemand
(1867-1944), connu également pour ses travaux en aérodynamique.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 169 — #188
i
i
169
La définition suivante concerne une propriété de continuité uniforme en h de l’application
(γh , Φ(., .; h)) → {yn , n = 0...N} qui aux données fait correspondre la solution du schéma.
Définition 3.8. Soient {yn , n = 1, . . . , N} et {zn , n = 1...N} les solutions respectives des systèmes
yn+1 = yn + hΦ(tn , yn ; h) , n = 0, ..., N − 1,
zn+1 = zn + h (Φ(tn , zn ; h) + ηn+1 ) , n = 0, ..., N − 1 ,
y0 , z0 étant donnés dans R, (η1 , ..., ηN ) désignant une « perturbation ». On dit que la méthode
est stable s’il existe deux constantes positives M1 et M2 indépendantes de h telles que
max |yn − zn | M1 |y0 − z0 | + M2
n=1,..,N
max |ηn | .
(3.18)
n=1,..,N
Cette notion de stabilité signifie qu’une petite perturbation sur les données n’entraîne qu’une
petite perturbation sur la solution du schéma, cela indépendamment de h.
Définition 3.9. On dit que la méthode à un pas (3.16) est convergente si la propriété suivante
est vraie pour tout γ ∈ R :
lim γh = γ =⇒ lim
h−→0
max |yn − y(tn )| = 0 ,
h−→0 n=0,..,N
où yn est la solution du schéma (3.16) et y(t) la solution du problème de Cauchy (3.15).
A partir de ces notions, on démontre le théorème fondamental suivant.
Théorème 3.10. Si la méthode à un pas est stable et consistante, elle est convergente.
Preuve. De la définition de l’erreur de troncature (3.17), on déduit
y(tn+1 ) = y(tn ) + hΦ(tn , y(tn ); h) + hn+1 , n = 0, ..., N − 1 .
Comme la méthode est consistante, nous avons lim
max |n | = 0. D’après la définition de la
h−→0 n=1..N
stabilité (3.18), on obtient alors
max |yn − y(tn )| M1 |γh − γ| + M2
n=1,..,N
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
La quantité n représente, dans un certain sens, l’erreur que l’on fait au pas n en remplaçant
l’équation différentielle par le schéma (3.16).
max |n | ,
n=1,..,N
ce qui démontre, en combinant avec l’information précédente, la convergence de la méthode. n
II.3. Convergence des méthodes à un pas
Le théorème 3.10 nous conduit à étudier séparément la consistance et la stabilité des méthodes
à un pas. La convergence en résulte immédiatement. Nous donnons dans le lemme suivant une
condition nécessaire et suffisante de consistance de la méthode (3.16).
Lemme 3.11. Une condition nécessaire et suffisante pour que la méthode (3.16) soit consistante avec l’équation différentielle (3.15) s’écrit
∀t ∈ [t0 , t0 + T ], ∀y ∈ R, Φ(t, y; 0) = f(t, y).
(3.19)
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 170 — #189
i
i
170
Partie I. Analyse numérique
Preuve. On montre d’abord que la condition est nécessaire. Si la méthode est consistante,
pour toute solution y de l’équation différentielle, on a lim max |n | = 0, c’est-à-dire
h−→0 n=1,...,N
tn+1
1
max f(s, y(s))ds − Φ(tn , y(tn ); h) = 0 .
lim
h−→0 n=0,...,N−1 h t
n
(3.20)
Soit t un point quelconque de [t0 , t0 + T ] ; on peut construire une suite de points (tn )n qui
converge vers t quand h tend vers 0. Alors, d’après (3.20) et les propriétés de continuité des
fonctions f et Φ, on obtient
1 tn+1
lim
f(s, y(s))ds − Φ(tn , y(tn ); h) = f(t, y(t)) − Φ(t, y(t); 0) = 0 .
(3.21)
h−→0 h t
n
Par ailleurs, étant donné un couple (t, z) de [t0 , t0 + T ] × R, d’après le théorème de CauchyLipschitz, il existe toujours une solution y ∈ C1 ([t0 , t0 + T ]) de l’équation différentielle qui vérifie
y(t) = z. Donc, dans (3.21), y(t) parcourt R lorsque y parcourt l’ensemble des solutions de
l’équation différentielle et, finalement, la relation (3.19) est une condition nécessaire de consistance.
On montre maintenant que la relation (3.19) est une condition suffisante de consistance. On
déduit de cette relation et de la définition de l’erreur de troncature que
1 tn+1
(Φ(s, y(s); 0) − Φ(tn , y(tn ); h)) ds .
n+1 =
h tn
La fonction (t, h) → Φ(t, y(t); h) étant continue sur le compact [t0 , t0 + T ] × [0, h0 ], elle est
uniformément continue ; nous avons donc pour tn s tn+1
lim
max
h−→0 n=0,..,N−1
ce qui implique lim
|Φ(s, y(s); 0) − Φ(tn , y(tn ); h)| = 0 ,
max |n | = 0 et achève de prouver que la relation (3.19) est une condition
h−→0 n=1,...,N
n
suffisante de consistance.
Dans le lemme suivant, nous donnons une condition suffisante de stabilité.
Lemme 3.12. Si la fonction Φ vérifie une condition de Lipschitz
∀ t ∈ [t0 , t0 + T ], ∀ y, z ∈ R, ∀ h ∈ [0, h0 ], |Φ(t, y; h) − Φ(t, z; h)| Λ |y − z| ,
(3.22)
où Λ est une constante positive indépendante de h, alors la méthode à un pas (3.16) est stable.
Soient {yn , n = 0, . . . , N − 1} et {zn , n = 0, . . . , N − 1} deux suites qui vérifient
yn+1 = yn + hΦ(tn , yn ; h) (resp. zn+1 = zn + h(Φ(tn , zn ; h) + ηn+1 )) pour n = 0, . . . , N − 1. En
utilisant l’inégalité (3.22), on en déduit immédiatement
Preuve.
|yn+1 − zn+1 | (1 + Λh) |yn − zn | + h |ηn+1 | , n = 0, . . . , N − 1 ,
d’où, d’après le lemme (3.2),
Λ(tn −t0 )
|yn − zn | e
|y0 − z0 | + h
n
Λ(tn −ti )
e
i=1
eΛ(tn −t0 ) |y0 − z0 | +
eΛ(tn −t0 ) − 1
Λ
max |ηi |
i=1,...,n
max |ηi |
i=1,...,n
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 171 — #190
i
i
171
max |yn − zn | eΛT |y0 − z0 | +
n=0,...,N
eΛT − 1
Λ
La méthode est donc stable et on a M1 = eΛT et M2 =
max |ηn | .
n=1,...,N
eΛT −1
.
Λ
n
Le théorème suivant se déduit immédiatement de ces deux lemmes ainsi que du théorème 3.10.
Théorème 3.13. On suppose que la fonction Φ vérifie
∀ t ∈ [t0 , t0 + T ], ∀ y ∈ R, Φ(t, y; 0) = f(t, y),
ainsi que la condition de Lipschitz
∀ t ∈ [t0 , t0 + T ], ∀ y, z ∈ R, ∀ h ∈ [0, h0 ], |Φ(t, y; h) − Φ(t, z; h)| Λ |y − z| ,
où Λ est une constante positive, indépendante de h. Alors la méthode à un pas (3.16) est
convergente.
Remarque. Si y est solution du problème (3.15) et yn , n = 0, . . . , N, solution du schéma (3.16),
on obtient plus précisément
|en | eΛ(tn −t0 ) |γ − γh | +
eΛ(tn −t0 ) − 1
Λ
max |i | ,
i=1,...,n
où en est l’erreur de discrétisation (3.6) et n l’erreur de troncature.
Proposition 3.14. Si on définit, étant donné la subdivision de pas constant h, la fonction
yh ∈ C([t0 , t0 + T ]) par
yh (t) = yn +
yn+1 − yn
(t − tn ) ,
h
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
et par conséquent
∀ t ∈ [tn , tn+1 ] ,
la famille (yh )h converge vers y dans C([t0 , t0 + T ]) lorsque h tend vers 0.
Preuve. La démonstration est la même que celle de la proposition (3.4).
Test 3.4.
y
y2 /(1 +
Soit le problème de Cauchy
=
|y|),
y(0) = 1 ; on calcule une approximation yn de
y(tn ) par
yn yn+1
, y0 = 1 .
yn+1 = yn + h
1 + |yn |
n
(1) Montrer que cette approximation est définie
de façon unique pour h < 1 ; écrire cette méthode sous la forme habituelle des méthodes à
un pas. (2) Montrer la consistance et la stabilité
de la méthode et en déduire la convergence.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 172 — #191
i
i
172
Partie I. Analyse numérique
II.4. Étude de l’erreur de discrétisation
II.4.1. Ordre d’une méthode à un pas
Définition 3.15. La méthode à un pas (3.16) est d’ordre p, (p > 0) si l’erreur de troncature
est en O(hp ), c’est-à-dire :
1
(y(tn+1 ) − y(tn )) − Φ(tn , y(tn ); h) Khp ,
max |n | =
max
n=1,...,N
n=0,...,N−1 h
où K est une constante positive ne dépendant que de y et de Φ, cela pour toute solution y de
l’équation différentielle, telle que y ∈ Cp+1 ([t0 , t0 + T ]).
Le théorème suivant se déduit immédiatement du théorème 3.10.
Théorème 3.16. Si la méthode à un pas est stable et d’ordre p et si f ∈ Cp ([t0 , t0 + T ] × R),
on a l’estimation
max |y(tn ) − yn | M1 |γ − γh | + M2 Khp ,
n=0,...,N
où y est la solution du problème de Cauchy (3.15) et yn , n = 0, . . . , N la solution du schéma
(3.16).
Corollaire 3.17. Si f ∈ Cp ([t0 , t0 + T ] × R), si la méthode est d’ordre p et si la fonction Φ
vérifie la condition de Lipschitz
∀ t ∈ [t0 , t0 + T ], ∀ y, z ∈ R, ∀ h ∈ [0, h0 ], |Φ(t, y; h) − Φ(t, z; h)| Λ |y − z| ,
où Λ est une constante positive indépendante de h, on a l’estimation
max |en | eΛT |γ − γh | + K
n=0,...,N
eΛT − 1 p
h .
Λ
Preuve. Il suffit d’appliquer le théorème 3.13 et la remarque en fin de section II.3.
Test 3.5.
n
est d’ordre 3.
Montrer que la méthode à un pas définie par
h
1
h
Φ(t, y; h) = f(t, y)+ hf(1) (t+ , y+ f(t, y))
2
3
3
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 173 — #192
i
i
173
Si f ∈ Cp ([t0 , t0 + T ] × R), on peut définir inductivement la fonction f(k) , 0 k p, sur
[t0 , t0 + T ] × R par
f(0) (t, y) = f(t, y)
∂f
∂f
f(1) (t, y) =
(t, y) +
(t, y)f(t, y)
∂t
∂y
..
.
∂f(k−1)
∂f(k−1)
f(k) (t, y) =
(t, y) +
(t, y)f(t, y) .
∂t
∂y
On vérifie facilement que si y est solution de l’équation différentielle, on a l’égalité
y(k+1) (t) = f(k) (t, y(t)) =
dk
f(t, y(t)).
dtk
(3.23)
Théorème 3.18. On suppose que f ∈ Cp ([t0 , t0 + T ] × R) et que les fonctions Φ,
∂Φ/∂h, . . . , ∂p Φ/∂hp existent et sont continues dans [t0 , t0 + T ] × R × [0, h0 ]. Une condition
nécessaire et suffisante pour que la méthode soit d’ordre p s’écrit
⎧
Φ(t, y; 0)
= f(t, y)
⎪
⎪
⎪
⎪
⎨ ∂Φ
(t, y; 0)
= 12 f(1) (t, y)
∂h
∀ (t, y) ∈ [t0 , t0 + T ] × R ,
.
(3.24)
.
..
⎪
⎪
⎪
⎪
⎩ ∂p−1 Φ
(t, y; 0) = p1 f(p−1) (t, y)
∂hp−1
Preuve. Soit y une solution de l’équation différentielle, y ∈ Cp+1 ([t0 , t0 + T ]). D’après la
formule de Taylor, il existe ξn ∈]tn , tn+1 [ tel que
y(tn+1 ) − y(tn ) = hy (tn ) + · · · +
hp (p)
hp+1 (p+1)
y (tn ) +
y
(ξn ) ;
p!
(p + 1)!
en utilisant l’égalité (3.23), on obtient
h2 (1)
f (tn , y(tn )) + . . .
2
p
hp+1 (p)
h (p−1)
(tn , y(tn )) +
··· +
f
f (ξn , y(ξn )) .
p!
(p + 1)!
y(tn+1 ) − y(tn ) = hf(tn , y(tn )) +
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
II.4.2. Majoration a priori de l’erreur de discrétisation
De même, il existe ĥ ∈]0, h0 ] tel que
Φ(tn , y(tn ); h) = Φ(tn , y(tn ); 0) + h
+
On en déduit
n+1
∂Φ
hp−1 ∂p−1 Φ
(tn , y(tn ); 0) + · · · +
(tn , y(tn ); 0)
∂h
(p − 1)! ∂hp−1
hp ∂p Φ
(tn , y(tn ); ĥ) .
p! ∂hp
∂Φ
1 (1)
= (f(tn , y(tn )) − Φ(tn , y(tn ); 0)) + h
f (tn , y(tn )) −
(tn , y(tn ); 0) + · · ·
2
∂h
hp−1
∂p−1 Φ
1 (p−1)
+
(tn , y(tn )) −
(tn , y(tn ); 0)
f
(p − 1)! p
∂hp−1
1 (p)
hp
∂p Φ
f (ξn , y(ξn )) −
+
(t
,
y(t
);
ĥ)
n
n
p! p + 1
∂hp
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 174 — #193
i
i
Partie I. Analyse numérique
174
et donc la méthode est d’ordre p, si et seulement si
⎧
⎪
Φ(tn , y(tn ); 0)
= f(tn , y(tn ))
⎪
⎪
⎪
⎪
∂Φ
⎪
⎪
= 12 f(1) (tn , y(tn ))
(tn , y(tn ); 0)
⎨
∂h
(3.25)
..
⎪
⎪
.
⎪
⎪
⎪
p−1
⎪
Φ
⎪
⎩∂
(tn , y(tn ); 0) = p1 f(p−1) (tn , y(tn ))
∂hp−1
pour toute solution y de l’équation différentielle et pour tout n = 1, . . . , N. Si le système (3.24)
est vérifié, la méthode est donc d’ordre p.
Réciproquement, supposons la méthode d’ordre p ; le système (3.25) est vérifié. Soit t un point
quelconque de [t0 , t0 + T ] ; on peut construire une suite de points (tn )n de [t0 , t0 + T ] qui converge
vers t. En passant à la limite dans (3.25) quand n tend vers l’infini, on obtient
⎧
⎪
Φ(t, y(t); 0)
= f(t, y(t))
⎪
⎪
⎪
⎪
∂Φ
⎪
⎪
(t, y(t); 0)
= 12 f(1) (t, y(t))
⎨
∂h
..
⎪
⎪
.
⎪
⎪
⎪
p−1
⎪
Φ
⎪
⎩∂
(t, y(t); 0) = p1 f(p−1) (t, y(t)) .
∂hp−1
Mais comme y(t) parcourt R lorsque y décrit l’ensemble des solutions de l’équation différentielle,
on en déduit que les relations (3.24) sont vérifiées.
n
Remarque. Lorsque f et Φ satisfont les hypothèses du théorème précédent, il est possible
d’obtenir une estimation de la constante K intervenant dans l’erreur de troncature en fonction
des données. Si les relations (3.24) sont vérifiées, l’erreur de troncature s’écrit
1 ∂p Φ
1
(t
,
y(t
);
ĥ)
, ξn ∈]tn , tn+1 [ .
f(p) (ξn , y(ξn )) −
n+1 = hp
n
n
(p + 1)!
p! ∂hp
Lorsque y est solution du problème de Cauchy, le couple (t, y(t)) reste dans un ensemble compact
D. En effet, il est possible d’obtenir
t une majoration de y en fonction des données car, d’après
(3.15), on a l’égalité y(t) − γ = t0 (f(s, y(s)) − f(t0 , γ)) ds + (t − t0 )f(t0 , γ), t ∈ [t0 , t0 + T ]. La
fonction f étant lipschitzienne par rapport à y, on en déduit
t
|y(s) − γ| ds + (t − t0 ) |f(t0 , γ)| , t ∈ [t0 , t0 + T ] .
|y(t) − γ| L
(3.26)
t0
t
Considérons la fonction φ définie sur [t0 , t0 + T ] par φ(t) := e−L(t−t0 ) t0 |y(s) − γ| ds. L’inégalité
(3.26) peut s’écrire φ (t) |f(t0 , γ)| (t − t0 )e−L(t−t0 ) pour t ∈ [t0 , t0 + T ] et on en déduit
|f(t0 , γ)| 1 − e−L(t−t0 )
− (t − t0 )e−L(t−t0 ) .
φ(t) L
L
En reportant cette majoration dans (3.26), on obtient |y(t) − γ| |f(t0 , γ)| (eL(t−t0 ) − 1)/L pour
LT
problème
tout t ∈ [t0 , t0 + T ] et |y(t)| |γ| + |f(t0 , γ)|
(e − 1)/L. Finalement, si y est solution du
de Cauchy (3.15), alors (t, y(t)) ∈ D := (t, y) ; t ∈ [t0 , t0 + T ], |y| |γ| + |f(t0 , γ)| (eLT − 1)/L .
On en déduit immédiatement max |n | Khp , où
n=1,...,N
p
∂ Φ
1
1
max f(p) (t, y) +
max p (t, y; h) .
K=
(3.27)
(p + 1)! (t,y)∈D
p! (t,y)∈D ∂h
h∈[0,h0 ]
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 175 — #194
i
i
175
Nous avons déjà remarqué dans la partie précédente que les majorations a priori de l’erreur de
discrétisation sont beaucoup trop larges en général. Nous allons donc chercher une estimation
plus réaliste en étudiant son comportement asymptotique.
Théorème 3.19. Soit f ∈ Cp+1 ([t0 , t0 + T ] × R) et Φ ∈ Cp+1 ([t0 , t0 + T ] × R × [0, h0 ]). Si la
méthode à un pas est stable, d’ordre p, et si γ − γh = O(hp ), l’erreur de discrétisation vérifie
en = hp e1 (tn ) + (γ − γh )e0 (tn ) + O(hp+1 ) ,
où les fonctions e0 et e1 sont les solutions respectives de
∂f (t, y(t))e (t), t ∈ [t , t + T ]
e0 (t)
= ∂y
0
0 0
e0 (t0 )
e1 (t)
e1 (t0 )
avec φ(t, y) :=
=1
∂f (t, y(t))e (t) + φ(t, y(t)), t ∈ [t , t + T ]
= ∂y
1
0 0
=0
(3.28)
(3.29)
(3.30)
1
1 ∂p Φ (t, y; 0) pour tout t ∈ [t , t + T ], pour tout y ∈ R.
f(p) (t, y) − p!
0 0
∂hp
(p + 1)!
Preuve. Soit y ∈ Cp+2 ([t0 , t0 + T ]) la solution du problème de Cauchy (3.15). Nous avons,
en utilisant la formule de Taylor,
y(tn+1 ) = y(tn ) + hf(tn , y(tn )) +
+
h2 (1)
hp+1
f (tn , y(tn )) + · · · +
f(p) (tn , y(tn ))
2
(p + 1)!
hp+2
f(p+1) (ξn , y(ξn )) ,
(p + 2)!
où ξn ∈]tn , tn+1 [ . Nous avons, de même,
Φ(tn , y(tn ); h) = Φ(tn , y(tn ); 0) + h
+
∂Φ
hp ∂p Φ
(tn , y(tn ); 0)
(tn , y(tn ); 0) + · · · +
∂h
p! ∂hp
hp+1 ∂p+1 Φ
(tn , y(tn ); ĥ) ,
(p + 1)! ∂hp+1
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
II.4.3. Étude asymptotique de l’erreur de discrétisation
où ĥ ∈]0, h0 [. Comme la méthode est d’ordre p, on obtient d’après (3.24), pour n = 0, ..., N − 1,
y(tn+1 ) = y(tn ) + hΦ(tn , y(tn ); h) + hp+1 φ(tn , y(tn )) + O(hp+2 ) .
(3.31)
D’autre part, si yn , n = 0, . . . , N est la solution du schéma (3.16), on a l’égalité
Φ(tn , yn ; h) − Φ(tn , y(tn ); h) = Φ(tn , y(tn ) − en ; h) − Φ(tn , y(tn ); h)
= −en
1 ∂2 Φ
∂Φ
(tn , y(tn ); h) + e2n 2 (tn , ŷn ; h)
∂y
2 ∂y
avec ŷn compris entre y(tn ) et yn , d’où
Φ(tn , yn ; h) = Φ(tn , y(tn ); h) − en
∂Φ
∂2 Φ
(tn , y(tn ); 0) − hen
(tn , y(tn ); h̃)
∂y
∂y∂h
1 ∂2 Φ
+ e2n 2 (tn , ŷn ; h) , h̃ ∈]0, h[ .
2 ∂y
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 176 — #195
i
i
176
Partie I. Analyse numérique
En remarquant que ∂Φ/∂y(t, y; 0) = ∂f/∂y(t, y) car la méthode est consistante et en utilisant
le fait que en = O(hp ), on obtient
yn+1 = yn + hΦ(tn , y(tn ); h) − hen
∂f
(tn , y(tn )) + O(hp+2 ) .
∂y
(3.32)
On déduit de (3.31) et (3.32) en+1 = en + hen (∂f/∂y)(tn , y(tn )) + hp+1 φ(tn , y(tn )) + O(hp+2 ).
Introduisons maintenant, pour n 0, zn := en − hp e1 (tn ) − (γ − γh )e0 (tn ), n 0. D’après la
formule de Taylor, on a les égalités
∂f
(tn , y(tn ))e0 (tn ) + O(h2 ),
∂y
∂f
e1 (tn+1 ) = e1 (tn ) + h (tn , y(tn ))e1 (tn ) + hφ(tn , y(tn )) + O(h2 ) ,
∂y
e0 (tn+1 ) = e0 (tn ) + h
d’où zn+1 = zn +h(∂f/∂y)(tn , y(tn )) zn +O(hp+2 ). La fonction f étant lipschitzienne par rapport
à la variable y, on a la majoration |∂f/∂y(t, y)| L pour tout t ∈ [t0 , t0 + T ], pour tout y ∈ R.
On en déduit |zn+1 | (1 + hL) |zn | + Chp+2 , où C est une constante positive et donc, d’après le
n
lemme 3.2, |zn | Chp+1 (eLT − 1)/L car z0 = 0, ce qui démontre le théorème.
Application 1 Extrapolation à la limite de Richardson On note, comme dans l’application proposée dans la section I.4, y(t; h) l’approximation de y au temps t calculée avec le pas h
et y(t, rh) l’approximation calculée avec le pas rh. D’après le théorème 3.19, on a les égalités
y(t; h) = y(t) − hp e1 (t) − (γ − γh )e0 (t) + O(hp+1 ),
y(t; rh) = y(t) − (rh)p e1 (t) − (γ − γh )e0 (t) + O(hp+1 ) .
On en déduit (y(t; rh) − rp y(t; h))/(1 − rp ) = y(t) − (γ − γh )e0 (t) + O(hp+1 ) et si γ − γh =
O(hp+1 ), on obtient ainsi une approximation de y en O(hp+1 ).
Application 2 Approximation de l’erreur de discrétisation On cherche une approximation de l’erreur de discrétisation en en calculant des valeurs approchées de e1 (tn ), e0 (tn ) et en
négligeant le terme d’ordre p + 1 dans (3.28). Pour cela, il paraît nécessaire de connaître :
1) la solution exacte y(t) du problème de Cauchy ;
2) la fonction ∂f/∂y ;
3) la fonction φ.
La première condition peut être levée en remarquant qu’on peut remplacer y(tn ) par yn , ce qui
entraîne sur e1 (tn ) et e0 (tn ) une erreur d’ordre p et donc pour en une erreur d’ordre p + 1 qui
peut être négligée, étant donné qu’on a déjà négligé des termes de cet ordre. On suppose que la
dérivée ∂f/∂y se calcule facilement. Il reste alors à obtenir une approximation de φ, ce que nous
nous proposons de faire. Soient (t, y) ∈ [t0 , t0 + T ] × R et z la solution du problème de Cauchy
z (s) = f(s, z(s)) , z(t) = y. D’après (3.31), on a l’égalité
z(t + h) = y + hΦ(t, y; h) + hp+1 φ(t, y) + O(hp+2 ) .
(3.33)
On peut aussi exprimer z(t + h) en fonction de y en utilisant deux fois le pas h/2 :
p+1
h
φ(t, y) + O(hp+2 ),
2
p+1
h
h
h h
h
h
h
h
z(t + h) = z(t + ) + Φ(t + , z(t + ); ) +
φ(t + , z(t + )) + O(hp+2 ) .
2
2
2
2 2
2
2
2
h
h
h
z(t + ) = y + Φ(t, y; ) +
2
2
2
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 177 — #196
i
i
Si on élimine z(t + h2 ) entre ces deux équations, on obtient
p+1
h
h
h
h h
h
h
φ(t, y) + O(hp+2 ) .
Φ(t, y; ) + Φ(t + , y + Φ(t, y; ); ) + 2
z(t + h) = y +
2
2
2
2
2 2
2
(3.34)
Les relations (3.33) et (3.34) permettent d’obtenir une approximation de φ :
h
1
h
h
h h
h−p
1
Φ(t, y; ) + Φ(t + , y + Φ(t, y; ); ) − Φ(t, y; h) + O(h) .
φ(t, y) =
1 − 2−p 2
2
2
2
2
2 2
L’équation (3.30) peut alors s’intégrer en utilisant le schéma
= ẽn
ẽn+1
1
1 +h
∂f
0
(tn , yn )ẽn
1 + hφ̃(tn , yn ) , ẽ1 = 0 ,
∂y
où
h−p
φ̃(tn , yn ) =
1 − 2−p
1
h
h
h
h
h
h h
1
Φ(tn , yn ; ) + Φ(tn + , yn + Φ(tn + , yn + Φ(tn , yn ; ); ) − Φ(tn , yn ; h) .
×
2
2
2
2
2
2
2
2 2
De la même façon, la solution approchée de l’équation (3.29) est donnée par le schéma
∂f
n
= ẽn
ẽn+1
0
0 + h ∂y (tn , yn )ẽ0
ẽ00
On obtient alors e1 (tn ) =
ẽn
1
= 1.
+ O(h), e0 (tn ) = ẽn
0 + O(h) et finalement
n
p+1
en = hp ẽn
).
1 + (γ − γh )ẽ0 + O(h
II.5. Exemples de méthodes à un pas
II.5.1. Méthode du développement de Taylor
L’idée la plus simple pour construire une méthode à un pas consiste à utiliser directement le
développement de Taylor de la solution y(t) en chaque point tn . Si f ∈ Cp ([t0 , t0 + T ] × R), on
peut poser
h
hp−1 (p−1)
f
Φ(t, y; h) = f(t, y) + f(1) (t, y) + · · · +
(t, y) .
2
p!
La méthode est évidemment d’ordre p et, si p = 1, on retrouve la méthode d’Euler. Calculons
la constante K qui intervient dans l’erreur de troncature. Nous avons, d’après (3.27),
∂p Φ
1
1
K=
max |f(p) (t, y)| +
max p (t, y; h) .
(p + 1)! (t,y)∈D
p! (t,y)∈D ∂h
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
177
h∈[0,h0 ]
Comme ∂ Φ/∂h (t, y; h) = 0, il reste donc
p
p
K=
1
max |f(p) (t, y)| .
(p + 1)! (t,y)∈D
Étudions maintenant la stabilité de la méthode. D’après le lemme 3.12, une condition suffisante
de stabilité est que la fonction Φ vérifie une condition de Lipschitz en y. Nous supposons que
chaque fonction f(k) , (0 k p − 1) satisfait une condition de la forme
(k)
f (t, y) − f(k) (t, z) Lk |y − z| , ∀ t ∈ [t0 , t0 + T ], ∀y, z ∈ R , L0 = L .
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 178 — #197
i
i
178
Partie I. Analyse numérique
Sous ces hypothèses, la fonction Φ vérifie
hp−1
h0
|φ(t, y; h) − Φ(t, z; h)| L +
L1 + · · · + 0 Lp−1 |y − z| , ∀ h ∈ [0, h0 ],
2
p!
et la constante de Lipschitz Λ est alors donnée par
Λ= L+
hp−1
h0
0
L1 + · · · +
Lp−1 .
2
(p − 1)!
La méthode du développement de Taylor satisfait les hypothèses du corollaire 3.17 et est donc
convergente. Malheureusement, il est clair qu’elle présente de graves inconvénients du point
de vue pratique. Elle nécessite l’évaluation de p fonctions f, . . . , f(p−1) et, par ailleurs, lorsque
p croît, la complexité des expressions analytiques de ces fonctions augmente très vite. Cette
méthode est donc en général à éviter, sauf dans des cas très simples.
II.5.2. Méthodes de Runge-Kutta
On cherche maintenant à déterminer une méthode d’ordre p, ne nécessitant pas le calcul de
tn+1
f(t, y(t))dt.
f(1) , . . . , f(p−1) . La solution du problème de Cauchy vérifie y(tn+1 ) = y(tn ) + tn
La méthode d’Euler explicite est obtenue en utilisant la formule d’intégration des rectangles
à gauche pour le calcul de l’intégrale. L’idée, pour construire d’autres méthodes, est d’utiliser
d’autres formules de quadrature pour le calcul de cette intégrale.
1) Si on utilise la méthode des rectangles à droite, on obtient la méthode d’Euler implicite
(ou rétrograde)
(3.35)
yn+1 = yn + hf(tn+1 , yn+1 ) .
Cette méthode est implicite car le calcul de yn+1 nécessite la résolution d’une équation
non linéaire. On montrera plus loin que si f satisfait une condition de Lipschitz en y,
l’équation (3.35) admet une solution unique si h est assez petit. L’erreur de troncature
s’écrit
1
h
n+1 = (y(tn+1 ) − y(tn )) − f(tn+1 , y(tn+1 )) = − y (ξn ),
h
2
avec ξn ∈]tn , tn+1 [. Le schéma est donc d’ordre 1.
2) Si on utilise la méthode des trapèzes pour le calcul de l’intégrale, on obtient la méthode
de Crank-Nicolson 1 , à savoir
yn+1 = yn +
h
(f(tn , yn ) + f(tn+1 , yn+1 )) .
2
C’est encore une méthode implicite, admettant une solution unique pour h assez petit.
L’erreur de troncature est donnée par
n+1 =
1
1
(y(tn+1 ) − y(tn )) − (f(tn , y(tn )) + f(tn+1 , y(tn+1 )))
h
2
et, en utilisant la formule de Taylor, on vérifie facilement que cette méthode est d’ordre 2.
1. Méthode introduite vers 1947 pour la résolution de l’équation de la chaleur, par la mathématicienne
britannique Phillis Nicolson (1917-1968), et son compatriote, le physicien John Crank (1916-2006).
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 179 — #198
i
i
179
tn+1
f(t, y(t))dt ∼ h f(tn +
tn
h
h
, y(tn + ))
2
2
et on remplace la valeur inconnue y(tn + h2 ) par son approximation obtenue par la méthode
d’Euler. On obtient ainsi une méthode explicite, la méthode d’Euler modifiée :
yn+1 = yn + hf(tn +
h
h
, yn + f(tn , yn )).
2
2
On vérifie que cette méthode est d’ordre 2.
4) Dans la formule des trapèzes, pour obtenir un schéma explicite, on remplace y(tn+1 ) par
l’approximation obtenue par la méthode d’Euler explicite. On obtient la méthode de Heun :
h
(f(tn , yn ) + f(tn + h, yn + hf(tn , yn ))) .
2
On vérifie encore que cette méthode est d’ordre 2.
yn+1 = yn +
On peut étendre ces résultats en utilisant des formules de quadrature plus générales. On se
donne q réels c1 , ...cq (distincts ou non) et on définit les formules de quadrature
⎧ c
q
i
⎪
⎪
⎪
φ(s)ds
∼
aij φ(cj ), 1 i q
⎪
⎨ 0
j=1
.
(3.36)
1
q
⎪
⎪
⎪
φ(s)ds
∼
b
φ(c
)
⎪
j
j
⎩
0
j=1
On pose alors tn,i = tn + ci h et l’intégrale
h
p
tn+1
tn
f(t, y(t))dt est approchée par
bj f(tn,j , y(tn,j )) ;
j=1
les valeurs inconnues y(tn,j ) sont remplacées par leurs approximations yn,j , obtenues en utilisant
les formules d’intégration (3.36). La méthode de Runge-Kutta est ainsi définie par
⎧
q
⎪
⎪
⎪
y
=
y
aij f(tn,j , yn,j ), 1 i q
n,i
n +h
⎪
⎨
j=1
.
(3.37)
q
⎪
⎪
⎪
bj f(tn,j , yn,j )
⎪
⎩yn+1 = yn + h
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
3) L’intégrale peut être approchée en utilisant la règle du point milieu
j=1
Si on connaît yn , les valeurs yn,i , 1 i q, sont solutions d’un système de q équations à
q inconnues qui peut être implicite. Nous démontrerons plus loin que ce système admet une
solution unique pour h assez petit, lorsque f vérifie une condition de Lipschitz en y. Ce schéma
peut encore s’écrire sous la forme générale yn+1 = yn + hΦ(tn , yn ; h), où la fonction Φ(t, y; h)
est définie par les équations
yi = y + h
q
aij f(t + cj h, yj ) ,
1 i q,
(3.38)
j=1
Φ(t, y; h) =
q
bj f(t + cj h, yj ) .
(3.39)
j=1
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 180 — #199
i
i
180
Partie I. Analyse numérique
Une méthode de Runge-Kutta est donc complètement définie si on connaît les coefficients
ci , aij , bj , (1 i, j q). On la représente à l’aide du tableau :
c1
c2
...
cq
...
...
...
...
...
a11
a21
...
aq1
b1
...
...
...
...
...
...
...
...
...
...
a1q
a2q
...
aqq
bq
Remarque. La méthode de Runge-Kutta peut également s’écrire sous la forme suivante :
kn,i = f(tn,i , yn + h
q
aij kn,j ), 1 i q,
(3.40)
j=1
yn+1 = yn + h
q
bj kn,j .
(3.41)
j=1
On résout alors le système (3.40) de q équations à q inconnues kn,i , 1 i q. L’équation
(3.41) permet ensuite de calculer yn+1 .
Exemple 3.20. La θ−méthode est représentée dans le tableau suivant :
0
1−θ
1−θ
0
1
0
θ
θ
Pour θ = 0, c’est la méthode d’Euler explicite, pour θ = 1, la méthode d’Euler implicite et
1
pour θ = , on retrouve la méthode de Crank-Nicolson.
2
Exemple 3.21. La méthode de Runge-Kutta classique est représentée par le tableau suivant :
0
0
1
2
1
2
1
2
0
0
0
0
1
6
1
0
0
0
0
1
0
0
0
0
1
3
1
3
1
6
1
2
En utilisant la forme ((3.40)-(3.41)), elle s’écrit donc
kn,3 = f(tn +
h
h
, yn + kn,1 ),
2
2
kn,1 = f(tn , yn ),
kn,2 = f(tn +
h
h
, yn + kn,2 ),
2
2
kn,4 = f(tn + h, yn + hkn,3 ),
yn+1 = yn +
h
(kn,1 + 2kn,2 + 2kn,3 + kn,4 ) .
6
Test 3.6.
Test 3.7.
Montrer que le problème de Cauchy y (t) =
−2t, y(0) = 0 est résolu exactement par la
méthode d’Euler modifiée.
1) Calculer la solution exacte du problème de
Cauchy y (t) = −2ty(t), y(−1) = e−1 .
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 181 — #200
i
i
2) Écrire la méthode de Heun pour ce problème
(y0 = e−1 ) et calculer e1 (t).
Test 3.8.
On considère le problème de Cauchy y =
√
y, y(0) = 1. Calculer la solution exacte et
la solution approchée obtenue avec la méthode
de Crank-Nicolson. Conclusion ?
Test 3.9.
On considère le problème de Cauchy y (t) =
My(t), y(0) = y0 donné, y ∈ Rp , M ∈
Rp,p . Écrire les méthodes d’Euler, Euler modifiée et Heun pour ce problème. Montrer que
dans chacun des cas, la solution numérique est
donnée par yn+1 = R(hM)yn et déterminer
R.
Test 3.10.
Mettre l’équation différentielle y (t) + y(t) =
0, y(0) = 1, y (0) = 1 sous la forme décrite
dans le test 3.9. Calculer la solution exacte et la
solution approchée par la méthode de Heun sur
[0, 1] avec le pas h = 12 et le pas h = 13 .
II.6. Étude des méthodes de Runge-Kutta
II.6.1. Existence de la solution et stabilité des méthodes de Runge-Kutta
Nous allons maintenant étudier l’existence d’une solution du système (3.37), puis la stabilité des
méthodes de Runge-Kutta. Introduisons les matrices A et C ∈ Rq,q et les vecteurs b et e ∈ Rq :
A = (aij )1i,jq ,
C = diag(ci )1iq ,
b = (bi )1iq
et
e = (1, . . . , 1) ,
les aij , les bi et les ci étant ceux dont dépend le schéma (3.37).
Si la matrice A est triangulaire inférieure strictement (i.e. i j =⇒ aij = 0), la méthode de
Runge-Kutta est explicite et le système (3.37) admet évidemment une solution. Si A est triangulaire inférieure (i.e. i < j =⇒ aij = 0), la méthode est semi-implicite et l’on résout l’une après
l’autre q équations scalaires. Sinon, la méthode de Runge-Kutta est implicite.
Le théorème suivant donne une condition sur h pour que la solution du système (3.37) existe.
Notons |A| la matrice de Rq,q définie par |A| := (|aij |)1i,jq et ρ(|A|) son rayon spectral.
Théorème 3.22. On suppose que f satisfait la condition de Lipschitz (3.7). Si h vérifie
hLρ(|A|) < 1, la méthode de Runge-Kutta admet une solution unique.
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
181
Pour démontrer ce résultat, nous utiliserons un théorème du point fixe que nous rappelons ici
(voir le chapitre 6, section III, de Mathématiques L2, Pearson Education, 2007).
Rappel
Le théorème du point fixe
Soit E un espace de Banach, φ une application continue de E dans E. On suppose qu’il
existe k ∈ [0, 1[, tel que
∀ u, v ∈ E, φ(u) − φ(v) k u − v ,
alors l’application φ admet un point fixe unique.
Nous utiliserons également le lemme suivant.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 182 — #201
i
i
Partie I. Analyse numérique
182
Lemme 3.23. Soient E un espace de Banach et φ une application continue de E dans E telle
que l’une des itérées φm soit contractante. Alors l’application φ admet un point fixe unique.
Preuve. Si φm est contractante, elle admet un point fixe unique. Si a est un point fixe de φ,
il est aussi un point fixe de φm et il est donc unique. Si a est le point fixe de φm , on a l’égalité
φm+1 (a) = φ(φm (a)) = φ(a) = φm (φ(a)), ce qui prouve que φ(a) est un point fixe de φm ,
n
donc φ(a) = a et φ admet un point fixe unique.
(du théorème 3.22). Notons Y le vecteur de Rq de composantes Y = (yi )1iq . Si
q
(yi )1iq est solution du système (3.38), on a l’égalité Y = Ψ(Y),
q où Ψ est l’application de R
q
dans R définie par Ψ(Y) = (ψi (Y))1iq , avec ψi (Y) = y + h j=1 aij f(t + ci h, yi ), i = 1, . . . , q.
La méthode de Runge-Kutta admet une solution unique si Ψ admet un point fixe unique. Soient
Y et Z ∈ Rq . Comme la fonction f satisfait (3.7), on obtient
Preuve.
|ψi (Y) − ψi (Z)| hL
q
|aij | |yj − zj | .
j=1
Si on munit Rq de la norme Y∞ := max |yi |, et que l’on note
i=1,..,q
A∞ := max
Y=0
AY∞
Y∞
la norme matricielle associée, on en déduit Ψ(Y) − Ψ(Z)∞ hL |A|∞ Y − Z∞ . Pour tout
> 0, on peut trouver une matrice inversible H, telle que hL |A| = HBH−1 , où
⎛
ζ1
⎜0
⎜
⎜ ..
⎜.
B=⎜
⎜.
⎜ ..
⎜
⎝0
1
ζ2
..
.
..
.
0
0 ···
0
2
..
.
..
.
···
···
⎞
··· ···
·
0 ···
· ⎟
⎟
.. ⎟
..
. ⎟
.
0
⎟,
⎟
..
..
.
.
0 ⎟
⎟
· ζq−1 q−1 ⎠
··· 0
ζq
les (ζi ), 1 i q étant les valeurs propres de hL |A| et i = 0 ou . Ces valeurs propres
sont par hypothèse de module strictement inférieur à 1. On peut donc choisir > 0 tel que
−1
∞ , et il existe n ∈ N tel que (hL |A|)n ∞ < 1.
B∞ < 1, d’où (hL |A|)n ∞ H∞ Bn
∞ H
L’application Ψn est alors contractante et Ψ admet un point fixe unique d’après le lemme 3.23.
n
La méthode de Runge-Kutta admet donc une solution unique si hLρ(|A|) < 1.
Théorème 3.24. Si f satisfait (3.7) et si h0 Lρ(|A|) < 1, la méthode de Runge-Kutta est
stable pour h ∈ [0, h0 ].
Preuve. Pour démontrer la stabilité de la méthode de Runge-Kutta, il suffit de montrer que
Φ vérifie une condition de Lipschitz en y. Si y, z ∈ R, t ∈ [t0 , t0 + T ], h ∈ [0, h0 ], on a l’égalité
Φ(t, y; h) − Φ(t, z; h) =
q
bj (f(t + cj h, yj ) − f(t + cj h, zj )) .
j=1
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 183 — #202
i
i
On en déduit
|Φ(t, y; h) − Φ(t, z; h)| L
q
|bj | |yj − zj | .
(3.42)
j=1
Il suffit donc de majorer |yj − zj | , 1 j q en fonction de |y − z|. D’après (3.38), on a la
majoration
q
|aij | |yj − zj |, 1 i q .
|yi − zi | |y − z| + hL
j=1
Si Y et Z sont les vecteurs de R définis par Y = (yi )1iq et Z = (zi )1iq et que l’on
note |Y − Z| le vecteur (|yi − zi |)1iq , l’inégalité précédente s’écrit vectoriellement |Y − Z| |y − z| e + h0 L |A| |Y − Z|. On en déduit par récurrence que pour tout n 0
q
n
n
n+1 n+1
|A|n+1 |Y − Z| .
|Y − Z| |y − z| (I + h0 L |A| + · · · + hn
L
0 L |A| )e + h0
Comme ρ(h0 L |A|) < 1, par passage à la limite lorsque n−→ + ∞, on obtient
|Y − Z| |y − z| (I − h0 L |A|)−1 e
et donc Y − Z∞ |y − z| (I − h0 L|A|)−1 ∞ . On déduit de cette
inégalité et de (3.42) que
|Φ(t, y; h) − Φ(t, z; h)| Λ |y − z| avec Λ := L(I − h0 L|A|)−1 ∞ qj=1 |bj |.
n
Remarque. Si la méthode de Runge-Kutta est explicite, ρ(|A|) = 0 et donc la méthode est
stable.
II.6.2. Ordre d’une méthode de Runge-Kutta
Les théorèmes suivants sont consacrés à l’étude de l’ordre d’une méthode de Runge-Kutta.
Théorème 3.25. Une condition nécessaire et suffisante pour qu’une méthode de RungeKutta soit consistante est que t be = 1. Une condition nécessaire et suffisante pour qu’une
méthode de Runge-Kutta soit d’ordre 2 s’écrit
t
be = 1
et
t
bCe = t bAe =
1
.
2
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
183
Preuve. D’après le lemme 3.11, une condition nécessaire et suffisante pour que la méthode de
+ T ], y ∈ R. Or, Φ(t, y; 0) =
Runge-Kutta
soit consistante est que Φ(t, y; 0) = f(t, y), t ∈ [t0 , t0 q
q
j=1 bj f(t, y). La méthode est donc consistante si et seulement si
j=1 bj = 1. La méthode de
Runge-Kutta est d’ordre 2 si on a, de plus,
1
∂Φ
(t, y; 0) = f(1) (t, y) .
∂h
2
(3.43)
Par dérivation des relations (3.38) et (3.39), on obtient
q
q
∂yi
∂f
∂yj
∂f
(t, y; h) =
(t + cj h, yj )
aij f(t + cj h, yj ) + h
aij cj (t + cj h, yj ) +
∂h
∂t
∂y
∂h
j=1
j=1
et
q
∂f
∂yi
∂f
∂Φ
,
bi ci (t + ci h, yi ) +
(t, y; h) =
(t + ci h, yi )
∂h
∂t
∂y
∂h
i=1
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 184 — #203
i
i
184
d’où
q
∂f
∂f
aij f(t, y)
.
ci (t, y) +
(t, y)
∂t
∂y
j=1
∂Φ
bi
(t, y; 0) =
∂h
i=1
Partie I. Analyse numérique
q
La relation (3.43) sera donc vérifiée pour toute fonction f de classe C1 si et seulement si t bCe = 12
et t bAe = 12 .
n
Pour déterminer des conditions nécessaires et suffisantes pour qu’une méthode de Runge-Kutta
soit d’ordre 3 ou 4, on suppose que les formules de quadrature (3.36) sont exactes pour les
fonctions constantes, c’est-à-dire ci = qj=1 aij ou encore Ae = Ce.
Théorème 3.26. Supposons que Ae = Ce. Une condition nécessaire et suffisante pour qu’une
méthode de Runge-Kutta soit d’ordre 3 s’écrit
t
be = 1, t bCe =
1 t 2
1
1
, bC e = , t bACe = .
2
3
6
(3.44)
Elle sera d’ordre 4 si et seulement si les conditions supplémentaires suivantes sont satisfaites :
t
bC3 e =
1 t
1 t 2
1 t
1
, bAC2 e =
, bA Ce =
, bCACe = .
4
12
24
8
(3.45)
Preuve. La méthode est d’ordre 3 (resp. 4) si l’erreur de troncature
n+1 =
1
(y(tn+1 ) − y(tn )) − Φ(tn , y(tn ); h)
h
vérifie n+1 = O(h3 ) (resp. O(h4 )). Nous développons la démonstration pour
ql’ordre 4, l’ordre
3 s’en déduisant immédiatement. D’après (3.39), on a Φ(t
i=1 bi f(tn,i , zn,i ),
nq, y(tn ); h) =
où (zn,i )1iq sont solutions du système zn,i = y(tn ) + h j=1 aij f(tn,j , zn,j ), i = 1, . . . , q (ce
système admet une solution unique pour hLρ(|A|) < 1). L’erreur de troncature peut alors s’écrire
n+1 = 1,n+1 + 2,n+1 , où
1,n+1
1
:=
h
2,n+1 :=
q
y(tn+1 ) − y(tn ) − h
q
bi y (tn,i ) ,
i=1
bi (f(tn,i , y(tn,i )) − f(tn,i , zn,i )) .
i=1
En utilisant la formule de Taylor, on obtient
1,n+1 =
1−
q
bi
y (tn ) + h
i=1
+h
3
1
1
bi c3i
−
24 6 i=1
q
1 bi ci
−
2 i=1
q
y (tn ) + h
2
q
1 1
bi c2i
−
6 2 i=1
y(3) (tn )
y(4) (tn ) + O(h4 ) .
Si on choisit f(t, y) = ktk−1 , k = 1, 2, 3, 4 , alors y(t) = tk et 2,n+1 = 0 car f ne dépend pas de y.
Une condition nécessaire pour que la méthode soit d’ordre 4 s’écrit t be = 1, t bCe = 1/2, t bC2 e =
1/3, t bC3 e = 1/4. Lorsque l’on suppose ces relations vérifiées, on obtient n+1 = 2,n+1 + O(h4 ).
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 185 — #204
i
i
Estimons maintenant la quantité y(tn,i ) − zn,i (1 i q). D’après la formule de Taylor, en
utilisant la relation Ae = Ce, on a
q
q
1 2 2
aij y (tn,j ) = h
aij cj y (tn )
y(tn,i ) − y(tn ) − h
ci −
2
j=1
j=1
q
1 3 1
+h3
aij c2j y(3) (tn ) + O(h4 ) .
ci −
6
2 j=1
On en déduit
y(tn,i ) − zn,i = h
q
aij (f(tn,j , y(tn,j )) − f(tn,j , zn,j )) + h
2
j=1
+h
3
q
1 3 1
aij c2j
ci −
6
2 j=1
1 2 aij cj
c −
2 i j=1
q
y (tn )
y(3) (tn ) + O(h4 )
(3.46)
et, comme la fonction f est lipschitzienne par rapport à y, on obtient
q
1 2 2
y(tn,i ) − zn,i = h
aij cj y (tn ) + O(h3 ) .
c −
2 i j=1
En notant ψ la fonction définie par ψ(t) = ∂f/∂y(t, y(t)), on a alors
f(tn,i , y(tn,i )) − f(tn,i , zn,i ) = (y(tn,i ) − zn,i ) ψ(tn ) + O(h3 )
q
1 2 2
aij cj y (tn )ψ(tn ) + O(h3 ) .
=h
c −
2 i j=1
En reportant cette expression dans (3.46), on obtient
q
q
1 2 1 3 1
aij cj y (tn ) + h3
aij c2j y(3) (tn )
ci −
ci −
y(tn,i ) − zn,i = h2
2
6
2 j=1
j=1
q
q
1
+h3
ajk ck y (tn )ψ(tn ) + O(h4 ) .
aij c2j − aij
2
j=1
k=1
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
185
On en déduit
n+1 =
q
bi (y(tn,i ) − zn,i )ψ(tn,i ) + O(h4 )
i=1
= ψ(tn )
q
bi (y(tn,i ) − zn,i ) + hψ (tn )
i=1
bi ci (y(tn,i ) − zn,i ) + O(h4 )
i=1
q
q
q
1 2 1 3 1
3
(3)
2
bi
aij cj + h ψ(tn )y (tn )
bi
aij cj
= h ψ(tn )y (tn )
c −
c −
2 i j=1
6 i 2 j=1
i=1
i=1
q
q
q
q
1
3 2
2
aij cj −
bi
aij
ajk ck
+h ψ (tn )y (tn )
2
i=1
j=1
j=1
k=1
q
q
1 2 ci −
bi ci
aij cj + O(h4 ).
+h3 ψ (tn )y (tn )
2
i=1
j=1
2
q
q
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 186 — #205
i
i
186
Partie I. Analyse numérique
Une condition suffisante pour que la méthode soit d’ordre 4 est donc
1t 2
1
bC e = ,
2
6
1
1
t
bA2 Ce = t bAC2 e =
,
2
24
t
bACe =
1t 3
1
bC e =
,
3
12
1
1
t
bCACe = t bC3 e = .
2
8
t
bAC2 e =
Il reste à montrer que cette condition est nécessaire. Si on prend
− t2 , alors
f(t, y)2 = yt + 2t
2
2 1t
2
t
3 1t
2
ψ(t) = 1 et y(t) = t , d’où n+1 = 2h 2 bC e − bACe + 2h 2 bAC e − bA Ce + O(h4 )
et, pour que la méthode soit d’ordre 4, il faut t bC2 e/2 = t bACe et t bAC2 e/2 = t bA2 Ce. Si
on prend maintenant f(t, y) = y + 3t2 − t3 , alors y(t) = t3 et on a encore ψ(t) = 1, d’où
n+1 = h3 (t bC3 e − 3t bAC2 e) + O(h4 ). Pour que la méthode soit d’ordre 4, il faut donc que l’on
ait t bC3 e/3 = t bAC2 e. En choisissant maintenant f(t, y) = ty − t3 + 2t, on obtient ψ (t) = 1
et y(t) = t2 , d’où n+1 = h3 (t bC3 e − 2t bCACe) + O(h4 ). Les conditions (3.44) et (3.45) sont
n
donc nécessaires pour que la méthode soit d’ordre 4. On en déduit le théorème.
Exemple 3.27. La méthode de l’exemple 3.21 est d’ordre 4.
Test 3.11.
On considère la méthode de Runge-Kutta semiimplicite définie par
θ
1−θ
θ
1 − 2θ
1/2
0
θ
1/2
Déterminer θ pour que la méthode soit d’ordre
3.
Test 3.12.
Montrer que si la méthode de Runge-Kutta est
1
d’ordre 4, la formule d’intégration 0 ψ(t)dt ∼
q
j=1 bj ψ(tj ) est exacte pour les polynômes de
degré inférieur ou égal à 3.
II.6.3. Contrôle du pas
Comme pour la méthode d’Euler, le contrôle du pas nécessite une approximation de l’erreur de
troncature. On considère pour cela une autre méthode de Runge-Kutta d’ordre p + 1, définie
* et on note ˆn+1 son erreur de troncature ˆn+1 = 1 (y(tn+1 ) − y(tn )) −
par la fonction Φ,
h
*
Φ(tn , y(tn ); h). On a donc
* n , y(tn ); h)
ˆn+1 = Φ(tn , y(tn ); h) − Φ(t
n+1 − * n , yn ; h) + (y(tn ) − yn )
= Φ(tn , yn ; h) − Φ(t
*
∂Φ
∂Φ
(tn , ξn ; h) −
(tn , ξn ; h) ,
∂y
∂y
où ξn est compris entre yn et y(tn ). Or y(tn ) − yn = O(hp ). On en déduit
* n , yn ; h)
ˆn+1 = Φ(tn , yn ; h) − Φ(t
n+1 − *
∂Φ
∂Φ
+(y(tn ) − yn )
(tn , ξn ; 0) −
(tn , ξn ; 0) + O(hp+1 ) .
∂y
∂y
*
Mais les méthodes étant consistantes, on a (∂Φ/∂y)(t,
y; 0) = (∂Φ/∂y)(t, y; 0) = (∂f/∂y)(t, y).
p+1
* n , yn ; h) + O(hp+1 ). La quantité
ˆn+1 = O(h
De plus , ) et donc n+1 = Φ(tn , yn ; h) − Φ(t
*
˜n+1 = Φ(tn , yn ; h) − Φ(tn , yn ; h) est donc une bonne approximation de n+1 . On utilise alors
la même technique de changement de pas que dans le cas de la méthode d’Euler.
i
i
i
i
i
i
“mathL3” — 2009/6/17 — 11:37 — page 187 — #206
i
i
* ne demande pas trop
Pour que le coût de calcul ne soit pas trop important, il faut que Φ
d’évaluations supplémentaires de la fonction f. On utilise pour cela des méthodes de RungeKutta emboîtées
RKpp . Supposons que l’on ait une méthode de Runge-Kutta d’ordre p :
On utilise pour
yn+1 = yn + h qi=1 bi f(tn,i , yn,i ), où les yn,i sont solutions du système (3.37).
˜n+1 une méthode d’ordre p > p, telle que ŷn+1 = yn + h qi=1 b̂i f(tn,i , yn,i ) +
le calcul de b̂q+1 f(tn+1 , yn+1 ) . Cette méthode ne nécessite donc pas d’évaluations supplémentaires de f. Ces
méthodes peuvent être représentées par le tableau suivant :
c1
..
.
..
.
cq
1
a11
..
.
..
.
aq1
b1
b̂1
.
...
.
.
...
.
.
.
.
.
...
...
...
...
.
.
.
.
a1q
..
.
..
.
aqq
bq
b̂q
0
..
.
..
.
0
0
b̂q+1
Exemple 3.28. Méthode RK12 : la méthode d’ordre 1 est la méthode d’Euler. La méthode
d’ordre 2 est la méthode de Heun.
0
1
0
1
1/2
0
0
1/2
Exemple 3.29. Méthode RK24 : la méthode d’ordre 4 est la méthode de Runge-Kutta classique.
0
0
0
0
0
0
0
0
1/2 1/2
0
1/2
0
0
1/2
1
0
0
1
0
1/6 1/3 1/3 1/6
Chapitre 3. Résolution numérique des équations différentielles et des équations aux dérivées partielles
187
III. Les méthodes multipas
Comme dans les paragraphes précédents, nous nous intéressons à la résolution numérique du problème de Cauchy ((3.1),(3.2)). Si N ∈ N, on pose, comme précédemment, h = T/N, tn = t0 + nh,
0 n N. Dans le cas des méthodes à un pas, la valeur approchée yn+1 de y(tn+1 ) était obtenue
à partir de la valeur approchée yn de y(tn ). Les méthodes multipas (ou méthodes à pas multiples) utilisent, elles, plusieurs valeurs approchées antérieures yn , yn−1 , . . . Plus précisément,
une méthode à q pas utilise les valeurs approchées yn , . . . , yn−q+1 de la solution aux temps
tn , . . . , tn−q+1 .
i
i
i
i
Téléchargement