稳定温度场的拉普拉斯方程.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
稳定温度场的拉普拉斯方程.doc

1.稳态温度场的分布(拉普拉斯方程第一边值问题数值解) 已有 665 次阅读 2010-10-13 01:21 |个人分类: HYPERLINK /home.php?mod=spaceuid=456848do=blogclassid=145844view=me 课程实验|系统分类: HYPERLINK /home.php?mod=spacedo=blogview=allcatid=1 科研笔记|关键词:laplace equation, numerical resolve 需要上机练习编程:差分法解拉普拉斯方程的第一边值问题。 自己编制的程序如下: 文件名:Lap-Eq Numerical answer.m clc;clear; tic N=50 %划分的网格数====================== for m=1:N n=1:N-1; ??? u(m,n)=0; ??? u(m,N)=sin((m-1)*pi/(N-1)); end %定义边界条件======================= delta=ones(N,N); while delta1e-6 for m=2:N-1 n=2:N-1; ??? a(m,n)=u(m,n); ??? u(m,n)=(u(m+1,n)+u(m-1,n)+u(m,n+1)+u(m,n-1))/4; ??? delta(m,n)=abs(u(m,n)-a(m,n))/u(m,n); end end X=1:N;Y=1:N; mesh(X,Y,u(X,Y)) toc 所用的计算时间为Elapsed time is 3.672000 seconds. 1.考虑程序中的循环控制条件“while delta=10e-6”的意义。 经过单步调试,得知这个表达式只是对最后一个delta进行比较,而不是所有的delta,因此并不满足计算条件。结果是错误的。要求每个计算点的delta都要10e-6,因此需要该在程序。 clc;clear; tic N=50 %划分的网格数====================== for m=1:N n=1:N-1; ????? u(m,n)=0; ????? u(m,N)=sin((m-1)*pi/(N-1)); end %定义边界条件======================= delta=ones(N,N); for m=2:N-1 n=2:N-1; ??? while delta(m,n)1e-4 ??????? for m=2:N-1 n=2:N-1; ??? ??????a(m,n)=u(m,n); ??? ??????u(m,n)=(u(m+1,n)+u(m-1,n)+u(m,n+1)+u(m,n-1))/4; ??? ??????delta(m,n)=abs(u(m,n)-a(m,n))/u(m,n); ??????? end ??? end end X=1:N;Y=1:N; mesh(X,Y,u(X,Y)) delta delta1e-6 toc 这样一来,所有的点都满足了。但是这种算法做了太多的冗余计算。对每个点的delta分别调到误差范围,所作的计算次数太多太多了。从时间可看出 Elapsed time is 144.610000 seconds.需要进行算法改进,考虑每次计算结束得到一个delta的矩阵,只要矩阵中的最大者满足误差范围则所有的点都满足了,因此改为: clc;clear; tic N=50 %划分的网格数====================== for m=1:N n=1:N-1; ????? u(m,n)=0; ????? u(m,N)=sin((m-1)*pi/(N-1)); end %定义边界条件======================= delta=zeros(N,N); maxd=1; while maxd1e-4 ??? for m=2:N-1 n=2:N-1; ??????? a(m,n)=u(m,n); ??????? u(m,n)=(u(m+1,n)+u(m-1,n)+u(m,n+1)+u(m,n-1))/4; ??????? delta(m,n)=abs(u(m,n)-a(m,n))/u(m,n); ??? end ??? maxd=max(delta(:)); end X=1:N;Y=1:N; mesh(X,Y,u(X,Y)) maxd1e-4 toc 现在就完全解决了上述问题了。Elapsed time is 1.954000 seconds. 若误差要求改为1e-5,则运行时间为Elapsed time is 3.797000 seconds. 若误差要求改为1e-6,则运行时间为E

文档评论(0)

zhengshumian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档