Vous êtes sur la page 1sur 12

Chapitre 2

Schémas numériques pour les équations


différentielles ordinaires

La plupart des équations différentielles ordinaires n’admettent pas de solutions explicites. Le but de ce chapitre
est d’introduire des méthodes numériques permettant de calculer de façon approchée la solution de n’importe
quelle équation différentielle ordinaire d’ordre 1. Puisque n’importe quelle équation résolue peut se ramener à une
équation d’ordre 1 (voir 1.1.2), cela permet en fait de résoudre n’importe quel problème de Cauchy (pour une
équation résolue).
Les méthodes sont appelées des schémas numériques et permettent de calculer assez rapidement une bonne
approximation de la solution d’une équation différentielle. Ce chapitre introduira les méthodes les plus courantes,
dites « à un pas », ainsi que les résultats permettant de démontrer qu’elles approchent bien les solutions exactes
(sous les hypothèses du théorème de Cauchy-Lipschitz). Nous donnerons un sens mathématique à ce caractère de
bonne approximation et estimerons la précision de la méthode. Enfin nous discuterons de la mise en pratique de
ces méthodes numériques.

Sommaire
2.1 Mon premier schéma numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.2 Convergence des schémas à un pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.2.1 Consistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.2.2 Stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.2.3 Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.3 Vitesse de convergence et ordre d’un schéma . . . . . . . . . . . . . . . . . . . . . . . 71
2.4 D’autres méthodes numériques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.4.1 Méthode d’Euler implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.4.2 Schéma de Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.4.3 Méthode du point du milieu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.4.4 Schéma de Heun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.4.5 Méthode de Runge-Kutta 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.5 Mise en pratique et comportement numérique . . . . . . . . . . . . . . . . . . . . . . 74
2.5.1 Erreur d’approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.5.2 Instabilité numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.6 Schéma d’Adams-Bashforth d’ordre 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

65
CHAPITRE 2. SCHÉMAS POUR LES EDOS

Dans tout le chapitre, à part mention explicite, nous considérerons le problème de Cauchy suivant :
(
y 0 = f (t, y)
(2.0.1)
y(t0 ) = y0

On supposera f de classe C 1 (donc le théorème de Cauchy-Lipschitz s’applique). La solution exacte du problème


sera notée y et la solution approchée fournie par le schéma numérique sera appelée u.

2.1 Mon premier schéma numérique


Afin de calculer une solution approchée par ordinateur sur un intervalle de temps prédéfini [T 0 , T ] contenant
t0 , il faut tout d’abord commencer par découper cet intervalle en sous-intervalles. Pour cela on introduit une suite
d’instants t1 , t2 , . . . tM et t−L , . . . t−2 , t−1 tels que :
T 0 = t−L < t−L+1 < · · · < t−1 < t0 < t1 < · · · < tM = T.

La solution approchée ne sera calculée qu’en chacun des instants ti pour −L ≤ i ≤ M . Le segment [T 0 ; T ] contient
en effet une infinité de points et il n’est donc pas possible de calculer directement une approximation en chacun
de ses points. Par contre, si les intervalles [tn ; tn+1 ] sont « petits », alors connaître la solution en tn et en tn+1
permet aussi d’avoir une bonne approximation de la solution en t ∈ [tn ; tn+1 ] (par exemple u(t) ≈ u(tn ) ou via
une approximation linéaire).
Cette étape est la discrétisation de la solution (on remplace une fonction par un nombre fini d’évaluations).
La largeur de l’intervalle est le pas de temps hi = ti+1 − ti . Le pas de temps maximal, noté h pour tout
le chapitre, est la borne supérieure des hi : h = sup−L<i≤M . Une façon simple de procéder est d’adopter un
découpage régulier : il suffit de choisir un pas de temps constant h petit (généralement il suffit de le prendre entre
10− 2 et 10− 5) puis de poser ti = ih pour −L ≤ i ≤ M . On notera yn = y(tn ) la solution exacte à l’instant tn et
un son approximation.

Le principe de base des schémas pour les équations différentielles consiste à calculer la valeur à l’instant ti+1 ,
0 ≤ i ≤ M − 1, à l’aide des valeurs déjà connues en t0 , t1 , . . . ti (ou, dans le passé, à calculer la valeur en t−i−1
à l’aide des valeurs déjà connues ou calculées en t−i , . . . t0 ). Les schémas sont donc définis par une formule de
récurrence permettant de calculer le prochain pas dans le futur (ou dans le passé).
Lorsque le calcul de un+1 (respectivement à l’instant u−(n+1) ) n’utilise que la valeur de u à l’instant tn (respec-
tivement à l’instant t−n ), le schéma est dit à un pas. Plus généralement, un schéma à r pas exprime un+1 (respecti-
vement u−n−1 ) à l’aide des r valeurs précédentes en tn , tn−1 , . . . tn−r+1 (respectivement en t−n , t−n+1 , . . . t−n+r−1 ).
Nous présenterons surtout des méthodes à un pas dans ce chapitre et nous terminerons par un exemple de
méthode à pas multiples, les schémas d’Adams-Bashforth.
Par la suite afin de simplifier les écritures, nous supposerons que nous avons à résoudre la solution sur un
intervalle de temps de la forme [t0 ; T ] : nous n’écrirons que la formule permettant de calculer un+1 à partir de un .
Les schémas pour des instants dans le passé (t ≤ t0 ) peuvent être déduits par symétrie et les résultats théoriques
(en particulier la convergence) restent valables sous les mêmes hypothèses.

Pour approcher l’équation différentielle en ti+1 à l’aide des temps précédents, il faut donc être capable d’ap-
procher les dérivées en temps de y à l’aide de ces valeurs ponctuelles en t0 , . . . ti . Pour y parvenir on utilise des
développement limités de u aux points tk .
Ainsi la formule la plus simple est donnée par un développement limité à l’ordre 1 de y(t + h) à partir de y(t) :

y(t + h) = y(t) + hy 0 (t) + o(h) = y(t) + hf (t, y(t)) + o(h)

Cette formule fournit un schéma défini par la relation de récurrence suivante :

un+1 = u(tn+1 ) = u(tn + h) = un + hn f (tn , un ) (2.1.1)

Ce schéma est le schéma d’Euler explicite. C’est le schéma à un pas le plus simple pour discréditer une EDO ;
nous montrerons par la suite qu’il est convergent.
De façon générale, un schéma à un pas peut s’écrire :

un+1 = u(tn+1 ) = G(tn , hn , un , un+1 ) = un + hn F(tn , hn , un , un+1 ), (2.1.2)

avec F une fonction qui approxime l’intégrale entre tn et tn+1 de f (t, y). Si F ne dépend pas de un+1 , le schéma
est dit explicite ; F ne dépend pas de un , le schéma est dit implicite ; enfin F dépend effectivement de un et un+1

66
2.2. CONVERGENCE DES SCHÉMAS À UN PAS

le schéma est semi-implicite.


Notons que si F dépend de un+1 , le schéma fournit une équation en un+1 qu’il faut résoudre pour obtenir la valeur
numérique de un+1 . Un exemple sera donné au paragraphe 2.4.1.
Cette interprétation des schémas à partir des développement limités permet d’en construire directement de façon
explicite. Il existe d’autres interprétations : l’écriture d’un schéma peut aussi s’interpréter comme la projection
sur un espace de fonction localement polynomiale. En effet, en substituant à y son développement limité sur le
segment [ti ; ti+1 ], on approxime y par un polynôme. Une autre façon d’introduire les schémas consiste à remarquer
que la solution analytique y vérifie :
Z t
y(t) = y0 + f (s, y(s))ds
t0

Approcher u(ti + 1) devient possible dès lors que l’on sait approcher l’intégrale à l’aide des valeurs (approchées)
de u aux instants t0 , t1 , . . . ti .

2.2 Convergence des schémas à un pas


Pour notre schéma, la convergence se définit comme le fait que un = u(tn ) tend vers y(tn ) lorsque h → 0. D’un
point de vue numérique, cela implique que pour h assez petit il est possible de calculer avec précision une solution
numérique approchée.

Définition 2.2.1 (Erreur locale): On appelle erreur locale à l’instant tn la quantité en = y(tn ) − u(tn ) = yn − un .
C’est l’erreur commise par le schéma à la n-ième étape.

Définition 2.2.2 (Convergence): Le schéma est dit convergent si, pour u0 → y0 = y(t0 ) :
 
lim max |en | = 0.
h→0 0≤n≤M

L’erreur commise par un schéma provient de deux origines différentes. Tout d’abord, même si à l’instant tn−1
la solution approchée un−1 était exacte, le schéma commettrai une erreur pour calculer la valeur à l’instant tn
puisqu’il ferait une approximation des fonctions par des développement limités tronqués (donc par des polynômes).
Cette erreur, commise à chaque pas de temps, est appelée erreur de consistance.
A cela, vient s’ajouter le fait que la valeur de un−1 est elle-même approchée ; le schéma va donc propager cette
erreur. Il est important qu’il ne démultiplie pas cette erreur déjà commise. C’est la notion de stabilité qui assure
que la propagation d’une petite erreur à l’étape n − 1 ne donne pas de grande erreur à l’étape n : un schéma stable
n’amplifiera pas les erreurs.
Finalement l’erreur totale σn à l’instant n est la somme de ces deux erreurs : la façon dont le schéma propage
l’erreur déjà commise à l’étape σn−1 plus l’erreur commise pour calculer un à partir de un−1 . Si le schéma est
stable et qu’il ne commet qu’une petite erreur de consistance, alors nous montrerons qu’il est convergent. C’est
un résultat assez classique en mathématiques que l’on retrouvera pour les schémas des équations aux dérivées
partielles (EDPs) : consistance et stabilité impliquent souvent une convergence.

2.2.1 Consistance
Définition 2.2.3 (Erreur de consistance): On appelle erreur de consistance locale de la méthode (2.1.2) (ou erreur
de troncature locale) l’instant tn+1 (n > 0),

εn = ε(tn+1 , hn ) = yn+1 − G tn , hn , y(tn ), y(tn+1 )
h i (2.2.1)
= yn+1 − y(tn ) + hn F tn , hn , y(tn ), y(tn+1 )

C’est la différence entre la solution exacte à l’instant tn+1 et la solution approchée à l’instant tn+1 calculée par le
schéma à partir de la valeur exacte yn . En effet cette solution approchée est donnée par G tn , hn , y(tn ), y(tn + 1) .
Cette quantité est donc l’erreur commise par une étape du schéma à partir de la valeur exacte à l’instant tn .

Exemple 2.2.1 (Schéma d’Euler explicite). Remarquons que les dérivées en temps de y s’expriment à

67
CHAPITRE 2. SCHÉMAS POUR LES EDOS

12 solution exacte
solution approchée
10 en = y(tn ) − un

0
0 0.2 0.4 0.6 0.8 1
Figure 2.1 – Erreur d’approximation, erreur locale et propagation des erreurs. La barre bleue représente la
propagation de l’erreur entre l’étape (n − 1) et n et la barre rouge l’erreur de consistance.

partir de f puisque c’est une solution de l’équation différentielle :


d
y(tn ) = f (tn , yn )
dt

d2
y(tn ) = ∂1 f (tn , yn ) + ∂2 f (t, yn ) f (tn , yn ) =: f [1] (tn , yn )

dt2

A l’aide d’un développement limité à l’ordre 1 de y(tn+1 = tn + hn ), on obtient :

yn+1 = yn + hn f (tn , yn ) + h2n f [1] (tn , yn ) + o(h2n )

Puis en injectant dans le calcul de εn :


 
εn = yn+1 − y(tn ) + hn F(tn , y(tn ), hn )
= yn + hn f (tn , yn ) + h2n f [1] (tn , yn ) + o(h2n ) − un + hn f (tn , un )
  

= h2n (f [1] (tn , yn ) + o(1))

L’erreur de consistance locale est due à la construction d’un seul pas du schéma. L’erreur locale de la méthode
à l’instant t = tn+1 est due à l’erreur
 de consistance locale à l’instant t = tn et à la propagation de tn à tn+1 de
l’erreur cumulée. Notons vn = y(tn ) + hn F(tn , y(tn ), hn ) la solution approchée construite à partir de la valeur
exacte de y à l’instant tn . On peut écrire :

en+1 (h) = yn+1 − un+1 = εn + v n+1 − un+1 ,




L’erreur totale en n’est P


pas égale à εn , mais sous les hypothèses convenables, on peut espérer que en soit du même
n
ordre de grandeur que 0 |εn |. C’est cette idée qui donne lieu à la définition suivante.

Définition 2.2.4 (Consistance): On dit qu’une méthode est consistante (avec l’équation différentielle) si :
X
lim , |εn | = 0. (2.2.2)
h→0
0≤n<M

68
2.2. CONVERGENCE DES SCHÉMAS À UN PAS

Remarque. : Une condition suffisante pour que la méthode soit consistante est qu’elle vérifie :
ε(t , h )
n n
lim , max = 0.
h→0 0≤n<M hn
En effet comme les pas de temps hn sont non nuls et que la somme des pas de temps est égale à T , on peut écrire :
X X εn
|ε(tn , hn )| = hn | |
hn
0≤n<M 0≤n<M
ε X
n
= max hn
0≤n<M hn
ε
n
= T max
0≤n<M hn

Théorème 2.2.1 (Un première critère de consistance). La méthode à un pas (2.1.2) définie par la fonction F est
consistante si et seulement si
∀(t, x) ∈ [t0 ; t0 + T ] × R, F(t, 0, x, x) = f (t, x) (2.2.3)
Commençons par rappeler la définition de l’intégrale de Riemann avant de démontrer ce résultat.
Rappel (Somme de Riemann). Soit g une fonction continue sur [t0 , T ]. Avec le découpage de [t0 ; T ] déjà introduit,
on peut approcher l’intégrale de g. C’est en effet un résultat fondateur pour définir simplement une intégrale :
Z T X
g(t)dt = lim hn g(tn )
t0 h→0
n

Preuve du théorème.
Le théorème des accroissements finis fournit l’existence d’une constante cn ∈ [tn ; tn+1 ] telle que
y(tn+1 ) − y(tn ) = hn φ0n (cn ) = hn f (cn , y(cn )),

en injectant dans l’erreur de consistance, on obtient :


h i
εn = hn f (cn , y(cn )) − F tn , hn , y(tn ), y(tn+1 )
 
= hn αn + βn

avec

αn = f (cn , y(cn )) − F cn , 0, y(cn ), y(cn )
 
βn = F cn , 0, y(cn ), y(cn ) − F tn , hn , y(tn ), y(tn+1 )

Comme la fonction t, h 7→ F t, h, y(t), y(t + h) est continue sur le compact [t0 , t0 + T ] × [0, δ], elle y est
uniformément continue. Dès lors pour tout  > 0, il existe η > 0 (et inférieur à δ) tel que pour h = max(hn ) < η
on ait |cn − tn | ≤ hn ≤ η et |βn | < . Sous cette hypothèse h < η, on obtient :
M −1 M −1 M −1 M −1
X X X X
|en | − hn |αn | ≤ hn |βn | ≤  hn = T .


0 0 0 0

D’où, en reconnaissant une somme de Riemann :


M
X −1 M
X −1
lim |εn | = lim hn |αn |
h→0 h→0
0 0
Z T 
= f (t, y(t)) − F t, 0, y(t), y(t) dt

t0

Cette égalité fournit le critère annoncé.

2.2.2 Stabilité

69
CHAPITRE 2. SCHÉMAS POUR LES EDOS

Définition 2.2.5 (Stabilité): La méthode (2.1.2) est dite stable sur l’intervalle [t0 , t0 + T ] s’il existe une constante
S > 0 telle que, pour toute suite vn définie par

vn+1 = vn + hn F(tn , hn , vn , vn+1 ) + ρn , (2.2.4)

avec ρn quelconque, on ait

M
X
max |vn − un | < S(|v0 − u0 | + |ρn |. (2.2.5)
0≤n≤M
n=1

La constante S est appelée constante de stabilité.

Une méthode est donc stable si une petite perturbation initiale ρ0 = u0 − v0 , et de petites perturbations ρn
dans le calcul des un pour n ≥ 1 provoquent une erreur finale max|un − yn | contrôlable. Remarquons néanmoins
que la constante S peut être très grande.

Théorème 2.2.2 (Un critère de stabilité). Supposons le schéma explicite, c’est à dire que le schéma ne dépend
pas de un+1 : 
un+1 = un + hn F tn , hn , un
On a alors le résultat suivant : S’il existe H > 0 et Λ > 0 tels que, pour tout t ∈ [t0 , t0 +T ], et pour tout (u, v) ∈ R2 ,

|F(t, h, v) − F(t, h, w)| ≤ Λ|v − w| ∀h ≤ H, (2.2.6)

alors la méthode (2.1.2) est stable sur l’intervalle [t0 , t0 + T ]. Dans ce cas, on peut prendre comme constante de
stabilité S = eΛT .

Il suffit donc, pour que la méthode soit stable sur l’intervalle [t0 , t0 + T ], que la fonction F soit lipschitzienne
par rapport à y sur cet intervalle, au moins pour tout h assez petit.
Lorsque f est lipschitzienne par rapport à y, la méthode d’Euler explicite est stable. C’est en particulier le cas
lorsque f est de classe C 1 et à dérivée en x bornée indépendamment de t.
Remarque. Pour étudier la stabilité d’un schéma implicite, il faut d’abord "expliciter le schéma" : pour cela, il faut
résoudre l’équation en un+1 . Cela dépend donc de l’équation différentielle de départ et est à refaire à chaque fois.
Ensuite, il est possible de ré-écrire le schéma sous forme explicite et d’appliquer le critère de stabilité à ce nouveau
schéma.

Pour démontrer le dernier théorème, il faut d’abord introduire le lemme suivant :

Lemme 2.2.3 (Lemme de Gronwall discret). Considérons deux suites réelles positives (θn ), (hn ) et une suite réelle
(ρn ) telles que pour tout n ≥ 0
θn+1 ≤ (1 + λhn )θn + |ρn+1 |,
où hn et λ sont deux nombres réels positifs. Soit t0 ≥ 0, on peut montrer que pour tout n > 0, si tn+1 = tn + hn
on a :
n−1
X
θn ≤ exp (λ(tn − t0 ))θ0 + exp (λ(tn − ti+1 )) |ρi+1 |.
i=0

La démonstration de ce lemme se fait par récurrence en remarquant que 1 + µ ≤ eµ pour tout µ ≥ 0.

Démonstration. Preuve du théorème 2.2.2 Avec les notations de la définition de la stabilité, on obtient par diffé-
renciation :

|vn+1 − un+1 | ≤ |vn − un | + hn Λ|vn − un | + |ρn |

En posant θn = |vn − un | cela se réécrit

θn+1 ≤ (1 + Λhn )θn |ρn |

Le lemme de Gronwall discret permet alors de conclure.

70
2.3. VITESSE DE CONVERGENCE ET ORDRE D’UN SCHÉMA

2.2.3 Convergence
Nous allons maintenant montrer qu’un schéma stable et consistant est convergent.

Calcul de l’erreur globale. Par définition de l’erreur de consistance (2.2.1), yn+1 vérifie l’égalité suivante :

yn+1 = yn + hn F(tn , hn , yn , yn+1 ) + εn .

Si la méthode est stable de constante S, il est dès lors possible d’appliquer l’inégalité (2.2.5) pour ρn = εn , vn = yn .
Cela fournit une majoration de l’erreur globale :
M
X
max |en | = max |yn+1 − un+1 | ≤ S(|y0 − u0 | + |εn |. (2.2.7)
0≤n≤M 0≤n≤M
n=1

Si la méthode est consistante, on en déduit immédiatement que l’erreur globale tend vers 0 pour u0 → y0 et
h → 0.
Théorème 2.2.4. Si la méthode est stable et consistante, elle est convergente.

2.3 Vitesse de convergence et ordre d’un schéma


Nous venons de montrer qu’un schéma PMstable et consistant est convergent. De plus lorsque on prend u0 = y0 ,
l’erreur décroît au moins aussi vite que n=1 |εn |. C’est encore le cas lorsque u0 est la représentation informatique
de y0 car alors la quantité |y0 − u0 | reste négligeable.
Cela ne suffit pas à savoir comment l’erreur varie avec h ni comment choisir cette quantité h. Le but de cette
section est d’obtenir une estimation plus précise de l’erreur en fonction de h. Cela va s’appuyer sur la notion
d’ordre qui généralise la notion de consistance.

Définition 2.3.1 (Ordre): On dit que la méthode est d’ordre supérieur ou égal à p si il existe deux constantes C et
H0 telles que pour tout entier n entre 0 et M − 1 :

∀hn < H0 , |εn | ≤ Chp+1


n . (2.3.1)

Autrement dit l’erreur de consistance est en O(hp+1n ). Attention, la puissance de h est bien (p + 1). La méthode est
dite d’ordre (exactement) p si elle est d’ordre p mais pas d’ordre (p + 1).

Ce décalage (p + 1 au lieu de p) permet d’avoir une erreur globale proportionnelle à p. En effet, la somme des
erreurs de consistance vérifie alors, comme hn ≤ h :
M
X M
X M
X M
X
|εn | ≤ Chp+1
n ≤ (Chp )hn ≤ Chp hn = CT hp
n=1 n=1 n=1 n=1

Théorème 2.3.1 (Majoration de l’erreur globale). Si la méthode (2.1.2) est stable de constante S et d’ordre p,
alors il existe une constante C > 0 telle que :

max |en | = max |yn+1 − un+1 | ≤ S(|y0 − u0 | + CT hp ). (2.3.2)


0≤n≤M 0≤n≤M

Il reste à obtenir un critère pratique pour calculer l’ordre d’une méthode.


Proposition 2.3.2. Supposons que f et F soient de classe C p . Alors y est de classe C p+1 et comme y 0 (t) =
f (t, y(t)), les dérivées de y s’expriment à l’aide des dérivées partielles de f . Soit f [k] cette expression. Pour
les premiers termes on calcule f [0] (t, y) = f (t, y), f [1] (t, y) = ∂t f (t, y) + (∂y f )(t, y)f (t, y) puis on a f [k+1] =
∂t f [k] + (∂y f [k] )f .
Alors la méthode (2.1.2) est d’ordre p si et seulement :

∂lF 1 dl f [ l]
l
(t, h = 0, x, x) = (t, x), (2.3.3)
∂h l + 1 dtl
pour tout entier l ∈ J0; p − 1K.

71
CHAPITRE 2. SCHÉMAS POUR LES EDOS

Exemple 2.3.1. Lorsque f est de classe C 1 , la méthode d’Euler explicite est d’ordre 1. En effet, on a
montré à l’exemple 2.2.1 que l’erreur de consistance est alors un O(h2n ).

Mis bout à bout avec le théorème 2.2.1 on en déduit le résultat suivant.


Corollaire. Lorsque f est de classe C 1 , une méthode est consistante si et seulement si elle est d’ordre supérieur
ou égal à 1.
Les méthodes d’ordres élevés permettent généralement de prendre des valeurs de h plus grandes pour une même
précision de calcul souhaitée, puisque hn décroît de plus en plus vite lorsque n augmente (pour h < 1). Sur une
méthode d’ordre 1 (exactement), il faut diviser par 100 le pas pour diviser d’autant l’erreur, sur une méthode
d’ordre 2 il suffit de diviser le pas par 10.

2.4 D’autres méthodes numériques


Nous allons introduire ici d’autres méthodes numériques. Ces méthodes sont basées sur des développements
limités ou bien sur la formule Z t
y(t) = y0 + f (s, y(s))ds
t0

où l’on va approcher f (s, y(s)) par une constante (ou par une fonction polynomiale), ce qui permet de calculer « à
la main » l’intégrale.

2.4.1 Méthode d’Euler implicite


Cette méthode est basée sur un développement limité de y en tn à partir de la valeur en tn+1 :

y(t) = y(t + h) − hy 0 (t + h) + o(h) = y(t) + hf (t, y(t)) + o(h)

Cette formule fournit le schéma.

Définition 2.4.1: Le shéma d’Euler implicite est défini par l’équation suivante :

un+1 = u(tn+1 ) = u(tn + h) = un + hn f (tn , un+1 ) (2.4.1)

Remarquons
 que l’inconnue un+1 apparaît des 2 côtés de l’égalité. Il faut donc résoudre l’équation en z :
z − un + hn f (tn , z) = 0 pour trouver un+1 . Lorsque f est simple (par exemple f = ax) on peut le faire
explicitement. Notons qu’en dimension n, même pour f : x 7→ Ax il faut résoudre un problème de la forme Bx = c
ce qui peut être coûteux. Pour f plus complexe, il faut résoudre cette équation à l’aide d’un algorithme dédié, ce
qui peut être compliqué et/ou coûteux.
Proposition 2.4.1. La méthode d’Euler implicite est stable et d’ordre 1 (exactement).

Exemple 2.4.1. Soit f : y 7→ ay.


Le schéma d’Euler implicite s’obtient par résolution de un+1 = un + (hn aun+1 ), on trouve donc (1 +
ahn )un+1 = un . Si a 6= 0, alors pour h assez petit, on a 1 + ahn > 1 − |a|h > 0 et on peut donc diviser pour
trouver un+1 = un /(1 + ahn ).

2.4.2 Schéma de Crank-Nicolson


Ce schéma est obtenu en faisant la « moyenne » des schémas d’Euler explicite et implicite.

Définition 2.4.2: Le shéma de Crank-Nicolson est défini par l’équation suivante :


1  1  hn  
un+1 = un + hn f (tn , un ) + un + hn f (tn , un+1 ) = un + f (tn , un ) + f (tn , un+1 ) (2.4.2)
2 2 2
A nouveau la valeur recherchée un+1 est obtenue par résolution d’une équation.

72
2.4. D’AUTRES MÉTHODES NUMÉRIQUES

Proposition 2.4.2. Pour f de classe C 2 , la méthode de Crank-Nicolson est stable et d’ordre 2 (exactement).

2.4.3 Méthode du point du milieu


Définition 2.4.3: Si l’on choisit maintenant d’approcher y(t) = f (t, y(t)) au point tn+1/2 = (tn+1 + tn )/2 (point du
milieu), on obtient le schéma suivant :
un+1 = un + hf (tn+1/2 , un+1/2 ), n = 0, . . . , Nh − 1.
La valeur un+1/2 n’étant pas connue, on peut l’approcher par le schéma d’Euler explicite précédemment introduit, ce
qui donne :
h
un+ 21 = un + f (tn , un ), n = 0, . . . , Nh − 1.
2
La méthode ainsi obtenue est appelée méthode du point du milieu.

Proposition 2.4.3. Pour f de classe C 2 , la méthode du point du milieu est stable et d’ordre 2 (exactement).

2.4.4 Schéma de Heun


Cette méthode est un peu plus complexe.

Définition 2.4.4: Cette méthode s’appuie sur les deux développements limités suivants :
 
y(tn+1 ) = y(tn ) + hn f tn , y(tn ) + o(hn )
 
y(tn+1 ) = y(tn ) + hn f tn+1 , y(tn + 1) + o(hn )
On commence par calculer une première approximation un+1,1 de yn+1 à l’aide du schéma d’Euler explicite :
un+1,1 = un + hn f (tn , un ) (2.4.3)

Puis on s’en sert pour approcher la dérivée y 0 (tn+1 ) = f tn+1 , y(tn+1 ) par f (tn+1 , un+1
 
1 ) dans le second développement
tronqué :

hn  
un+1 = un + f (tn , un ) + f (tn+1 , un+1,1 ) (2.4.4)
2
Ici il n’y a pas d’équation à résoudre (comme pour les schémas d’Euler implicite et de Crank-Nicolson) puisque l’on
connait explicitement un+1
1 .

2.4.5 Méthode de Runge-Kutta 4


Il s’agit d’une méthode plus élaborée ; nous n’expliquerons pas ici comment elle a été obtenue. Nous nous
contenterons de donner le schéma et d’indiquer quelques-unes de ces propriétés.

Définition 2.4.5: RK4 Ce schéma fait intervenir quatre approximations intermédiaires de y en tn + hn /2 et en tn+1 :


 pn,1 = f (tn , un )
tn,2 = tn + h2n





un,2 = un + h2n pn,1




 (≈ y(tn,2 ))
p f , u


 n,2
 = (t n,2 n,2 )
un,3 = un + h2n pn,2 (≈ y(tn,2 )) (2.4.5)

p = f (t , u )

n,3 n,2 n,3







 t n+1 = tn + h n




 un,4 = un + hn pn,3 (≈ y(tn+1 ))
pn,4 = f (tn+1 , un,4 )

On écrit ensuite F comme un barycentre des pn,i :


p 2pn,2 2pn,3 pn,4 
n,1
un+1 = un + hn + + + (2.4.6)
6 6 6 6

73
CHAPITRE 2. SCHÉMAS POUR LES EDOS

Proposition 2.4.4. Le schéma de RK4 est d’ordre 4, c’est pourquoi on l’appelle Runge-Kutta d’ordre 4.

Proposition 2.4.5. Si f : t, y 7→ f (t, y) est lipschitzienne par rapport à la variable y, alors la méthode RK4 est
stable.

Ce schéma est donc convergent.

2.5 Mise en pratique et comportement numérique


2.5.1 Erreur d’approximation
L’erreur globale dépend de la constante de stabilité, de la majoration de l’erreur de consistance et du temps
final. Certes, l’inégalité de Taylor-Lagrange permet de calculer une majoration de l’erreur de consistance du type
T kf [k] k/n! lorsque f [k] est bornée. Mais en pratique, calculer cette borne ainsi que la constante de stabilité peut
s’avérer complexe et l’estimer par ordinateur peut rester fort coûteux (en temps de calcul). Aussi, il est nécessaire
d’avoir des critères pratiques simples et efficaces pour estimer la convergence de la solution approchée.
En général, on procède de la façon suivante : on choisit un pas fixe, ie h = hn et on calcule une approximation unh
de y pour différentes valeurs de h (par exemple h = 1/50, 1/100, 1/500, 1/1000, . . . soit pour M = 50, 100, 500, 1000,
etc). Soit hm la plus grande valeur de h testée. Si les dernières approximations obtenues pour h > seuil sont très
proches de la solution, alors :
— Pour h > seuil, on a uh ≈ y ≈ uhm donc en particulier max|uh − uhm | < .
— Pour tout h testé, l’erreur globale vérifie max|uh − y| ≈ max|uh − uhm | ≈ hn .
Cela donne donc les critères suivants : on fixe  > 0 et sur les plus petites valeurs de h testées, la solution
approchée doit varier de moins que . De plus si l’on trace la valeur maximale de |uh − uhm | en fonction de 1/h
ou du nombre de points utilisés pour approcher u(T ), on doit obtenir une courbe encadrée par l’axe des abscisses
et une autre courbe de la forme 1/hp où p est l’ordre de la méthode. On le vérifie en adoptant en ordonnée une
échelle logarithmique. Le logarithme de l’erreur doit alors se comporter au pire comme une droite de pente −p
avec p l’ordre de la méthode. Cette erreur approchée doit de plus être négligeable à l’extrémité du graphe.
Notons que certains schémas plus élaborés fournissent des estimations rigoureuses d’erreur ad hoc.

2.5.2 Instabilité numérique


A l’aide d’exemples, ce paragraphe se propose de présenter les difficultés qui peuvent apparaître lors de la mise
en pratique des schémas numériques.

2.5.2.a Problème « numériquement mal posé »

Exemple 2.5.1. On considère l’équation y 0 = 3(y − t) pour la donnée initiale y(0) = 1/3. On s’intéresse
au calcul numérique de la solution sur l’intervalle [0; 10].
1. Le théorème de Cauchy-Lipschitz s’applique et il y a unicité de la solution (et ce pour toute donnée
initiale).
2. La solution exacte est y : t 7→ t + 1/3.
3. Comme 1/3 est un nombre non décimal (il ne peut être représenté avec un nombre fini de décimales),
l’ordinateur va faire une erreur d’arrondi pour la donnée initiale et va initialiser le schéma à une
valeur égale à 1/3 + .
4. Pour la donnée initiale 1/3 + , la solution exacte est y : t 7→ t + 1/3 + e3t .
5. A t = 10, on calcule |y − y|(10) = ||e30 ≈ 1013 .
Si l’erreur d’arrondi n’est pas assez faible alors la valeur calculée par ordinateur sera une mauvaise ap-
proximation et ce, quelque soit le pas de temps. Par exemple pour || > 10−11 , l’erreur finale est de l’ordre
de 10%. Pour des calculs en simple précision, les erreurs d’arrondi peuvent atteindre 10−8 et le calcul ne
sera pas assez précis. En double précision, l’erreur d’arrondi sera au plus de l’ordre de 10− 16 et la valeur
approchée pourra donc être satisfaisante.

74
2.6. SCHÉMA D’ADAMS-BASHFORTH D’ORDRE 2

2.5.2.b Instabilité numérique

Exemple 2.5.2. On considère cette fois-ci le problème :


(
y 0 = −150y + 30
(E1)
y(0) = 51

A nouveau le théorème de Cauchy-Lipschitz s’applique et il y a unicité de la solution théorique pour toute


donnée initiale. Ici, la solution exacte est y(t) = 1/5 (il s’agit en effet d’un point stationnaire).
Pour une donnée initiale perturbée y (0) = 1/5 + , on calcule, comme solution de l’équation différentielle,
y (t) = (1/5) + e−150t . Pour les temps positifs, une erreur d’approximation sur la donnée initiale n’est pas
amplifiée. Au contraire elle décroît de façon exponentielle : |y(t) − y (t)| = e−150t décroît très vite.
Calculons l’approximation yn fournie par le schéma d’Euler explicite à partir de la donnée initiale « arron-
die » à y (0) = 1/5 +  et pour un pas d’espace hn = h constant :

un+1 = un + h(−150un + 30) = (1 − 150h)un + 30h


1 1
or = (1 − 150h) + 30h
5 5
1 1
un+1 − = (1 − 150h)(un − )
5 5
1 1
d’où un − = (1 − 150h) u0 − ) = (1 − 150h)n 
n
5 5
Pour que un ne diverge pas vers +∞ il faut prendre h tel que |1 − 150h| < 1, ie h < 1/75. Ici, le schéma
reste bien convergent (pour h → 0 l’erreur numérique est bien négligeable et seulement due à l’erreur finale
d’arrondi). Toutefois, au-dessus d’une certaine valeur de h les solutions calculées sont très loin de la solution
exacte et dès que l’on franchit le seuil h < 1/75 les calculs numériques fournissent une excellente solution
approchée puisqu’alors l’erreur est inférieure à (1 − 150h)n || < || qui est négligeable.

Exercice : Refaire les calculs pour un schéma d’Euler implicite et de un schéma de Crank-Nicolson.

Ce phénomène est appelé « instabilité numérique ». En général les phénomènes de cette sorte sont très visuels :
lorsque l’on trace le graphe de la solution numérique, celle-ci voit sa valeur absolue (sa norme en dimension
supérieure à 1) exploser. De façon générale, lorsque la solution calculée commence à exploser il faut s’assurer que
cela n’est pas dû à une instabilité mais reflète bien le comportement de la solution théorique.
Pour cela, il faut commencer par diminuer le pas de temps. Si cela suffit à changer qualitativement le com-
portement de la solution approchée, alors il s’agissait bien d’une instabilité numérique. Si cela ne suffit toujours
pas (parfois il faudrait prendre un pas de temps bien trop petit), il faut alors changer de schéma. En général, les
schémas les moins sensibles à ces problèmes sont les schémas d’Euler implicite et de Crank-Nicolson. Pensez à les
essayer tous les deux dans ces situations.

2.6 Un exemple de schéma à pas multiples : les schémas d’Adams-


Bashforth

La méthode d’Adams-Bashforth à 2 pas (en abrégé AB2) utilise les valeurs un et un−1 pour calculer le pas
suivant un+1 .
Cette méthode s’obtient en approximantt 7→ f (t, y(t)) sur le segment [tn ; tn+1 ] par la droite passant par les
points tn−1 , f (tn−1 , un−1 ) et tn , f (tn , un ) :

t − tn  
f (t, y(t)) ≈ f (tn , un ) + f (tn , un ) − f (tn−1 , un−1 ) ,
tn − tn−1
t − tn  
≈ f (tn , un ) + f (tn , un ) − f (tn−1 , un−1 ) ,
hn−1

75
CHAPITRE 2. SCHÉMAS POUR LES EDOS

d’où
tn+1
(tn+1 − tn )2 
Z

f (t, y(t))dt ≈ (tn+1 − tn )f (tn , un ) + f (tn , un ) − f (tn−1 , un−1 ) ,
tn 2hn−1
2 
(hn ) 
≈ hn f (tn , un ) + f (tn , un ) − f (tn−1 , un−1 ) .
2hn−1

Enfin, on injecte cette approximation dans l’égalité


Z tn+1
yn+1 = yn + f (t, y(t))dt
tn

Définition 2.6.1 (Méthode d’Adams-Bashforth à 2 pas): C’est une méthode à 2 pas définie par la récurrence
suivante :  h i
un+1 = un + hn fn + 2hhn−1


n
fn − fn−1
tn+1 = tn + hn (2.6.1)


f = f (t ,u )
n+1 n+1 n+1

où l’on a initialisé la suite fn par f0 = f (t0 ; u0 ) et f1 = f (t1 , u1 ).


Dans le cas où le pas est constant (hn = h, ∀n), cette formule se factorise sous la forme suivante :
(
un+1 = yn + h 32 fn − 21 fn−1

(2.6.2)
fn+1 = f (tn+1 , yn+1 )

Lorsque c’est possible, il faut privilégier cette écriture car sa complexité est légèrement meilleure et elle diminue un peu
les erreurs d’arrondi.

Nous venons de voir que cette méthode nécessite de connaître les deux précédentes valeurs de u pour calculer
la suivante. Aussi, il faut calculer u1 à l’aide d’une autre méthode puis utiliser AB2 pour le calcul de u2 et des
valeurs suivantes. Pour le calcul de u1 , on utilisera de préférence un schéma d’ordre 2 comme la méthode de Heun ;
à défaut, on se rabattra sur le schéma d’Euler explicite.
Remarque. Il s’agit ici d’un des schémas d’Adams-Bashforth. Il existe un schéma similaire à 4 pas appelé AB4 et
d’ordre 4 ainsi que des variantes adaptées à certains problèmes raides ou pour certaines applications spécifiques
(par exemple pour les méthodes spectrales).
On peut définir l’erreur de consistance de la même façon que pour un schéma à un pas. Ensuite, on définit la
notion de consistance puis celle de stabilité de la même façon que pour un schéma à un pas. Ce qui change, ce
sont les critères et les caractérisations : ainsi, le critère de stabilité pour un schéma à un pas n’est plus valable. A
nouveau, ces notions permettent d’obtenir la convergence.
Théorème 2.6.1. Un schéma à pas multiple qui est stable et consistant est convergent.

Proposition 2.6.2. Le schéma « AB2 » est consistant et d’ordre 2.

Proposition 2.6.3. Le schéma « AB2 » est stable.


Ce schéma à l’avantage de ne nécessité qu’une évaluation de f par itération et donc peu de calcul, tout en
restant d’ordre 2.

2.7 Conclusion
— convergence = stabilité + consistance = stabilité + (ordre ≥ 1)
— A précision fixée, augmenter l’ordre permet de prendre un pas de temps plus grand donc de calculer moins
de valeurs de u. Par contre, augmenter l’ordre augmente le coût (en temps de calcul) de chaque étape car
les formules sont plus complexes pour calculer un+1 . Il faut trouver un bon compromis. En pratique, l’ordre
2 est plus intéressant que l’ordre 1 pour les problèmes non triviaux.
— Les schémas implicites (ex : Euler implicite) ou semi-implicites (ex : méthode de Crank-Nicolson) permettent
d’éviter ou de limiter les instabilités numériques.

76

Vous aimerez peut-être aussi