Je travaille sur ce codage pour ma classe de transfert de chaleur. Le nombre sont supposés être d'autres équations, mais je les ai remplacés par des numéros de simplementMatlab codage aide matrice de traitement
l=.2;
w=.2;
dx=.05;
dy=.05;
k=400;
q=500;
Nx = (l/dx+1); %nodes in the x direction
Ny = (w/dy+1); %nodes in the y direction
T=zeros(Nx,Ny);
for m = (1:Nx) %node counter in x nodes
for n = (1:Ny) %node counter in y nodes
if n==1; %left side
T(m,n)=50;
elseif m==1 && n<Ny;%Heat Flux
T(m,n)=60;
elseif m>=2 && n==Ny && m<Nx; %insulated, right side
T(m,n)=70;
elseif n>=2 && n<=Ny-1 && m==Nx ; %insulated, bottom side
T(m,n)=80;
elseif m>=((.325*l)/dx)+1 && m<=((.675*l)/dx)+1 && n>=((.325*w)/dy)+1 && n<=
((.675*w)/dy)+1;
T(m,n) = 400;%center or steam
elseif m>1 && m<Nx && n>1 && n<Ny
T(m,n) = 90;
elseif m==1 && n==Ny;
**T(m,n)=T(m+2,n)/2;%**<-------------------this wont work properly****
elseif n==Nx && m==Ny;
T(m,n)= 110;
end
end
end
Je ne sais pas pourquoi il ne choisira pas la valeur correcte et le diviser par 2 plutôt dit que la réponse est 0 quand il est supposé être T (2,5) qui est 70/2 = 35?
T =
50 60 60 60 0
50 90 90 90 70
50 90 400 90 70
50 90 90 90 70
50 80 80 80 110
toute aide serait apprécier
Merci