- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
科学计算—理论、方法
及其基于MATLAB的程序实现与分析
三、 解线性方程组的迭代法(Iteration)
线性方程组的理论求解公式
(1)
在应用于实际问题的计算时,通常面临两方面的问题
1、计算过程复杂,
2、不能保证算法的稳定性;
此外,当初始数据(可能)存在误差时,按公式(1)即使求出了“精确解”意义也不大,因此,对于存在初始数据误差、特别是大型的线性方程组求解,需要寻求能达到精度要求的、操作和计算过程相对简单的求解方法。下面将要介绍的迭代法就属于这类方法。
迭代法求解线性方程组的基本思想是
不追求“一下子”得到方程组的解,而是在逐步逼近方程组的精确解的迭代过程中获得满足精度要求的近似解,这一点与直接法不同;
通过对问题的转化,避免(困难的)矩阵求逆运算。
用迭代法求解线性方程组,首先要把线性方程组写成等价的形式
(2)
式(2)的右端称为迭代格式,由迭代格式(2)确定如下的迭代算法:
(3)
对于给定的线性方程组,可以写成不同的(无穷多)迭代格式,有意义的(可用的)迭代格式应具有收敛性―生成的解向量序列收敛于方程组的解;而好的迭代法应具有较高的收敛速度。
关于迭代法收敛性的两个判别条件:
a、充分必要条件是:矩阵的谱半径
b、充分条件是:矩阵的某个算子范数。
设是方程组(2)的解,是迭代法(3)生成的任一序列,因为
,
所以
(4)
设,其中矩阵是矩阵的Jordan标准型,那么容易验证,并且
(5)
此外,因为
(6)
所以
(7)
注:迭代格式(2)所确定的迭代法收敛与否,完全由系数矩阵决定,而与常数项无关.
常用的迭代法
1、Jacobian 迭代法:
(8)
例1 解下面方程组(精确解为).
解 1) 改写成等价形式
2) 构造迭代公式,即为雅可比迭代公式
3) 取初始向量,即代入上式,求出
.
再代回公式中,求出
,
,
.
依次迭代,计算结果如表4-1.
表4-1 雅可比方法的数值结果
0
1
2
3 0
1.4
1.11
0.929 0
0.5
1.20
1.055 0
1.4
1.11
0.929 4
5
6
7 0.9906
1.01159
1.000251
0.99824 0.9645
0.9953
1.005795
1.000126 0.9906
1.01159
1.000251
0.99824
Example intera_j.m
itera_j
2、Gauss-Seidel 迭代法:
(9)
根据GS迭代法(9),可进一步得到
(10)
即
(11)
式(11)表明:Gauss-Seidel 迭代法在计算第个迭代值时,及时地利用了在此步迭代中得到的新的迭代值:,,由于第步的迭代值通常比第步的迭代值更接近方程组的精确解,所以,在Jacobian迭代法和Gauss-Seidel迭代法都收敛的情况下,Gauss-Seidel迭代法的收敛速度比Jacobian迭代法的收敛速度快。
例2 解下面方程组(与例1相同,精确解为).
解 1) 原方程组改为等价方程组
.
构造迭代公式,即为高斯-赛德尔迭代公式
.
3) 取初始向量,即代入上式,求出
,
,
.
迭代计算下去,得表4-2.
表4-2 G-S方法的数值结果
0
1
2 0
1.4
1.0634 0
0.78
1.02048 0
1.026
0.987516 3
4
0.995104
1.00123
0.995275
1.00082
1.0019
0.99963
Example itera_gs.m
itera_gs
对Gauss-Seidel迭代法做进一步的研究,式(9)还可以写成如下的形式:
(12)
即Gauss-Seidel迭代法是在Jacobian迭代法的基础上增加了一个修正项:
并且这个修正项起到了加速的作用,受这一事实的启发,为获得更快的收敛速度,我们对Gauss-Seidel迭代法再做进一步的研究
(13)
式(13)表明Gauss-Seidel迭代法的第步迭代值是在第步迭代值的基础上增加了一个修正项:
(14)
并且这个修正项使第步迭代值更接近方程组的精确解,受这一事实的启发,我们希望通过用一个适当的因子乘修正项(14)的办法达到获得更快收敛速度的目的:
文档评论(0)