试验用超松弛迭代法求解接地金属槽内电位分布.docx
- 文档编号:14080099
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:12
- 大小:590.50KB
试验用超松弛迭代法求解接地金属槽内电位分布.docx
《试验用超松弛迭代法求解接地金属槽内电位分布.docx》由会员分享,可在线阅读,更多相关《试验用超松弛迭代法求解接地金属槽内电位分布.docx(12页珍藏版)》请在冰点文库上搜索。
试验用超松弛迭代法求解接地金属槽内电位分布
用超松弛迭代法求解接地金属槽内电位分布
、实验内容:
用超松弛迭代法求解接地金属槽内电位的分布。
已知:
a=4cm,h=a/4=10mm给定边值如图所示。
给定初值:
专?
=0
误差范围:
.’lo^=0
计算迭代次数,化j分布。
0
.实验设计原理:
有限差分法
C*=C+a<|C/)
=弟+彳(C1J-十殆+i+Cty+欄1—40]-祁耳J)
a称为松弛因子。
不同的a值,可以有不同的收敛速度,其值范围一般为1与2之间。
通常a会有一个最佳值。
最佳a的确定与具体问题有关,显然,如果a选择合适,超松弛迭代法收敛速度最快。
开始
赋边界值、计算精度和场域内各节点函数初始值
(1)划分网格:
节点编号、坐标的形成。
(2)赋初值:
随意,尽可能靠近真实解。
比如本题u7=2.0,u8=7.5,u9=10
(3)边界条件:
给电位值,找规律。
u1,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)反复迭代,给定某一误差
Max—錯Z| 有限差分法是基于差分原理的一种数值计算法。 其基本思想: 将场域离散为许多小网格,应用差分原理,将求解连续函数? 的泊松方程的问题换为求解网格节点上? 的差分方程组的问题。 编程时已经考虑到题目要求, 所以直接将边值编入到程序中,这 样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。 这次编程和以前不同的是将数组和正交函数 图像结合起来,所以在考虑输入和输出的时候会有一些难度,因为数组是上面是小的而图像上面越在上,代表坐标就 越大。 所以在输入和输出的时候要谨慎对待 FifeiEditTwcl: 5CdlTodsDehjgDesktepWifdDwHdp也■X ET0£l'll*CJl'世Slack: (hwA 3IC51□ 1-U++|11x|密密Q 】- clc ■—ar 5- clear 3- closeall 4- 虻弓: 氓餐询丽絆詡 5- M;*礎: 巧向冃紳調 «- vLnnus向,fa);诡#2鞫姑WiiJlI B- 71际: : '=xhs疗曲IE 71忆: 曲叭: 工讷娟爭睡 faii=l: hr Lfi- ■.Ki,l)=DW删 L]- ■.Ki.fc: -: .l皿瞬剋 L2- end L3- 1=4: L4- r=2/H+sqrt;L-casipi/i: 'cas(pi/i)\\ ■ LS- tai-L.r=C'、SffW體刪丈ftl*星 LE- 1T- : LB- r^l唏耳朗黯 W- mht=D: 沁l=2: hr-L;淑: 鬆■市僭 31- fai尸2: hi-L;*.贮JfcE列個幵 22- '卫忆1l? jl+6rl(i.j-^Lj+vli14-1,j*2(i-l,jj-l)-! 1"! Ci? jj)刖4 di 33 、册IM 汉- 25- LfU>iarti,i^t=■: wd 〔也;: •Bl) 篇- 皿 end 2®- 好毗; a■ end 30■ suhphtl'l^,l]Pudi(vf)、画三笫曲®H soripiLn5Cdl£ IM Editor中源代码为: 1.clc 2.clear 3.closeall 4.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.fori=1: hy; 10.v1(i,1)=0; 11.v1(i,hx)=0; 12.end 13.m=4; 14.w=2/(1+sqrt(1-cos(pi/m)*cos(pi/m))); 15.maxt=1;t=0; 16.v2=v1;n=0 17.while(maxt>1e-5) 18.n=n+1 19.maxt=0; 20.fori=2: hy-1; 21.forj=2: hx-1; 22.v2(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(t>maxt)maxt=t;end 25.end 26.end 27.v1=v2; 28.end 29.subplot(1,2,1),mesh(v2) 30.axis([0,5,0,5,0,100]); 31.subplot(1,2,2),contour(v2,20); CommandWindow Fl.— 4 n= 5 rt_ 6 11■ 7 n■ 名 ii■ y * CommandWindow s n— 9 n ia m— 11 ±-B=■ 12 n— 13 * 三、程序运行界面及结果 电压分布: 改变收敛因子,a取接近1的数,a计算次数越少,迭代效果越好;a越接近2,计算次数越多,迭代效果越差。 收敛因子不同,得出的电位不会有很大的差距,只是对迭代的次数会有影响。 四.实验心得与思考 通过设计程序并进行完善调试,我对有限差分法有了进一步的认识,同时也已经掌握超松弛迭代法的运用。 对于这一类题型都可以运用同样方法予以解决。 就我个人而言,我觉得自己对matlab的使用还不是很了解,尽管算法能够理解,但真正到了运用的时候仍然在纠结下一句要怎么写。 接触这个软件不到半个月,提升空间还有很多。 比如在设计迭代时,该怎样命名参数,怎么重复运算。 这个题里还涉及了有关x,y的坐标问题,如果再进一步学习,我想会写的再清晰一些。 尽管我不清楚最终的结果是否正确,我认为我已经将我所理解的问题表达出来了。 我 想我会继续思考这个问题,继续完善的 附: C++代码(用于验证结论) #include #inClude voidmain() { doublem[5][5],n[5][5]; intN=0,b=1; inti,j; doublee=0.00001; doublea=2/(1+sin(3.1415926/4; for(i=0;i<=4;i++) for(j=0;j<+4;j++) { m[i][j]=0;[i][j]=0; } m[1][4]=100; m[2][4]=100' m[3][4]=100; n[1][4]=m[1][4]; n[2][4]=m[1][4]; n[3][4]=m[1][4]; for(j=4;j>=0;j--) { for(i=0;i<=4;i++) Cout<<”m[“< Cout< } while(b==1) { b=0; N=N+1; for(i=1;i<=3;i++) for(j=1;j<=3;j++)m[i][j]=m[i][j]+a*(m[i-1][j]+m[i][j-1]+m[i+1][j]+m[i][j+1]-4*m[i][j])/4; for(i=1;i<=3;i++) for(j=1;j<=3;j++) { if(fabs(m[i][j]-n[i][j]>=e) b=1; n[i][j]=m[i][j]; } }for(j=4;j>=0;j--) { for(i=0;i<=4;i++) cout<<”m[< } cout<<”N=”<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 试验 松弛 迭代法 求解 接地 金属 电位 分布