240
7 Equations différentielles ordinaires
% suivante : ODEFUN (T ,Y , P1 ,...) , PRED (T ,Y ,P1 , P2 ...) ,
% CORR (T ,Y ,P1 , P2 ...).
h =( tspan (2) - tspan (1))/ Nh ;
y = y0 (:); w= y; u = y. ’;
tt= linspace ( tspan (1) ,tspan (2) , Nh +1);
for t = tt (1: end -1)
fn = feval ( odefun ,t ,w , varargin {:});
upre = feval ( predictor ,t ,w ,h , fn );
w = feval ( corrector ,t +h ,w , upre ,h , odefun ,...
fn , varargin {:});
u = [u ; w . ’];
end
t = tt;
end
Programme 7.5. feonestep : un pas de la méthode d’Euler explicite
function [u ]= f e o neste p(t ,y ,h ,f )
% F E O NEST EP un pas de la méthode d ’ Euler e x p l icite
u = y + h*f;
return
Programme 7.6. beonestep : un pas de la méthode d’Euler implicite
function [u ]= b e o neste p(t ,u ,y ,h ,f , fn , varargin )
% B E O NEST EP un pas de la méthode d ’ Euler i m p l icite
u = u + h*feval (f ,t ,y , varargin {:});
return
Programme 7.7. cnonestep : un pas de la méthode de Crank-Nicolson
function [u ]= c n o neste p(t ,u ,y ,h ,f , fn , varargin )
% C N O NEST EP un pas de la méthode de Crank - Nicolson
u = u + 0.5* h *( feval (f ,t ,y , varargin {:})+ fn );
return
Le programme MATLAB ode113 implémente un schéma d’Adamsode113
Bashforth-Moulton avec pas variable.
Voir les Exercices 7.14–7.17.
Précédent

- 251/374

Suivant