《综合项目工程电磁场报告.doc》由会员分享,可在线阅读,更多相关《综合项目工程电磁场报告.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、工程电磁场报告工程电磁场报告2010/4/2张伟工程电磁场报告 -迭代法在计算电位中应用所谓迭代法,是一种不断用变量旧值递推新值过程,跟迭代法相相应是直接法(或者称为一次解法),即一次性解决问题。迭代法又分为精准迭代和近似迭代。“二分法”和“牛顿迭代法”属于近似迭代法。迭代算法是用计算机解决问题一种基本办法。它运用计算机运算速度快、适合做重复性操作特点,让计算机对一组指令(或一定环节)进行重复执行,在每次执行这组指令(或这些环节)时,都从变量原值推出它一种新值。在这次实验中是运用迭代法求出在二维场中电位分布,相对于其她求解办法,虽然精准度存在误差,但是简朴易行,充分运用计算机高效,可以不久得出
2、大体电位分布。实验采用是C+语言进行辅助。一、 初试牛刀-计算55电位分布;这个实验是用于实现超松弛法来求节点电位,考虑到规定场是二维分布,因此构造基本数据为二维数组,套用迭代公式为:aij=bij+( /4)*(bi+1j+bij+1+ai-1j+aij-1-4*bij);迭代因子为,可依照经验公式算出,直接赋值,考虑到计算机高效性,在此可任取一不不大于1不大于2数,最后均能得出答案,只是迭代次数有所差别。启动该实验方框图如下赋边界已知电位赋场点初始值合计迭代次数M=0迭代次数M+1运用公式进行迭代判断与否达到精度规定 N Y打印出每一种点点位 Y结束实现该功能源程序如下:#include#
3、include#includevoid main()double a55;double b55;int i=0,j=0;static int M=0;bool N=true;for(j=1;j=3;j+) for(i=1;i=3;i+)aij=0;for(j=0;j=4;j+) a4j=0;a0j=100;for(i=1;i=4;i+)ai0=0;ai4=0; cout各内节点上电位初始迭代值为:endl;/输出初始迭代值for(i=0;i=4;i+)for(j=0;j=4;j+)coutaij ; coutendl;coutn; do for(i=0;i=4;i+) for(j=0;j=4;
4、j+) bij=aij; for(i=1;i=3;i+) for(j=1;j=3;j+) aij=bij+(1.2/4)*(bi+1j+bij+1+ai-1j+aij-1-4*bij); for(i=1;i=3;i+) for(j=1;j0.00001) N=true; break; else N=false; M+; while(N);cout经迭代后,各节点电位近似值为:endl;for(i=0;i=4;i+)for(j=0;j=4;j+)coutsetiosflags(ios:fixed)setprecision(5)aij ;coutendl;coutendl;cout迭代次数Mend
5、lendl;程序很短,但是实现了规定功能,经运营可得出成果:电位大概分布如左图所示,可以看出还是比较符合。在这个实验中要注意几点:一方面是要选用适当数据类型,如果采用了int型,会对成果导致很大影响;另一方面是对精度控制,否则会影响迭代次数和成果;再次就是迭代公式要熟悉,把它转换为计算机语言。总之这个实验算是一种练手,为下一步实验打下基本。弄清晰这个实验原理和办法,很容易得出下一种实验操作过程。二、 实战演习-用迭代法求出对称场中点位分布。其实这一种实验和上一种是大同小异,只是要考虑最中间一行迭代关系,这很重要,否则会浮现中间两行没有进行迭代状况。作出左边一半后,直接再用C+给此外一半赋予与左
6、侧相对称值即可。程序启动实验设计方框图如下图所示:赋边界电位值赋场内各点电位值合计迭代次数M=0迭代次数加1按照公式进行迭代检查与否达到精度 Y把此外一半镜像出来,直接赋值打印出成果结束实验源程序如下:#include#include#include#includevoid main()double a4020;/定义数组a,用于存储初始迭代值double b4020;/定义数组b,用于和数组a进行比较,以拟定与否达到实验进度double c4040;int i=0,j=0; bool M;static int N=0;/定义静态变量,记录迭代次数 ifstream infile(test.t
7、xt,ios:noreplace);ofstream outfile;outfile.open(test.txt);for(i=1;i40;i+) /为内节点赋初始迭代值for(j=1;j20;j+)aij=2.5*(j-1); for(i=1;i40;i+)/为左边界赋初始迭代值ai0=0;for(j=0;j20;j+) /为上下边界赋值 a0j=100;a39j=0;cout初始迭代值为:endl;outfile初始迭代值为:endl;for(i=0;i40;i+)for(j=0;j20;j+)outfileaij ;/输出到文献 coutaij ; /输出数组coutendl;outfi
8、leendl; do /开始进行迭代for(i=0;i40;i+) /先将a数组前一次复制到b数组,便于精度比较 for(j=0;j20;j+) bij=aij; for(i=1;i=38;i+)for(j=1;j=18;j+) /套用迭代公式,去迭代因数为1.5aij=bij+(1.5/4)*(bi+1j+bij+1+ai-1j+aij-1-4*bij);ai19=0.25*(ai-119+ai18+bi+119+ai18);for(i=1;i=38;i+) /比较与否达到精度规定for(j=1;j0.00001)M=true; break;elseM=false; N+; /完毕一次迭代,
9、迭代次数+1while(M); for(i=0;i=39;i+) /将此外对称某些镜像出来for(j=0;j=19;j+)cij=aij; ci39-j=aij;coutendl;cout通过迭代次数为:Nendl;outfile通过迭代次数为:Nendl;coutendl; cout通过迭代后,各节点电位近似值为:endl;outfile通过迭代后,各节点电位近似值为:endl;for(i=0;i=39;i+)for(j=0;j=39;j+)coutsetiosflags(ios:fixed)setprecision(5)cij ;outfilesetiosflags(ios:fixed)s
10、etprecision(5)cij ;coutn;coutn;outfileendl;infile.close();outfile.close();cout实验数据太多,已存储源程序目录下,名为“test.txt”; coutn;coutn;将输出数据所有导出到文献中,再运用excel制作表格,可得到比较好数据分布图,如左图。可看出数据越多,图表越是精准,基本上可以反映出电位分布状况。这和用软件模仿效果很是相似。实验总结:通过了这次实验,让我对迭代法有了一种更进一步结识,领略到了计算机带来以便,对于某些抽象东西,充分运用计算机,让咱们直观看到了电位分布,这是很便捷,相信在通过一段时间学习之后,能更有效地运用当代手段进行辅助学习。迭代法巧妙运用能解决许多问题,它虽然要重复诸多次,但计算简便,就相对于精度规定不高定性分析,是一种很有效解决办法。