%
% Resolution de l'equation de transport d_t u + d_x u = 0
% schema decentre
% periodique en x
% donnee initiale aleatoire ou sinusoidale
% en particulier jouer avec la CFL : dt / dx < 1 ...
% prendre dx tres petit par exemple ...
%


Nombremaille = 100
dt = 0.005
dx=1/Nombremaille

%
% Donnee initiale discontinue
%

u='';

for I=1:Nombremaille,
        u(I)=0;
end

for I=floor(Nombremaille/3):floor(2*Nombremaille/3),
        u(I)=0.5;
end

%
% Matrice du transport
%

A='';
for I=2:Nombremaille,
        A(I,I-1)=-1;
        A(I,I)=1;
end

A(1,Nombremaille)=-1;
A(1,1) = 1;

%
% Boucle de calcul
%

for J=1:100000,

plot(u);
axis([0 Nombremaille -1 1]);
drawnow

pause

u = u - dt*(A*u')'/dx;


%
% Affichage
%

%plot(u);
%axis([0 Nombremaille -1 1]);
%drawnow

end

