温度传导计算
clc;clear all;close all;
h=50;
lamda=100;
delta=0.005;xnum=0.04/delta;
ynum=0.02/delta;
tf=20;
t0=100;
x=zeros(ynum+1,xnum+1);t=zeros(ynum+1,xnum+1);w=zeros(ynum+1,xnum+1);c=0;
e=1e-6;
for i=1;ynum+1;j=1:xnum+1;
t(i,j)=80;
end
y=0;
while y==0
for j=2:xnum
x(1,j)=(2*t(2,j)+t(1,j+1)+t(1,j-1)+2*h*delta*tf/lamda)/(4+2*h*delta/lamda);end
for j=2:xnum
x(ynum+1,j)=(2*t(ynum,j)+t(ynum+1,j+1)+t(ynum+1,j-1)+2*h*delta*tf/lamda)/(4+2*h*delta/lamda);end
for i=1:ynum+1;x(i,1)=t0;end
for i=2:ynum
x(i,xnum+1)=(2*t(i,xnum)+t(i+1,xnum+1)+t(i-1,xnum+1)+2*h*delta*tf/lamda)/(4+2*h*delta/lamda);end
for i=2:ynum;j=2:xnum;
x(i,j)=(t(i,j-1)+t(i,j+1)+t(i-1,j)+t(i+1,j))/4;end
x(1,xnum+1)=(2*h*delta*tf/lamda+t(1,xnum)+t(2,xnum+1))/(2+2*h*delta/lamda);
x(ynum+1,xnum+1)=(2*h*delta*tf/lamda+t(ynum,xnum+1)+t(ynum+1,xnum))/(2+2*h*delta/lamda);
for i=1:ynum+1;j=1:xnum+1;w(i,j)=abs(x(i,j)-t(i,j));end
if (max(max(w))<=e) ;y=1;end
t=x;c=c+1;
end
a=linspace(0,9,xnum+1);
b=linspace(0,5,ynum+1);
figure;
contourf(a,b,t,50);
figure(2);surf(a,b,t);
shading interp;lighting phong;colormap jet;
t=get(colorbar,'Limits');set(colorbar,'Ticks',linspace(t(1),t(2),10));%颜色的变化数量及数字
xlabel('\it{X}/ \rm{mm}','color','k','Fontname', 'Times New Roman','FontSize',40);
ylabel('\it{Y}/ \rm{mm}','color','k','Fontname', 'Times New Roman','FontSize',40);
set(gca,'linewidth',2,'fontsize',30,'fontname','Times');set(gca,'xcolor','k');set(gca,'ycolor','k');