7.3 Méthodes d’Euler
215
où η n appartient à l’intervalle dont les extrémités sont y n−1 et u n−1 ,
ainsi |u
∗
n − u n | ≤ |e n−1 |, dès lors qu’on a l’inégalité
0 < h < 2/ max
t∈[t0,T ]
∂f
∂y
(t, y(t))
(7.15)
On en déduit |e n | ≤ |y n − u
∗
n | + |e n−1 | ≤ nhτ (h) + |e 0 |, et donc (7.14)
grâce à (7.11) et au fait que e 0 = 0. La restriction (7.15) sur le pas de
discrétisation h est une condition de stabilité, comme on le verra dans la
suite.
Remarque 7.1 (Consistance) La propriété de consistance est nécessaire
pour avoir la convergence. En effet, si elle n’était pas consistante, la méthode
engendrerait à chaque itération une erreur qui ne tendrait pas vers zéro avec
h. L’accumulation de ces erreurs empêcherait l’erreur globale de tendre vers
zéro quand h → 0.
Pour la méthode d’Euler implicite l’erreur de troncature locale s’écrit
τ n (h) =
1
h
[y n − y n−1 − hf(t n , y n )].
En utilisant à nouveau un développement de Taylor, on a
τ n (h) = −
h
2
y
(ξ n )
pour un certain ξ n ∈]t n−1 , t n [, à condition que y ∈ C
2 . La méthode
d’Euler implicite converge donc aussi à l’ordre 1 en h.
Exemple 7.1 Considérons le problème de Cauchy
⎧
⎨
⎩
y
(t) = cos(2y(t)),
t∈]0, 1],
y(0) = 0,
(7.16)
dont la solution est y(t) =
1
2
arcsin((e
4t − 1)/(e
4t + 1)). On le résout avec les
méthodes d’Euler explicite (Programme 7.1) et d’Euler implicite (Programme
7.2). On considère dans le programme qui suit différentes valeurs de h (1/2,
1/4, 1/8, . . . , 1/512) :
tspan =[0 ,1]; y0 =0; f = inline ( ’cos (2* y) ’ ,’t ’ , ’y ’);
u = inline ( ’ 0.5* asin (( exp (4* t ) -1)./( exp (4*t )+1)) ’ ,’t ’ );
Nh =2;
for k =1:10
[t , ufe ]= feuler (f , tspan ,y0 , Nh );
fe( k )= abs ( ufe ( end) - feval (u ,t ( end )));
[t , ube ]= beuler (f , tspan ,y0 , Nh );
be( k )= abs ( ube ( end) - feval (u ,t ( end )));
Nh = 2* Nh;
end
215
où η n appartient à l’intervalle dont les extrémités sont y n−1 et u n−1 ,
ainsi |u
∗
n − u n | ≤ |e n−1 |, dès lors qu’on a l’inégalité
0 < h < 2/ max
t∈[t0,T ]
∂f
∂y
(t, y(t))
(7.15)
On en déduit |e n | ≤ |y n − u
∗
n | + |e n−1 | ≤ nhτ (h) + |e 0 |, et donc (7.14)
grâce à (7.11) et au fait que e 0 = 0. La restriction (7.15) sur le pas de
discrétisation h est une condition de stabilité, comme on le verra dans la
suite.
Remarque 7.1 (Consistance) La propriété de consistance est nécessaire
pour avoir la convergence. En effet, si elle n’était pas consistante, la méthode
engendrerait à chaque itération une erreur qui ne tendrait pas vers zéro avec
h. L’accumulation de ces erreurs empêcherait l’erreur globale de tendre vers
zéro quand h → 0.
Pour la méthode d’Euler implicite l’erreur de troncature locale s’écrit
τ n (h) =
1
h
[y n − y n−1 − hf(t n , y n )].
En utilisant à nouveau un développement de Taylor, on a
τ n (h) = −
h
2
y
(ξ n )
pour un certain ξ n ∈]t n−1 , t n [, à condition que y ∈ C
2 . La méthode
d’Euler implicite converge donc aussi à l’ordre 1 en h.
Exemple 7.1 Considérons le problème de Cauchy
⎧
⎨
⎩
y
(t) = cos(2y(t)),
t∈]0, 1],
y(0) = 0,
(7.16)
dont la solution est y(t) =
1
2
arcsin((e
4t − 1)/(e
4t + 1)). On le résout avec les
méthodes d’Euler explicite (Programme 7.1) et d’Euler implicite (Programme
7.2). On considère dans le programme qui suit différentes valeurs de h (1/2,
1/4, 1/8, . . . , 1/512) :
tspan =[0 ,1]; y0 =0; f = inline ( ’cos (2* y) ’ ,’t ’ , ’y ’);
u = inline ( ’ 0.5* asin (( exp (4* t ) -1)./( exp (4*t )+1)) ’ ,’t ’ );
Nh =2;
for k =1:10
[t , ufe ]= feuler (f , tspan ,y0 , Nh );
fe( k )= abs ( ufe ( end) - feval (u ,t ( end )));
[t , ube ]= beuler (f , tspan ,y0 , Nh );
be( k )= abs ( ube ( end) - feval (u ,t ( end )));
Nh = 2* Nh;
end
