利用matlab程序解决热传导问题

上传人:油条 文档编号:107212127 上传时间:2019-10-18 格式:DOC 页数:12 大小:176KB
返回 下载 相关 举报
利用matlab程序解决热传导问题_第1页
第1页 / 共12页
利用matlab程序解决热传导问题_第2页
第2页 / 共12页
利用matlab程序解决热传导问题_第3页
第3页 / 共12页
利用matlab程序解决热传导问题_第4页
第4页 / 共12页
利用matlab程序解决热传导问题_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《利用matlab程序解决热传导问题》由会员分享,可在线阅读,更多相关《利用matlab程序解决热传导问题(12页珍藏版)》请在金锄头文库上搜索。

1、哈佛大学能源与环境学院课程作业报告作业名称:传热学大作业利用matlab程序解决热传导问题 院系:能源与环境学院 专业:建筑环境与设备工程 学号:5201314 姓名:盖茨比 2015年6月8日1、 题目及要求1. 原始题目及要求2. 各节点的离散化的代数方程3. 源程序4. 不同初值时的收敛快慢5. 上下边界的热流量(=1W/(m)6. 计算结果的等温线图7. 计算小结题目:已知条件如下图所示:二、各节点的离散化的代数方程各温度节点的代数方程ta=(300+b+e)/4 ; tb=(200+a+c+f)/4; tc=(200+b+d+g)/4; td=(2*c+200+h)/4te=(100

2、+a+f+i)/4; tf=(b+e+g+j)/4; tg=(c+f+h+k)/4 ; th=(2*g+d+l)/4ti=(100+e+m+j)/4; tj=(f+i+k+n)/4; tk=(g+j+l+o)/4; tl=(2*k+h+q)/4tm=(2*i+300+n)/24; tn=(2*j+m+p+200)/24; to=(2*k+p+n+200)/24; tp=(l+o+100)/12三、源程序【G-S迭代程序】【方法一】函数文件为:function y,n=gauseidel(A,b,x0,eps)D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);G

3、=(D-L)U;f=(D-L)b;y=G*x0+f;n=1;while norm(y-x0)=eps x0=y; y=G*x0+f; n=n+1;end命令文件为:A=4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0; -1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0; 0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0; 0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0; -1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0; 0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0; 0

4、,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0; 0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0; 0,0,0,0,-1,0,-1,0,4,0,0,0,-1,0,0,0; 0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0; 0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0; 0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1; 0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0; 0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0; 0,0,0,0,0

5、,0,0,0,0,0,-2,0,0,-1,24,-1; 0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12;b=300,200,200,200,100,0,0,0,100,0,0,0,300,200,200,100;x,n=gauseidel(A,b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0e-6)xx=1:1:4;yy=xx;X,Y=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Zcontour(X,Y,Z,30)Z = 139.6088 150.3312 153.0517 153.5639 108.1040 108.6

6、641 108.3119 108.1523 84.1429 67.9096 63.3793 62.4214 20.1557 15.4521 14.8744 14.7746【方法2】 t=zeros(5,5);t(1,1)=100;t(1,2)=100;t(1,3)=100;t(1,4)=100;t(1,5)=100;t(2,1)=200;t(3,1)=200;t(4,1)=200;t(5,1)=200;for i=1:10t(2,2)=(300+t(3,2)+t(2,3)/4 ;t(3,2)=(200+t(2,2)+t(4,2)+t(3,3)/4;t(4,2)=(200+t(3,2)+t(5,

7、2)+t(4,3)/4; t(5,2)=(2*t(4,2)+200+t(5,3)/4;t(2,3)=(100+t(2,2)+t(3,3)+t(2,4)/4; t(3,3)=(t(3,2)+t(2,3)+t(4,3)+t(3,4)/4; t(4,3)=(t(4,2)+t(3,3)+t(5,3)+t(4,4)/4; t(5,3)=(2*t(4,3)+t(5,2)+t(5,4)/4;t(2,4)=(100+t(2,3)+t(2,5)+t(3,4)/4; t(3,4)=(t(3,3)+t(2,4)+t(4,4)+t(3,5)/4; t(4,4)=(t(4,3)+t(4,5)+t(3,4)+t(5,4)

8、/4;t(5,4)=(2*t(4,4)+t(5,3)+t(5,5)/4;t(2,5)=(2*t(2,4)+300+t(3,5)/24; t(3,5)=(2*t(3,4)+t(2,5)+t(4,5)+200)/24; t(4,5)=(2*t(4,4)+t(3,5)+t(5,5)+200)/24; t(5,5)=(t(5,4)+t(4,5)+100)/12;tendcontour(t,50);ans = 100.0000 200.0000 200.0000 200.0000 200.0000 100.0000 136.8905 146.9674 149.8587 150.7444 100.0000

9、 102.3012 103.2880 103.8632 104.3496 100.0000 70.6264 61.9465 59.8018 59.6008 100.0000 19.0033 14.8903 14.5393 14.5117【Jacobi迭代程序】函数文件为:function y,n=jacobi(A,b,x0,eps)D=diag(diag(A);L=-tril(A,-1);U=-triu(A,1);B=D(L+U);f=Db;y=B*x0+f;n=1;while norm(y-x0)=eps x0=y; y=B*x0+f; n=n+1;end命令文件为:A=4,-1,0,0,-

10、1,0,0,0,0,0,0,0,0,0,0,0; -1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0; 0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0; 0,0,-2,4,0,0,0,-1,0,0,0,0,0,0,0,0; -1,0,0,0,4,-1,0,0,-1,0,0,0,0,0,0,0; 0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0,0; 0,0,-1,0,0,-1,4,-1,0,0,-1,0,0,0,0,0; 0,0,0,-1,0,0,-2,4,0,0,0,-1,0,0,0,0; 0,0,0,0,-1,0,-1,0,4,0,

11、0,0,-1,0,0,0; 0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0,0; 0,0,0,0,0,0,-1,0,0,-1,4,-1,0,0,-1,0; 0,0,0,0,0,0,0,-1,0,0,-2,4,0,0,0,-1; 0,0,0,0,0,0,0,0,-2,0,0,0,24,-1,0,0; 0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1,0; 0,0,0,0,0,0,0,0,0,0,-2,0,0,-1,24,-1; 0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,12;b=300,200,200,200,100,0,0,0,100

12、,0,0,0,300,200,200,100;x,n=jacobi(A,b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1.0e-6);xx=1:1:4;yy=xx;X,Y=meshgrid(xx,yy);Z=reshape(x,4,4);Z=Zcontour(X,Y,Z,30)n =97Z = 139.6088 150.3312 153.0517 153.5639 108.1040 108.6641 108.3119 108.1523 84.1429 67.9096 63.3793 62.4214 20.1557 15.4521 14.8744 14.7746四、不同初值

13、时的收敛快慢1、方法1在Gauss迭代和Jacobi迭代中,本程序应用的收敛条件均为norm(y-x0)=eps,即使前后所求误差达到e的-6次方时,跳出循环得出结果。将误差改为0.01时,只需迭代25次,如下x,n=gauseidel(A,b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.01)运行结果为将误差改为0.1时,需迭代20次,可见随着迭代次数增加,误差减小,变化速度也在减小。方法2通过 i=1:10判断收敛,为迭代10次,若改为1:20,则迭代20次。2、在同样的误差要求下,误差控制在e的-6次方内,Gauss迭代用了49次达到要求,而Jacobi迭代用了9

14、7次,可见,在迭代中尽量采用最新值,可以大幅度的减少迭代次数,迭代过程收敛快一些。在Gauss中,初值为100,迭代46次达到精确度1.0e-6,初值为50时,迭代47次,初值为0时,迭代49次,初值为200时迭代50次,可见存在一个最佳初始值,是迭代最快。这一点在jacobi迭代中表现的尤为明显。五、上下边界的热流量:上边界t=200,=10,所以,热流量1=*+=1*(100/2+(200-139.6088)+(200-150.3312)+(200-153.0517)+(200-153.5639)/2)=230.2264W下边界热流量2=|*+-h*(+)|=|1*(84.1429-20.1557)+(67.9096-15.4521)+(63.3793-14.8744)+(62.4214- 14.7746

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号