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
| function [y,T]=gradient(E,Geom,Chim,Num)
%paramètres
R=Geom(1);
Cp=Chim(1);
Rho=Chim(2);
lambd=Chim(3);
M=Num(1);
dt=Num(2);
nt=length(E);
dr=R/M; % pas d'espace
a=lambd*dt/(Rho*Cp*dr^2);
b=lambd*dt/(2*Rho*Cp*dr);
%--------------------------------------------------------------------------
% Reservation
T=zeros(M-1,nt-1);
% Boucle de récurence
T(:,1)=20; % première colonne c'est l'état initial
for k=1:nt-1 %on va générer la colonne suivante
T(1,k+1)=(a-b/dr)*E(k)+(1-2*a)*T(1,k)+(a+b/dr)*T(2,k);
for j=2:M-2
T(j,k+1)=(a-b/(j*dr))*T(j-1,k)+(1-2*a)*T(j,k)+(a+b/(j*dr))*T(j+1,k);
end
T(M-1,k+1)=(a-b/((M-1)*dr))*T(M-2,k)+(1-2*a)*T(M-1,k)+(a+b/((M-1)*dr))*T(M-1,k);
end
% et pour avoir le profil général il faut compléter avec la première ligne
% qui correspond à r=0
T=[E;T];
y=T(2,:); |
Partager