218
7 Equations différentielles ordinaires
else
w = fsolve ( @( w ) c r a n kni cfun( w) , glob_y , options );
end
u = [ u; w . ’];
glob_y = w;
end
t = tt;
clear glob_h glob_t glob_y g l o b _ode fun;
end
function z= c r a nk nicfu n(w )
global glob_h glob_t glob_y g l o b_ odefu n;
z =w - glob_y - ...
0.5* glob_h *( feval ( glob_odefun , glob_t , w) + ...
feval ( glob_odefun , glob_t - glob_h , glob_y ));
end
Exemple 7.2 Résolvons le problème de Cauchy (7.16) avec la méthode de
Crank-Nicolson et les valeurs de h utilisées dans l’Exemple 7.1. Comme on
peut le voir, les résultats confirment que les erreurs estimées tendent vers zéro
à l’ordre p = 2 en h :
y0 =0; tspan =[0 1]; N =2; f = inline ( ’ cos (2* y) ’, ’t ’, ’y ’);
y = ’ 0.5* asin (( exp (4*t ) -1)./(exp (4* t )+1)) ’;
for k =1:10
[ tt ,u ]= cranknic (f , tspan , y0 ,N );
t = tt( end ); e( k )= abs( u( end) - eval (y )); N =2* N;
end
p = log ( abs (e (1: end -1)./ e (2: end )))/ log (2); p (1:2: end )
1.7940
1.9944
1.9997
2.0000
2.0000
Voir les Exercices 7.4–7.5.
7.5 Zéro-stabilité
De manière générale, un schéma numérique est dit stable s’il permet de
contrôler la solution quand on perturbe les données.
Il existe de nombreuses notions de stabilité. L’une d’elles, appelée
zéro-stabilité, garantit que, sur un intervalle borné, des petites perturbations des données entraînent des perturbations bornées de la solution
numérique quand h → 0.
Plus précisément, une méthode numérique pour approcher le problème (7.5), où I = [t 0 , T ], est zéro-stable si
∃h 0 > 0, ∃C > 0, ∃ε 0 > 0 t.q. ∀h ∈]0, h 0 ], ∀ε ∈]0, ε 0 ], si |ρ n | ≤ ε, 0 ≤
n ≤ N h , alors
|z n − u n | ≤ Cε,
0 ≤ n ≤ N h ,
(7.20)
7 Equations différentielles ordinaires
else
w = fsolve ( @( w ) c r a n kni cfun( w) , glob_y , options );
end
u = [ u; w . ’];
glob_y = w;
end
t = tt;
clear glob_h glob_t glob_y g l o b _ode fun;
end
function z= c r a nk nicfu n(w )
global glob_h glob_t glob_y g l o b_ odefu n;
z =w - glob_y - ...
0.5* glob_h *( feval ( glob_odefun , glob_t , w) + ...
feval ( glob_odefun , glob_t - glob_h , glob_y ));
end
Exemple 7.2 Résolvons le problème de Cauchy (7.16) avec la méthode de
Crank-Nicolson et les valeurs de h utilisées dans l’Exemple 7.1. Comme on
peut le voir, les résultats confirment que les erreurs estimées tendent vers zéro
à l’ordre p = 2 en h :
y0 =0; tspan =[0 1]; N =2; f = inline ( ’ cos (2* y) ’, ’t ’, ’y ’);
y = ’ 0.5* asin (( exp (4*t ) -1)./(exp (4* t )+1)) ’;
for k =1:10
[ tt ,u ]= cranknic (f , tspan , y0 ,N );
t = tt( end ); e( k )= abs( u( end) - eval (y )); N =2* N;
end
p = log ( abs (e (1: end -1)./ e (2: end )))/ log (2); p (1:2: end )
1.7940
1.9944
1.9997
2.0000
2.0000
Voir les Exercices 7.4–7.5.
7.5 Zéro-stabilité
De manière générale, un schéma numérique est dit stable s’il permet de
contrôler la solution quand on perturbe les données.
Il existe de nombreuses notions de stabilité. L’une d’elles, appelée
zéro-stabilité, garantit que, sur un intervalle borné, des petites perturbations des données entraînent des perturbations bornées de la solution
numérique quand h → 0.
Plus précisément, une méthode numérique pour approcher le problème (7.5), où I = [t 0 , T ], est zéro-stable si
∃h 0 > 0, ∃C > 0, ∃ε 0 > 0 t.q. ∀h ∈]0, h 0 ], ∀ε ∈]0, ε 0 ], si |ρ n | ≤ ε, 0 ≤
n ≤ N h , alors
|z n − u n | ≤ Cε,
0 ≤ n ≤ N h ,
(7.20)
