工程电磁场 超松弛迭代报告Word下载.docx
- 文档编号:19307799
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:7
- 大小:55.25KB
工程电磁场 超松弛迭代报告Word下载.docx
《工程电磁场 超松弛迭代报告Word下载.docx》由会员分享,可在线阅读,更多相关《工程电磁场 超松弛迭代报告Word下载.docx(7页珍藏版)》请在冰豆网上搜索。
试用超松弛迭代法求解接地金属槽内的电位分布
已知:
a=4cm,h=a/4=10mm
给定边值:
当a=4cm时,φ=100,其余部分,φ=0
给定初值:
φ(i,j)=0
误差范围:
e=10^-5
计算:
迭代次数n=?
Φ(i,j)分布
2.实验思路:
1.定义两个5*5的矩阵作为第k次和第k+1次的结果的空间
2.给两个矩阵同时定义相同的初始值
3.使收敛因子从1~2以+0.01的速度来循环查找最小的收敛因子,每轮循环开始迭代的时候n都要重新赋值为0,两个矩阵也要重新赋值为初始值
4.将其中一个矩阵定义为第k次迭代的矩阵,将前一次的迭代结果赋值给它
5.将另一个矩阵定义为第k+1次迭代的矩阵,利用上一次迭代的结果进行本次迭代
6.每迭代一次,迭代加一
7.当两个矩阵各电位点的差值>
e^-5时,继续迭代,当两个矩阵各电位点的差值<
e^-5时,结束迭代
8.对比之前最少的迭代次数和本次的迭代次数,选取其中的较小值作为样本和下次的迭代次数进行比较,并记录本次的收敛因子
9.其中,寻找出和公式结果相等的收敛因子的迭代次数与找出的最小迭代次数和其收敛因子作比较
10.输出找到的最少的迭代次数和其所使用的收敛因子
11.输出迭代后各点电位的值
3.程序清单:
1.循环寻找最小迭代次数收敛因子的程序
#include<
iostream.h>
math.h>
voidmain()
{doublea[5][5],b[5][5];
inti,j,h,n,m=5000;
doublep,q;
for(i=0;
i<
5;
i++)
for(j=0;
j<
j++)
{if(i==0)
a[i][j]=100;
else
a[i][j]=0;
}
cout<
<
"
迭代前各电位点上的初始值"
endl;
{for(j=0;
{cout<
a[i][j]<
\t"
;
}
cout<
for(p=1;
p<
=2;
p=p+0.01)
{n=0;
for(i=0;
for(j=0;
{if(i==0)
a[i][j]=100;
else
}
do
{for(i=0;
{for(j=0;
b[i][j]=a[i][j];
for(i=1;
4;
{for(j=1;
{a[i][j]=b[i][j]+p*(b[i+1][j]+b[i][j+1]+a[i-1][j]+a[i][j-1]-4*b[i][j])/4;
}
{if(fabs(a[i][j]-b[i][j])>
1e-5)
{h=1;
break;
elseh=0;
n++;
while(h);
if(n<
m)
{m=n;
q=p;
if(p==1.01)
{cout<
当收敛因子为2/(1+sin(π/a))时,迭代次数为"
n<
当收敛因子为"
q<
时"
迭代次数最少,为"
m<
迭代后各电位点上的结果值"
{{for(j=0;
cout<
2.手动输入迭代因子比较的程序
iomanip.h>
inti,j,h,n=0;
doublem,p=1.18;
收敛因子"
迭代次数"
4.结果分析:
最佳收敛因子的经验公式p=2/(1+sin(π/a))在本题中并非最少迭代次数的收敛因子,经验公式求得的只是一个大概的范围,用for循环以+0.01的速度寻找出,当收敛因子为1.18时,迭代次数最少,为10次,我们将程序拆分开,去掉for循环的寻找,手动定义收敛因子的时候,发现在收敛因子最大的差值不超过1的情况下,迭代次数的差距最大达到130倍,因此,选择合适的迭代因子有助于高效率地完成迭代得到结果值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工程电磁场 超松弛迭代报告 工程 电磁场 松弛 报告