1 / 7
文档名称:

有限差分法实验报告(参考).doc

格式:doc   大小:126KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

有限差分法实验报告(参考).doc

上传人:文库旗舰店 2019/5/16 文件大小:126 KB

下载得到文件列表

有限差分法实验报告(参考).doc

相关文档

文档介绍

文档介绍:工程电磁场实验报告——有限差分法用超松弛迭代法求解接地金属槽内电位的分布=V100j一、实验要求按对称场差分格式求解电位的分布已知:给定边值:如图1-7示图1-7接地金属槽内半场域的网格给定初值误范围差:计算:迭代次数,,将计算结果保存到文件中实验思想有限差分法有限差分法(FiniteDifferentialMethod)是基于差分原理的一种数值计算法。其基本思想:将场域离散为许多小网格,应用差分原理,将求解连续函数的泊松方程的问题转换为求解网格节点上的差分方程组的问题。泊松方程的五点差分格式当场域中得到拉普拉斯方程的五点差分格式图1-4高斯——赛德尔迭代法差分方程组的求解方法(1)高斯——赛德尔迭代法(1-14)式中:·迭代顺序可按先行后列,或先列后行进行。·迭代过程遇到边界节点时,代入边界值或边界差分格式,直到所有节点电位满足为止。(2)超松弛迭代法(1-15)式中:——加速收敛因子可见:迭代收敛的速度与有明显关系程序源代码#include<>#include<>#include<>doubleA[5][5];voidmain(void){ doubleBJ[5][5];//数组B用于比较电势 ints[100];//用于储存迭代次数 doubled[100];//用于记录所有的加速因子 d[0]=; inti,j,N=0,M=0,x; for(i=0;i<100;i++) d[i]=*i+d[0];//! doublew[100][10]; intP,Q;for(P=0;P<4;P++) for(Q=0;Q<5;Q++) A[P][Q]=0; for(P=0;P<5;P++) A[4][P]=100; cout<<"数组A的所有元素是:"<<endl; for(i=0;i<5;i++) for(j=0;j<5;j++) { cout<<A[i][j]<<setw(6); if((5*i+j+1)%5==0) cout<<'\n'; } intpp=0; for(x=0;x<100;x++) { do { for(i=0;i<5;i++) for(j=0;j<5;j++) BJ[i][j]=A[i][j]; for(i=1;i<4;i++) for(j=1;j<4;j++) A[i][j]=BJ[i][j]+(d[x]/4)*(BJ[i+1][j]+BJ[i][j+1]+A[i-1][j]+A[i][j-1]-4*BJ[i][j]);//迭代公式 for(i=1;i<4;i++) { for(j=1;j<4;j++) if(fabs(A[i][j]-BJ[i][j])<1e-5) pp++; }N++; }while(pp<=9); pp=0; for(i=0;i<3;i++) w[M][i+1]=A[1][i+1]; for(i=3;i<6;i++) w[M][i+1]=A[2][i-2]; for(i=6;i<9;i++) w[M][i+1]=A[3][i-5]; s[M]=N; M++; N=0; intP,Q;for(P=0;P<4;P++) for(Q=0;Q<5;Q++) A[P][Q]=0; for(P=0;P<5;P+