J'ai l'équation suivante : Bonjour à tous, j'ai un petit problème avec la question suivante :
c(x;t) =
je dois tracer c pour t = 1 an et comparer avec la solution analytique.
Voilà ce que l'on a fait sur MATLAB, mais j'arrive pas à comprendre pkoi il ne me trace rien !!
Pour tracer t=1
N = 50 ;
b = 1 ;
dx = b/(N-1) ;
x = 0: dx : b ;
a = 1 ;
h = (x<a) ;
h(1)=0;
h
lambda = 1.0 ;
D = sparse(1:N ,1:N ,-1,N,N) + ...
sparse(2:N ,2:N ,-1,N,N) + ...
sparse(1:(N-1),2:N ,1 ,N,N) + ...
sparse(2:N ,1:(N-1),1 ,N,N) ;
D(1,1)=0;
D(1,2)=0;
D(N,N-1)=0;
D(N,N)=0;
dt = 0.1 ;
A = eye(N) - lambda * dt/dx^2 * D ;
B = eye(N) + ( 1 - lambda ) * dt/dx^2 * D ;
G = inv(A) * B ;
h = G * h' ;
t = dt ;
t_fin = .00031536 ;
while t<t_fin
h = G * h ;
t = t + dt ;
end;
plot(x,h) ;
Et pour la solution analytique :
n = 0: 15 ;
x = 0:.01:1;
Z = sin( ( x' * pi * (2 * n + 1 ) ) ) ;
c_0=1;
D=1;
e=1;
t=0.00031536;
A=((4/pi)*c_0)*exp( (-(((2*n)+1)*(pi/e)*D^.5).^2)*t ) ./ ((2*n)+1) ;
c=Z*A'
plot(x,c);
