1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| % resolution de l'equation aux derivées partielles*
%**************************************************
clear;
clc;hold off;
a=0;
b=2;
k=0.13;
c=0.11;
dx=0.25;
n=(b-a)/dx;
x=a:dx:b;T=100;
mv=7.8;
r0= (mv*c*dx^2)/(2*k);
dt=input('Donner dt \n ');
dt
r=dt/(2*r0);
if r<1/2
disp('Le schéma est stable');
else
disp('Le schéma est instable et quitter');
end
%*******************************
% Construction de la matrice A *
%*******************************
A(1,1:2)=[1-2*r r];A(1,3:n-1)=0;
A(n-1,1:n-3)=0;A(n-1,n-2:n-1)=[r 1-2*r];
for i=2:n-1
for j=1:n-2
if i<j-1 & j>i+1
A(i,j)=0;
end
if i==j
A(i,j)=1-2*r;
A(i,j-1)=r;
A(i,j+1)=r;
end
end
end
A
u(1,:)=[25 50 75 100 75 50 25];
v=u';
V=A*v;
k=1;
for i=1:n-1
v(i,:)=V(k);
k=k+1;
end
v=[0,v,0];
[X,Y]=meshgrid(0:dx:1,0:dt:T);
meshc(X,Y,v)
xlabel(['x(dx=',num2str(dx),')'])
ylabel(['y(dy=',num2str(dx),')'])
zlabel('temperature')
title('evolution de la temperature')
figure
[Xi,Yi]=meshgrid(0:dx:1,0:dt:T);
[cont.hd]=contourf(Xi,Yi,v,100);
xlabel(['x(dx=',num2str(dx),')'])
ylabel(['y(dy=',num2str(dx),')'])
title('evolution de la temperature')
colorbar |
Partager