1 传热学作业数值计算 2 数值计算 matlab 程序内容: >> tw1=10; % 赋初值 tw2=20; c=1
5; p2=20; p1=c*p2; L2=40; L1=c*L2; deltaX=L2/p2; a=p2+1; b=p1+1; ti=ones(a,b)*5; m1=ones(a,b); m1(a,2:b-1)=zeros(1,b-2); m1(2:a,1)=zeros(a-1,1); m1(2:a,b)=zeros(a-1,1); m1(1,:)=ones(1,b)*2; k=0; max1=1
0; tn=ti; while(max1>1e-6) max1=0; k=k+1; for i=1:1:a for j=1:1:b 3 m=m1(i,j); n=ti(i,j); switch m case 0 tn(i,j)=tw1; case 1 tn(i,j)=0
25*(tn(i,j+1)+tn(i,j-1)+tn(i+1,j)+tn(i-1,j)); case 2 tn(i,j)=tw1+tw2*sin(pi*(j-1)/(b-1)); end er=abs(tn(i,j)-n); if er>max1 max1=er; end end end ti=tn; end k ti max1 t2=ones(a,b); %求解析温度场 for i=a:-1:1 for j=1:1:b y=deltaX*(a-i); x=deltaX*(j-1); t2(i,j)=tw1+tw2*sin(pi*x/L1)*(sinh(pi*y/L1))/(sinh(pi*L2/L1)); end end t2 迭代次数 k =706 数值解温度场ti 4 数值解每次迭代的最大误差max1 =9
8531e-07 解析温度场 t2 取第11 行的解析解和数值解的点 曲线为第