数值传热学上机学院:电力学院班级:热能1101姓名:宋磊学号:2011000948上机时间:2014.01.064.2有一各向同性材料的方形物体,其导热系数为常数,已知各边界条件如图所示,试用高斯赛德尔迭代求其内部网格节点的温度。相对偏差为0.0002。解:2维稳态导热无内热源问题的控制微分方程∂t2/(∂x)2+∂t2/(∂y)2=0。边界条件:上边界为500℃,其余边界温度均为100℃。积分后有SSNNWWEEPpTaTaTaTaTaeeExykassSyxkannNyxkaSSNNWWEEPpTaTaTaTaTa100℃500℃100℃100℃其中k都相同,△x=△y=(δx)e=(δx)w=(δy)n=(δy)s最后有程序如下:#includestdio.h#includemath.h#defineM4doublemain(){doublea[M][M]={0},b1=0,b2=0,b3=0,b4=0,max=0;inti,k;for(i=0;iM;i++){for(k=0;kM;k++){scanf(%lf/n,&a[i][k]);}/*初始数据输入*/}for(i=0;iM;i++){for(k=0;kM;k++){printf(%lf,,a[i][k]);}printf(\n);/*初始数据输出*/}do{b1=a[(M-1)/3][(M-1)/3];b2=a[(M-1)/3][2*(M-1)/3];b3=a[2*(M-1)/3][(M-1)/3];b4=a[2*(M-1)/3][2*(M-1)/3];for(i=1;iM-1;i++){for(k=1;kM-1;k++){a[i][k]=(a[i-1][k]+a[i+1][k]+a[i][k-1]+a[i][k+1])/4;/*算法迭代*/}}for(i=0;iM;i++){for(k=0;kM;k++)printf(%lf,,a[i][k]);printf(\n);/*每次迭代数据输出*/}if((b1-a[(M-1)/3][(M-1)/3])(b2-a[(M-1)/3][2*(M-1)/3]))max=(b1-a[(M-1)/3][(M-1)/3])/b1;SNWEpaaaaa4elsemax=(b2-a[(M-1)/3][2*(M-1)/3])/b2;if(maxb3-a[2*(M-1)/3][(M-1)/3])max=(b3-a[2*(M-1)/3][(M-1)/3])/b3;if(maxb4-a[2*(M-1)/3][2*(M-1)/3])max=(b4-a[2*(M-1)/3][2*(M-1)/3])/b4;printf(max=%lf\n,max);}while(max=0.0002);/*要求输出的精度*/return(0);}运行结果16个节点时49个节点时将M的值改为7运行由以上运行结果可知该程序可有本题出发推广到一般。当网格划分不同时,只需要更改预处理中M的值即可。其中每个点的值分别代表相应节点的值。