实验一_用超松弛迭代法求解接地金属槽内电位分布.doc

上传人:新** 文档编号:544481923 上传时间:2023-05-30 格式:DOC 页数:10 大小:583.51KB
返回 下载 相关 举报
实验一_用超松弛迭代法求解接地金属槽内电位分布.doc_第1页
第1页 / 共10页
实验一_用超松弛迭代法求解接地金属槽内电位分布.doc_第2页
第2页 / 共10页
实验一_用超松弛迭代法求解接地金属槽内电位分布.doc_第3页
第3页 / 共10页
实验一_用超松弛迭代法求解接地金属槽内电位分布.doc_第4页
第4页 / 共10页
实验一_用超松弛迭代法求解接地金属槽内电位分布.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《实验一_用超松弛迭代法求解接地金属槽内电位分布.doc》由会员分享,可在线阅读,更多相关《实验一_用超松弛迭代法求解接地金属槽内电位分布.doc(10页珍藏版)》请在金锄头文库上搜索。

1、学院:吴玉章学院 姓名:赵政嘉 学号:2013141452108 用超松弛迭代法求解接地金属槽内电位分布 一、实验内容:=V100j用超松弛迭代法求解接地金属槽内电位的分布。已知:,给定边值如图所示。给定初值:误差范围:计算迭代次数,分布。二实验设计原理:有限差分法称为松弛因子。不同的值,可以有不同的收敛速度,其值范围一般为1与2之间。通常会有一个最佳值。最佳的确定与具体问题有关,显然,如果选择合适,超松弛迭代法收敛速度最快。(1) 划分网格:节点编号、坐标的形成。(2) 赋初值:随意,尽可能靠近真实解。比如本题u7=2.0,u8=7.5,u9=10。 (3) 边界条件:给电位值,找规律。 u

2、1,u2,u3,u4,u6,u11,u12,u13,u14=0; u5,u10,u15=100。(4) 迭代 u7=(u2+u6+u8+u12)/4 ;u8=(u3+u7+u9+u13)/4 ;u9=(u4+u8+u10+u14)/4 。(5) 反复迭代,给定某一误差 有限差分法是基于差分原理的一种数值计算法。其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数的泊松方程的问题换为求解网格节点上的差分方程组的问题。编程时已经考虑到题目要求,所以直接将边值编入到程序中,这样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。这次编程和以前不同的是将数组和正交函数图像结合起

3、来,所以在考虑输入和输出的时候会有一些难度,因为数组是上面是小的而图像上面越在上,代表坐标就越大。所以在输入和输出的时候要谨慎对待。Editor中源代码为:1clc2.clear3.close all4.hx=5; 5.hy=5; 6.v1=ones(hy,hx);7.v1(hy,:)=ones(1,hx)*100; 8.v1(1,:)=ones(1,hx)*0 9.for i=1:hy;10.v1(i,1)=0; 11.v1(i,hx)=0; 12.end13.m=4;14.w=2/(1+sqrt(1-cos(pi/m)*cos(pi/m);15.maxt=1; t=0; 16.v2=v1;

4、n=017.while(maxt1e-5) 18.n=n+1 19.maxt=0;20.for i=2:hy-1 ; 21.for j=2:hx-1 ; 22v2(i,j)=v1(i,j)+(v1(i,j+1)+v1(i+1,j)+v2(i-1,j)+v2(i,j-1)-4*v1(i,j)*w/4; 23.t=abs(v2(i,j)-v1(i,j); 24.if(tmaxt) maxt=t; end25.end26.end27.v1=v2;28.end29.subplot(1,2,1),mesh(v2) 30.axis(0,5,0,5,0,100);31.subplot(1,2,2),cont

5、our(v2,20); 三、程序运行界面及结果电压分布:改变收敛因子,取接近1的数,计算次数越少,迭代效果越好;越接近2,计算次数越多,迭代效果越差。收敛因子不同,得出的电位不会有很大的差距,只是对迭代的次数会有影响。四实验心得与思考通过设计程序并进行完善调试,我对有限差分法有了进一步的认识,同时也已经掌握超松弛迭代法的运用。对于这一类题型都可以运用同样方法予以解决。就我个人而言,我觉得自己对matlab的使用还不是很了解,尽管算法能够理解,但真正到了运用的时候仍然在纠结下一句要怎么写。接触这个软件不到半个月,提升空间还有很多。比如在设计迭代时,该怎样命名参数,怎么重复运算。这个题里还涉及了有

6、关x,y的坐标问题,如果再进一步学习,我想会写的再清晰一些。尽管我不清楚最终的结果是否正确,我认为我已经将我所理解的问题表达出来了。我想我会继续思考这个问题,继续完善的。附:c+代码(用于验证结论)#include#includevoid main()double m55,n55;int N=0,b=1;int i,j;double e=0.00001;double a=2/(1+sin(3.1415926/4;for(i=0;i=4;i+)for(j=0;j=0;j-)for(i=0;i=4;i+)cout”m“i”“j”=”mijt;coutend1;while(b=1)b=0;N=N+1;for(i=1;i=3;i+)for(j=1;j=3;j+)mij=mij+a*(mi-1j+mij-1+mi+1j+mij+1-4*mij)/4;for(i=1;i=3;i+)for(j=1;j=e)b=1;nij=mij;for(j=4;j=0;j-)for(i=0;i=4;i+)cout”mi”“j”=”mijt;coutend1;cout”N=”Nend1;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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