MATLAB超松弛迭代法求解接地金属槽内电位分布.docxVIP

MATLAB超松弛迭代法求解接地金属槽内电位分布.docx

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

用超松弛迭代法求解接地金属槽内电位分布

一、实验内容:

?V

?

V

100

?

:,

给定边值如下图。

给定初值:

误差范围:

计算迭代次数,分布。

二.实验设计原理:有限差分法

有限差分法〔FiniteDifferentialMethod〕是基于差分原理的一种数值计算法。其根本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数?的泊松方程的问题换为求解网格节点上?的差分方程组的问题。

编程时已经考虑到题目要求,所以直接将边值编入到程序中,编写成function的M文件,这样只要调用此M文件,输入变量为迭代因子,即可输出电位矩阵和迭代次数。

迭代时所用公式为

U2(i,j)=U1(i,j)+a*(U1(i,j+1)+U1(i+1,j)+U2(i-1,j)+U2(i,j-1)-4*U1(i,j))/4

其中U2代表k+1,而U1代表k。

以上分析了迭代程序的实现,但是迭代循环如何终止并未说明。题目中的误差范围ε=0.00001,即当两次迭代结果相差不超过ε时停止,这里必须是九点都满足不超过ε,而并不是其中某一点到达即可。当迭代次数过多时,程序会运行很长时间,〔此题要求电位点数较少,不会出现迭代次数过多的情况。当然点数越多结果越精确。〕当迭代因子a≥2时,迭代不收敛,程序会陷入死循环,因此需要限制循环次数,迭代100000次无结果那么退出循环,防止程序崩溃。

这样可以画出流程图如下所示:

启动

启动

输入迭代因子

输入迭代因子

迭代次数k

迭代次数k=0

k

k=k+1

开始循环迭代

开始循环迭代

函数判断相邻二次差值是否小于给定值

函数判断相邻二次差值是否小于给定值

输出k,电位U1终止

输出k,电位U1

终止

三、程序运行界面及结果

适当改变迭代因子a的值是否能够减少迭代次数?

我做了如下试验:

迭代因子a

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

≥2

迭代次数k

17

11

14

18

24

32

45

70

151

不收敛

可见,这样的更改在a取适宜的值的时候能带来迭代次数十分显著的减少,

但什么样的a才是“适宜的”值,因为当a太小时,每次迭代U不能获得足够的增量。

而当a太大,那么会使得增量过大,在超过目标值时需要更多的迭代次数来返回。

那么是否有一种方法能够精确算出最适宜的a值或者估计出较适宜的a值。

从屡次实验看来,当a=2时计算总是不收敛,而a的最正确取值往往和网格的行列数有关。

有资料给出了经验公式:

a=21+(1-b2

经过试验,该公式是有效的。

四.源程序代码

function[U1,k]=cff(a)%有限差分法计算电位

lx=5;ly=5;%定义矩阵维数

U1=zeros(ly,lx);%建立一个矩阵

forj=2:lx-1U1(1,j)=100;

end

文档评论(0)

199****8042 + 关注
实名认证
文档贡献者

相信自己,相信明天

1亿VIP精品文档

相关文档