TP-equation-derivees-partie.../TP2/reference.m
2023-06-10 20:51:59 +02:00

46 lines
855 B
Matlab
Executable file

function uref=reference(ic,lambda,Nx,dx,kt)
% Evaluation de la solution de référence en les points du maillage.
% uref(x)=u0(x-a*t)
%
% Inputs :
% ------
%
% ic : choix de la condition initiale: 0 -> fonction porte, sinon densité gaussienne.
%
% lambda: nombre de Courant.
%
% Nx : Nombre de pas d'espace.
%
% dx : Pas d'espace.
%
% kt : Indice du pas de temps courant.
%
% Output :
% ------
%
% uref : solution évaluée en les noeuds du maillage.
%
%*****************************************
uref=zeros(Nx+2,1);
if(ic==0)
% Fonction porte
xi=0.25;
xj=1;
xx=0:Nx+2;
tmp=find((dx*xx>=xi+dx*lambda*kt)&(dx*xx<=xj+dx*lambda*kt));
uref(tmp)=2;
else
% Densité gaussienne
gaussian=@(x,m,var)exp(-(x-m)^2/(2*var^2))/(var);
n0=1;
var0=0.1;
for j=2:Nx+1
uref(j)=(1/5)*gaussian((j-lambda*kt)*dx,n0,var0);
end
end
end