雅可比迭代实验报告
雅可比迭代法求解线性方程组的实验报告
一、实验题目
分别利用雅可比迭代法和高斯-塞德尔迭代法求解以下线性方程组:
10x1 x2 2x3 7.2 x1 10x2 2x3 8.3 x x 5x 4.223 1
使得误差不超过 0.00001。
二、实验引言
1.实验目的
①掌握用迭代法求解线性方程组的基本思想和步骤,熟悉计算机fortran语言; ②了解雅可比迭代法在求解方程组过程中的优缺点。
2.实验意义
雅克比迭代法就是众多迭代法中比较早且较简单的一种,求解方便实用。
三、算法设计
1.雅可比迭代法原理:
设有线性方程组Ax=b 满足aii 0, 将方程组变形为: x=Bx+f, 则雅可比(Jacobi)迭代法是指X(k 1) Bxk f,即 由初始解逐步迭代即可得到方程组的解。 算法步骤如下:
(0)(0), ,xn步骤1.给定初始值x1(0),x2,精度e,最大容许迭代次数M,令k=1。
步骤2.对i=1,2,…,n依次计算
x1 (bj aijxj)/aii(aii 0,i 1,2, ,n)
j 1j in
ei |xi(1) xi(0)|
xi(1) xi(0)
步骤3.求出e max{ei},若e ,则输出结果xi(0)(i 1,2, ,n),停止计算。1 i n
否则执行步骤4.
步骤4.若k M,k 1 k,转步骤2继续迭代。若k M,表明迭代失败,停止计算。
2.算法流程图
四、程序设计
program jacobi
implicit none
integer::i,j
integer::k
save k
real,parameter::e=0.001
integer,parameter::n=3
real::x(n),y(n),b(n)
data b/7.2,8.3,4.2/
real::D
real::a(n,n)
open (unit=10,file='1.txt')
data a/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
end forall
k=0
100 D=0
do i=1,n
y(i)=b(i)
do j=1,n
if(i/=j) y(i)=y(i)-a(i,j)*x(j)
end do
y(i)=y(i)/a(i,i)
end do
do j=1,n
D=abs(x(j)-y(j))
end do
forall(i=1:n)
x(i)=y(i)
end forall
if(D>=e) then
k=k+1
write(10,*)"迭代次数为:",k
goto 100
else
goto 200
end if
200 write(10,*)"****************************************"
write(10,*)"用jacobi方法解得的结果X[t]为:"
write(10,"(1x,3f6.2,/)")x(:)
stop
end program
五、结果及讨论
1.实验结果
**********矩阵A的形式为**********
10.00 -1.00 -1.00
-1.00 10.00 -1.00
-2.00 -2.00 5.00
迭代次数为: 1
迭代次数为: 2
迭代次数为: 3
迭代次数为: 4
迭代次数为: 5
迭代次数为: 6
迭代次数为: 7
****************************************
用jacobi方法解得的结果X[t]为:
1.10 1.20 1.30
2.讨论分析
(1)误差
从上述输出结果中可以看出,当迭代次数k增大时,迭代值x1,y1,z1 会越来越逼近方程组的精确解x=1.0,y=1.2,z=1.3。
(2)收敛性
在本题目中, 用雅可比迭代法和高斯-塞德尔迭代法分别求解该线性方程组,得到的近似根是收敛的
六、算法评价
优点:迭代法算法简单,编制程序比较容易。
缺点:迭代法要求方程组的系数矩阵有某种特殊性质(譬如是所谓对角占优阵)以保证过程的收敛性。高斯—塞德尔迭代法比雅可比迭代法收敛快(达到同样的精度所需迭代次数少),但这个结论,在一定条件下才是对的,甚至有这样的方程组,雅可比方法收敛,而高斯—塞德尔迭代法却是发散的。在雅可比迭代法求解线性方程组时,只要误差截断设计的合理,原则上可以得到很正确的解。而通常我们选取设计误差限或设计最大迭代次数的方法来控制。由于它的准确性,故在
实际应用中比较常见,对于解一般线性方程组非常有效准确。通过该算法以及编程对求解的过程,我们不难发现,雅克比迭代法的优点明显,计算公式简单,每迭代一次只需计算一次矩阵和向量的乘法,且计算过程中原始矩阵A始终不变,比较容易并行计算。然而这种迭代方式收敛速度较慢,而且占据的存储空间较大,所以工程中一般不直接用雅克比迭代法,而用其改进方法。
附:
高斯—赛德尔程序
program G-S
implicit none
integer::i,j
integer::k
save k
real,parameter::e=0.001
integer,parameter::n=3
real::x(n),y(n),b(n)
data b/7.2,8.3,4.2/
real::D
real::a(n,n)
open (unit=10,file='1.txt')
data a/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
end forall
k=0
100 D=0
do i=1,n
y(i)=b(i)
do j=1,n
if(i<j) y(i)=y(i)-a(i,j)*x(j)
if(i>j) y(i)=y(i)-a(i,j)*y(j)
end do
y(i)=y(i)/a(i,i)
end do
do j=1,n
D=abs(x(j)-y(j))
end do
forall(i=1:n)
x(i)=y(i)
end forall
if(D>=e) then
k=k+1
write(10,*)"迭代次数为:",k
goto 100
else
goto 200
end if
200 write(10,*)"****************************************" write(10,*)"用Gauss-seidel方法解得的结果X[t]为:" write(10,"(1x,3f6.2,/)")x(:)
stop
end program
**********矩阵A的形式为**********
10.00 -1.00 -1.00
-1.00 10.00 -1.00
-2.00 -2.00 5.00
迭代次数为: 1
迭代次数为: 2
迭代次数为: 3
迭代次数为: 4
****************************************
用Gauss-seidel方法解得的结果X[t]为:
1.10 1.20 1.30
…… 此处隐藏:1190字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [稿件大全]不忘初心牢记使命 党课演讲稿,忠诚干
- [稿件大全]节能环保演讲稿:给生命关怀
- [稿件大全]《麦田里的守望者》读书报告演讲稿
- [稿件大全]“五四”青年节演讲稿_弘扬“五四精神
- [稿件大全]建国70周年演讲稿:践行新使命 续航新
- [稿件大全]五四演讲稿:弘扬“五四精神”做一名逐
- [稿件大全]建国70周年演讲稿:我和我的祖国
- [稿件大全]高三演讲稿_用梦想点燃青春
- [稿件大全]关于禁毒演讲稿:“健康人生,绿色无毒
- [稿件大全]五四精神演讲稿:继续前行
- [稿件大全]党课演讲稿:以更好的精神状态肩负起新
- [稿件大全]护士演讲稿_做有温度的人,做有意义的
- [稿件大全]书记抓基层党建述职评议大会讲话稿
- [稿件大全]高三成人礼演讲稿:遇见最美的你
- [稿件大全]“五四”青年节演讲稿_传承五四精神 放
- [稿件大全]五四运动一百周年演讲稿:什么是“五四
- [稿件大全]纪念五四运动100周年演讲稿三篇
- [稿件大全]岗位竞选演讲稿
- [稿件大全]演讲稿:敢于担当 为命运掌舵
- [稿件大全]争先创优演讲稿:五心服务铸就五星梦想
- 毕业感言:六年相伴(合集16篇)(毕业
- 毕业三十年的聚会感言(共18篇)(毕业
- 转职能转方式转作风发言稿(精选9篇)(
- 教师比赛开场白(通用16篇)(教师比赛
- 婚礼上新人家长致辞(锦集15篇)(婚礼
- 秘书专业实习的自我总结(合集20篇)
- 高速公路票证员个人工作总结(锦集14篇
- 会计毕业实习报告总结及体会(通用12篇
- 收费站监控员年度个人总结(精选15篇)
- 秋季初中新学期开学第一周国旗下讲话稿
- 支部讨论会主持词(精选16篇)(支部讨
- 小朋友主持词开场白(通用19篇)(小朋
- 小班下学期保育员个人工作总结(精选12
- 工会主席在工会工作会议上的讲话(整理
- 幼儿园衔接班家长会发言稿(锦集18篇)
- 剪刀手爱德华台词(整理6篇)(剪刀手爱
- 国旗下的新年寄语讲话演讲稿(精选18篇
- 物业公司物管员个人总结(共16篇)(物
- 学校晚会主持串词(精选10篇)(学校晚
- 婚礼新人入场主持词(通用15篇)(婚礼




