8.2 Approximation de problèmes aux limites
267
Les paramètres d’entrée du Programme 8.1 sont les extrémités a et b
de l’intervalle, le nombre N de noeuds intérieurs, les coefficients constants
μ, η et σ et la fonction bvpfun définissant la fonction f(x). Enfin, ua et
ub sont les valeurs de la solution en x=a et x=b respectivement. Les
paramètres de sortie sont le vecteur des noeuds xh et la solution calculée
uh. Remarquer que les solutions peuvent être entachées d’oscillations
parasites si h ≥ 2/|μ| (voir la section suivante).
Programme 8.1. bvp : approximation d’un problème aux limites monodimensionnel par la méthode des différences finies
function [xh , uh ]= bvp (a ,b ,N ,mu , eta , sigma , bvpfun ,...
ua ,ub , varargin )
% BVP résout des p r o b lèmes aux limites 1 D.
% [XH , UH ]= BVP(A ,B ,N ,MU , ETA , SIGMA , BVPFUN , UA , UB)
% résout avec la méthode des d i f fé rence s finies
% centrées le problème aux limites
%
-MU *D ( DU/ DX )/ DX+ ETA* DU / DX+ SIGMA *U = BVPFUN
% sur l ’ i n t e rva lle ]A ,B [ avec les c o n d itio ns aux
% limites U( A )= UA et U( B )= UB. BVPFUN peut être une
% fonction inline , une fonction anonyme ou définie
% par M - file.
% [XH , UH ]= BVP(A ,B ,N ,MU , ETA , SIGMA , BVPFUN , UA ,UB ,...
% P1 ,P2 ,...) passe les p a r a mèt res s u p p l éme ntai res
% P1 , P2 , ... à la fonction BVPFUN .
% XH contient les noeuds de discrétisation ,
% y compris les noeuds du bord.
% UH contient la solution n u m ér ique.
h = (b - a )/( N +1);
xh = ( linspace (a ,b ,N +2)) ’;
hm = mu /h ^2;
hd = eta /(2* h );
e = ones (N ,1);
A = spdiags ([ - hm *e - hd (2* hm+ sigma )* e - hm* e+ hd ] ,...
-1:1 , N , N );
xi = xh (2: end -1);
f = feval ( bvpfun , xi , varargin {:});
f (1) = f (1)+ ua *( hm+ hd );
f ( end ) = f( end )+ ub *( hm - hd );
uh = A\f;
uh =[ ua; uh; ub ];
return
8.2.2 Approximation par différences finies d’un problème à
convection dominante
Considérons à présent la généralisation suivante du problème aux limites (8.10)
−μu
(x) + ηu
(x) = f(x) pour x ∈]a, b[,
u(a) = α,
u(b) = β,
(8.18)
267
Les paramètres d’entrée du Programme 8.1 sont les extrémités a et b
de l’intervalle, le nombre N de noeuds intérieurs, les coefficients constants
μ, η et σ et la fonction bvpfun définissant la fonction f(x). Enfin, ua et
ub sont les valeurs de la solution en x=a et x=b respectivement. Les
paramètres de sortie sont le vecteur des noeuds xh et la solution calculée
uh. Remarquer que les solutions peuvent être entachées d’oscillations
parasites si h ≥ 2/|μ| (voir la section suivante).
Programme 8.1. bvp : approximation d’un problème aux limites monodimensionnel par la méthode des différences finies
function [xh , uh ]= bvp (a ,b ,N ,mu , eta , sigma , bvpfun ,...
ua ,ub , varargin )
% BVP résout des p r o b lèmes aux limites 1 D.
% [XH , UH ]= BVP(A ,B ,N ,MU , ETA , SIGMA , BVPFUN , UA , UB)
% résout avec la méthode des d i f fé rence s finies
% centrées le problème aux limites
%
-MU *D ( DU/ DX )/ DX+ ETA* DU / DX+ SIGMA *U = BVPFUN
% sur l ’ i n t e rva lle ]A ,B [ avec les c o n d itio ns aux
% limites U( A )= UA et U( B )= UB. BVPFUN peut être une
% fonction inline , une fonction anonyme ou définie
% par M - file.
% [XH , UH ]= BVP(A ,B ,N ,MU , ETA , SIGMA , BVPFUN , UA ,UB ,...
% P1 ,P2 ,...) passe les p a r a mèt res s u p p l éme ntai res
% P1 , P2 , ... à la fonction BVPFUN .
% XH contient les noeuds de discrétisation ,
% y compris les noeuds du bord.
% UH contient la solution n u m ér ique.
h = (b - a )/( N +1);
xh = ( linspace (a ,b ,N +2)) ’;
hm = mu /h ^2;
hd = eta /(2* h );
e = ones (N ,1);
A = spdiags ([ - hm *e - hd (2* hm+ sigma )* e - hm* e+ hd ] ,...
-1:1 , N , N );
xi = xh (2: end -1);
f = feval ( bvpfun , xi , varargin {:});
f (1) = f (1)+ ua *( hm+ hd );
f ( end ) = f( end )+ ub *( hm - hd );
uh = A\f;
uh =[ ua; uh; ub ];
return
8.2.2 Approximation par différences finies d’un problème à
convection dominante
Considérons à présent la généralisation suivante du problème aux limites (8.10)
−μu
(x) + ηu
(x) = f(x) pour x ∈]a, b[,
u(a) = α,
u(b) = β,
(8.18)
