雅可比迭代实验报告.docx
- 文档编号:14756868
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:9
- 大小:133.44KB
雅可比迭代实验报告.docx
《雅可比迭代实验报告.docx》由会员分享,可在线阅读,更多相关《雅可比迭代实验报告.docx(9页珍藏版)》请在冰点文库上搜索。
雅可比迭代实验报告
雅可比迭代实验报告
雅可比迭代法求解线性方程组的实验报告
一、实验题目
分别利用雅可比迭代法和高斯-塞德尔迭代法求解以下线性方程组:
使得误差不超过0.00001。
二、实验引言
1.实验目的
掌握用迭代法求解线性方程组的基本思想和步骤,熟悉计算机fortran语言;
了解雅可比迭代法在求解方程组过程中的优缺点。
2.实验意义
雅克比迭代法就是众多迭代法中比较早且较简单的一种,求解方便实用。
三、算法设计
1.雅可比迭代法原理:
设有线性方程组Ax=b满足
将方程组变形为:
x=Bx+f,则雅可比(Jacobi)迭代法是指
,即由初始解逐步迭代即可得到方程组的解。
算法步骤如下:
步骤1.给定初始值
,精度e,最大容许迭代次数M,令k=1。
步骤2.对i=1,2,…,n依次计算
步骤3.求出
,若
,则输出结果
,停止计算。
否则执行步骤4.
步骤4.若
转步骤2继续迭代。
若
表明迭代失败,停止计算。
2.算法流程图
四、程序设计
programjacobi
implicitnone
integer:
:
i,j
integer:
:
k
savek
real,parameter:
:
e=0.001
integer,parameter:
:
n=3
real:
:
x(n),y(n),b(n)
datab/7.2,8.3,4.2/
real:
:
D
real:
:
a(n,n)
open(unit=10,file='1.txt')
dataa/10,-1,-1,-1,10,-1,-2,-2,5/
write(10,*)"**********矩阵A的形式为**********"
write(10,"(1x,3f6.2,/)")a
forall(i=1:
n)
x(i)=0
endforall
k=0
100D=0
doi=1,n
y(i)=b(i)
doj=1,n
if(i/=j)y(i)=y(i)-a(i,j)*x(j)
enddo
y(i)=y(i)/a(i,i)
enddo
doj=1,n
D=abs(x(j)-y(j))
enddo
forall(i=1:
n)
x(i)=y(i)
endforall
if(D>=e)then
k=k+1
write(10,*)"迭代次数为:
",k
goto100
else
goto200
endif
200write(10,*)"****************************************"
write(10,*)"用jacobi方法解得的结果X[t]为:
"
write(10,"(1x,3f6.2,/)")x(:
)
stop
endprogram
五、结果及讨论
1.实验结果
**********矩阵A的形式为**********
10.00-1.00-1.00
-1.0010.00-1.00
-2.00-2.005.00
迭代次数为:
1
迭代次数为:
2
迭代次数为:
3
迭代次数为:
4
迭代次数为:
5
迭代次数为:
6
迭代次数为:
7
****************************************
用jacobi方法解得的结果X[t]为:
1.101.201.30
2.讨论分析
(1)误差
从上述输出结果中可以看出,当迭代次数k增大时,迭代值x1,y1,z1
会越来越逼近方程组的精确解x=1.0,y=1.2,z=1.3。
(2)收敛性
在本题目中,用雅可比迭代法和高斯-塞德尔迭代法分别求解该线性方程组,得到的近似根是收敛的
六、算法评价
优点:
迭代法算法简单,编制程序比较容易。
缺点:
迭代法要求方程组的系数矩阵有某种特殊性质(譬如是所谓对角占优阵)以保证过程的收敛性。
高斯—塞德尔迭代法比雅可比迭代法收敛快(达到同样的精度所需迭代次数少),但这个结论,在一定条件下才是对的,甚至有这样的方程组,雅可比方法收敛,而高斯—塞德尔迭代法却是发散的。
在雅可比迭代法求解线性方程组时,只要误差截断设计的合理,原则上可以得到很正确的解。
而通常我们选取设计误差限或设计最大迭代次数的方法来控制。
由于它的准确性,故在实际应用中比较常见,对于解一般线性方程组非常有效准确。
通过该算法以及编程对求解的过程,我们不难发现,雅克比迭代法的优点明显,计算公式简单,每迭代一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A始终不变,比较容易并行计算。
然而这种迭代方式收敛速度较慢,而且占据的存储空间较大,所以工程中一般不直接用雅克比迭代法,而用其改进方法。
附:
高斯—赛德尔程序
programG-S
implicitnone
integer:
:
i,j
integer:
:
k
savek
real,parameter:
:
e=0.001
integer,parameter:
:
n=3
real:
:
x(n),y(n),b(n)
datab/7.2,8.3,4.2/
real:
:
D
real:
:
a(n,n)
open(unit=10,file='1.txt')
dataa/10,-1,-1,-1,10,-1,-2,-2,5/
write(10,*)"**********矩阵A的形式为**********"
write(10,"(1x,3f6.2,/)")a
forall(i=1:
n)
x(i)=0
endforall
k=0
100D=0
doi=1,n
y(i)=b(i)
doj=1,n
if(i if(i>j)y(i)=y(i)-a(i,j)*y(j) enddo y(i)=y(i)/a(i,i) enddo doj=1,n D=abs(x(j)-y(j)) enddo forall(i=1: n) x(i)=y(i) endforall if(D>=e)then k=k+1 write(10,*)"迭代次数为: ",k goto100 else goto200 endif 200write(10,*)"****************************************" write(10,*)"用Gauss-seidel方法解得的结果X[t]为: " write(10,"(1x,3f6.2,/)")x(: ) stop endprogram **********矩阵A的形式为********** 10.00-1.00-1.00 -1.0010.00-1.00 -2.00-2.005.00 迭代次数为: 1 迭代次数为: 2 迭代次数为: 3 迭代次数为: 4 **************************************** 用Gauss-seidel方法解得的结果X[t]为: 1.101.201.30
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可比 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)