210
7 Equations différentielles ordinaires
où on a utilisé la notation f n = f(t n , u n ). Cette méthode est obtenue en considérant l’équation différentielle (7.5) en chaque noeud t n ,
n = 1, . . . , N h et en remplaçant la dérivée exacte y
(t n ) par le taux d’accroissement (4.4).
De même, en utilisant le taux d’accroissement (4.8) pour approcher
y
(t n+1 ), on obtient la méthode d’Euler implicite (ou rétrograde, de l’anglais backward)
u n+1 = u n + hf n+1 ,
n= 0, . . ., N h − 1
(7.7)
Ces deux méthodes sont dites à un pas : pour calculer la solution
numérique u n+1 au noeud t n+1 , on a seulement besoin des informations
disponibles au noeud précédent t n .
Plus précisément, pour la méthode d’Euler progressive, u n+1 ne dépend que de la valeur u n calculée précédemment, tandis que pour la
méthode d’Euler rétrograde, u n+1 dépend aussi “de lui-même” à travers
la valeur de f n+1 . C’est pour cette raison que la méthode d’Euler progressive est dite explicite tandis que la méthode d’Euler rétrograde est
dite implicite.
Par exemple, la discrétisation de (7.2) par la méthode d’Euler explicite implique à chaque pas de temps le simple calcul de
u n+1 = u n + hCu n (1 − u n /B) ,
tandis qu’avec la méthode d’Euler implicite on doit résoudre l’équation
non linéaire
u n+1 = u n + hCu n+1 (1 − u n+1 /B) .
Les méthodes implicites sont plus coûteuses que les méthodes explicites
car, si la fonction f de (7.5) est non linéaire, un problème non linéaire doit
être résolu à chaque temps t n+1 pour calculer u n+1 . Néanmoins, nous
verrons que les méthodes implicites jouissent de meilleures propriétés de
stabilité que les méthodes explicites.
La méthode d’Euler explicite est implémentée dans le Programme 7.1 ;
l’intervalle d’intégration est tspan = [t0,tfinal], odefun est une chaîne (ou une fonction inline, ou une fonction anonyme) qui contient la
fonction f(t, y(t)) dépendant des variables t et y, ou une fonction inline
dont les deux premiers arguments jouent le rôle de t et y.
Précédent

- 221/374

Suivant