9.8 Chapitre 8
351
end
p_lw = log( abs( e_lw (1: end -1)./ e_lw (2: end )))./...
log( DT (1: end -1)./ DT (2: end ))
p_up = log( abs( e_up (1: end -1)./ e_up (2: end )))./...
log( DT (1: end -1)./ DT (2: end ))
p_lw =
0.1939
1.8626
2.0014
2.0040
2.0112
2.0239
p_up =
0.2272
0.3604
0.5953
0.7659
0.8853
0.9475
Avec une boucle similaire pour le paramètre Δx, on peut vérifier la précision
du schéma en espace. Pour Δx allant de 10
−4 à 10
−2 on a :
p_lw =
1.8113
2.0235
2.0112
2.0045
2.0017
2.0007
p_up =
0.3291
0.5617
0.7659
0.8742
0.9407
0.9734
Programme 9.5. hyper : schémas de Lax-Friedrichs, Lax-Wendroff et décentré
function [xh , th , uh ]= hyper ( xspan , tspan ,u0 , ul ,...
scheme , cfl , deltax , deltat )
% HYPER résout une équation h y p er boli que scalaire
% [ XH ,TH , UH ]= HYPER ( XSPAN , TSPAN ,U0 ,UL , SCHEME , CFL ,...
%
DELTAX , DELTAT )
% résout l ’ équation h y p e rb oliq ue scalaire
%
DU/ DT+ A * DU/ DX =0
% sur ] XSPAN (1) , XSPAN (2)[ x ] TSPAN (1) ,TSPAN (2)[
% avec A >0 , la c o n diti on initiale U(X ,0)= U0( X) et
% la c o n d ition aux limites U (T )= UL( T) en XSPAN (1)
% avec d i f f ére nts schémas aux d i f fé rence s finies
%
1 Lax - F r i ed richs
%
2 Lax - Wendroff
%
3 décentré
% La vitesse de p r o p aga tion ‘a ’ n ’ est pas requise en
% entrée puisqu ’ elle peut être déduite de
% CFL = A * DELTAT / DELTAX
% Sortie : XH est le vecteur des noeuds en espace
% TH est le vecteur des noeuds en temps
% UH est une matrice c o n ten ant la solution calculée
% UH(n ,:) contient la solution au temps TT( n)
% U0 et UL peuvent être des f o n c tion s inline
% anonymes , ou définies par un M - file .
Nt =( tspan (2) - tspan (1))/ deltat +1;
th= linspace ( tspan (1) ,tspan (2) , Nt );
Nx =( xspan (2) - xspan (1))/ deltax +1;
xh= linspace ( xspan (1) ,xspan (2) , Nx );
u = zeros (Nt , Nx ); cfl2 = cfl *0.5; cfl21 =1 - cfl ^2;
cflp1 = cfl +1; cflm1 = cfl -1;
uh (1 ,:)= feval (u0 , xh );
for n =1:Nt -1
uh (n +1 ,1)=feval (ul , th (n +1));
if scheme == 1
% Lax F r i e drichs
Précédent

- 361/374

Suivant