216
7 Equations différentielles ordinaires
Les erreurs commises au point t = 1 sont stockées dans les variables fe (Euler
explicite) et be (Euler implicite), respectivement. On applique alors la formule
(1.12) pour estimer l’ordre de convergence. Avec les commandes suivantes :
p = log ( abs ( fe (1: end -1)./ fe (2: end )))/ log (2); p (1:2: end )
1.2898 1.0349 1.0080 1.0019 1.0005
p = log ( abs ( be (1: end -1)./ be (2: end )))/ log (2); p (1:2: end )
0.9070
0.9720
0.9925
0.9981
0.9995
on peut vérifier que les deux méthodes convergent à l’ordre 1.
Remarque 7.2 (Effet des erreurs d’arrondi) L’estimation d’erreur (7.13)
a été obtenue en supposant la solution numérique {un} calculée en arithmétique exacte. Si on prenait en compte les (inévitables) erreurs d’arrondi, l’erreur pourrait exploser en 1/h quand h tend vers 0 (voir par exemple [Atk89]).
Ceci suggère qu’en pratique, il n’est pas raisonnable de considérer des valeurs
de h inférieures à un certain seuil h
∗ (évidemment très petit).
Voir les Exercices 7.1–7.3.
7.4 Méthode de Crank-Nicolson
En combinant les itérations des méthodes d’Euler implicite et explicite,
on trouve la méthode de Crank-Nicolson
u n+1 = u n +
h
2
[f n + f n+1 ], n = 0, . . . , N h − 1
(7.17)
Une autre manière de l’obtenir consiste à appliquer le théorème fondamental de l’intégration (voir Section 1.5.3) au problème de Cauchy (7.5),
y n+1 = y n +
tn+1
tn
f(t, y(t)) dt,
(7.18)
puis à approcher l’intégrale sur [t n , t n+1 ] avec la formule du trapèze
(4.19).
L’erreur de troncature locale de la méthode de Crank-Nicolson satisfait
τ n (h) =
1
h
[y(t n ) − y(t n−1 )] −
1
2
[f(t n , y(t n )) + f(t n−1 , y(t n−1 ))]
=
1
h
tn
tn−1
f(t, y(t)) dt −
1
2
[f(t n , y(t n )) + f(t n−1 , y(t n−1 ))] .
Précédent

- 227/374

Suivant