有限差分法实验报告参考Word文档下载推荐.docx
- 文档编号:17812052
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:8
- 大小:116.38KB
有限差分法实验报告参考Word文档下载推荐.docx
《有限差分法实验报告参考Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《有限差分法实验报告参考Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
二、实验思想
有限差分法
有限差分法(FiniteDifferentialMethod)是基于差分原理的一种数值计算法。
其基本思想:
将场域离散为许多小网格,应用差分原理,将求解连续函数
的泊松方程的问题转换为求解网格节点上
的差分方程组的问题。
泊松方程的五点差分格式
当场域中
得到拉普拉斯方程的五点差分格式
差分方程组的求解方法
(1)高斯——赛德尔迭代法
(1-14)
式中:
迭代顺序可按先行后列,或先列后行进行。
迭代过程遇到边界节点时,代入边界值或边界差分
格式,直到所有节点电位满足
为止。
(2)超松弛迭代法
(1-15)
——加速收敛因子
可见:
迭代收敛的速度与
有明显关系
三、程序源代码
#include<
iostream.h>
math.h>
iomanip.h>
doubleA[5][5];
voidmain(void)
{
doubleBJ[5][5];
//数组B用于比较电势
ints[100];
//用于储存迭代次数
doubled[100];
//用于记录所有的加速因子
d[0]=1.0;
inti,j,N=0,M=0,x;
for(i=0;
i<
100;
i++)
d[i]=0.01*i+d[0];
//加速因子从1.0到2.0之间的20个数!
doublew[100][10];
intP,Q;
for(P=0;
P<
4;
P++)
for(Q=0;
Q<
5;
Q++)
A[P][Q]=0;
A[4][P]=100;
cout<
<
"
数组A的所有元素是:
endl;
i++)
for(j=0;
j<
j++)
{
cout<
A[i][j]<
setw(6);
if((5*i+j+1)%5==0)
cout<
'
\n'
;
}
intpp=0;
for(x=0;
x<
x++)
do
{
for(i=0;
for(j=0;
BJ[i][j]=A[i][j];
for(i=1;
for(j=1;
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;
{
for(j=1;
if(fabs(A[i][j]-BJ[i][j])<
1e-5)
pp++;
}
N++;
}while(pp<
=9);
pp=0;
for(i=0;
3;
w[M][i+1]=A[1][i+1];
for(i=3;
6;
w[M][i+1]=A[2][i-2];
for(i=6;
9;
w[M][i+1]=A[3][i-5];
s[M]=N;
M++;
N=0;
intmin=s[0];
intp,q;
输出所有的加速因子的迭代次数:
for(q=1;
q<
q++)
//cout<
s[q]<
//if(q%12==0)
if(min>
s[q])
{
min=s[q];
p=q;
}
if(min==s[0])
p=0;
最佳加速因子a="
d[p]<
迭代次数为:
min<
最佳收敛因子对应的各个格内点的电位为:
for(i=1;
10;
{
w[p][i]<
\t'
if(i%3==0)
}
四、程序框图
迭代解程序框图
五、结果分析
迭代收敛的速度与
的关系
收敛因子(
)
1.0
1.7
1.8
1.83
1.85
1.87
1.90
2.0
迭代次数(
>
1000
269
174
143
122
133
171
发散
最佳收敛因子的经验公式:
(正方形场域、正方形网格)
(矩形场域、正方形网格)
程序执行结果如下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限 差分法 实验 报告 参考
![提示](https://static.bdocx.com/images/bang_tan.gif)