好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

实验一用超松弛迭代法求解接地金属槽

内电位分布

一、实验内容:

试用超松弛迭代法求解接地金属槽内电位的分布。 已知:a?4cm,h?a/4?10mm 给定边值如图所示。 给定初值:?i(,0j)?0 误差范围:??10?5 计算迭代次数,?i,j分布。

一.实验思路

由边界条件用泊松方程的五点差分格式求得中央点的点位。再以所得点及边界再次利用泊松方程的五点差分格式求出另四个点,依照此方法求出其余点的电位分布。 用最佳收敛因子的经验公式计算收敛因子。

利用超松弛迭代法进行差分方程的求解,当遇到边界是采用边界值或者边界差分格式。直到所有节点电位满足误差条件。

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

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

编程时将边值编入到程序中,这样可以省略输入,从而直接输入迭代因子进行求解,可以减少编程的难度。

迭代时所用公式是和书上一样,为

a[i][j]=b[i][j]+w/4*(b[i+1][j]+b[i][j+1]+a[i][j-1]+a[i-1][j]-4*b[i][j]); 其中a代表k+1,而b代表k。

启动 输出开始菜单 (边值都已经给定) 输入迭代因子w 迭代次数n=0 n++ 开始循环迭代 函数判断相邻二次差值是否小于给定值 输出n,电位a[i][j] 终止

三、程序运行界面及结果

四.源程序代码

#include #include #include using namespace std;

classoverrei //over-relaxation iterative method {

private: intm,n; doublex,e; double **p,**q; public:

int k;

overrei(int m0,int n0,double e0) { inti; e=e0; k=0; m=m0; n=n0; p=new double *[m]; for(i=0;i

//迭代因子求解

for(i=0;i

x=2/(1+sin(3.141592654/(m-1))); else x=2-3.141592654*sqrt(2)*sqrt(1/((m-1)*(m-1))+1/((n-1)*(n-1))); cout<<\最佳收敛因子:\

if(m==n) }

void Initialization(); //赋边界条件 void Cal(); //计算 void Diedai(); //迭代函数 void Show(); //输出部分 };

void overrei::Initialization() //赋边界条件 { inti,j; for(i=0;i

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

实验一用超松弛迭代法求解接地金属槽内电位分布一、实验内容:试用超松弛迭代法求解接地金属槽内电位的分布。已知:a?4cm,h?a/4?10mm给定边值如图所示。给定初值:?i(,0j)?0误差范围:??10?5计算迭代次数,?i,j分布。一.实验思路由边界
推荐度:
点击下载文档文档为doc格式
6nbyn6eqt20n19a8i5la
领取福利

微信扫码领取福利

微信扫码分享