雅可比迭代c++实现_线性方程组(3)-静态迭代法

c750f2a37a9bdd3e3a564e7445e75db2.png

上一节讲到直接解法有误差积累和破坏矩阵稀疏性的问题。

实际中应用较广泛的是解法通常是迭代法。相比直接解法,迭代解法在高性能并行实现上拥有很大的优势。但是,在此之前先要确定迭代法能否在可以接受的步数之内收敛。

不严谨地说,迭代法收敛性的大致趋势是:对于常用的大多数迭代法,矩阵的条件数越小收敛越快。

常用的迭代终止条件有:

等,
的选取取决于对解的精度要求。

静态迭代法(stationary iterative methods)是指形如

的迭代法。因为

不随迭代步数而变化,所以叫静态迭代法。这里介绍三种静态迭代法:雅可比法(Jacobi method)、高斯-赛德尔法(Gauss-Seidel method)和松驰法(successive relaxation method)。

静态迭代法收敛的充分条件是,存在算子范数

,使得
;更直观的一个充分条件是,
的最大特征值的模小于

雅可比法

一个线性方程组的第

个方程是

假设除了

以外的所以未知数都已被解出,那么

即可推导出迭代法

若将矩阵

分解为三部分
,其中
为不包括对角线的下三角部分,
为对角线,
为不包括对角线的上三角部分;则雅可比法可写成矩阵形式

高斯-赛德尔法

在雅可比法中,新值是用旧值代入解出的,而我们通常认为新值比旧值更接近精确解。如果

是按顺序依次计算的,那么在计算
时可以用前面已经计算出来的
个新值,即

高斯-赛德尔法也可以写成矩阵形式

高斯-赛德尔法还有其反向形式,即先计算

,再计算
,迭代公式为

矩阵形式

雅可比法与高斯-赛德尔法的总结与比较

雅可比法和高斯-赛德尔法收敛的一个充分条件是系数矩阵

严格对角占优或不可约弱对角占优。

高斯-赛德尔法由于使用了新值,收敛性比雅可比法好。但是前面提到,

是按顺序依次计算的,这就使得高斯-赛德尔法的并行性有限,从而迭代一步的计算时间比雅可比法要长。

松驰法

高斯-赛德尔法迭代公式可写为

将这个变化量乘上松弛因子

,得到

松弛法中的

可以证明,其最大特征值的模

,所以应该选取
。在实际应用中通常取
时收敛较快,这个条件下的松弛法又称为超松驰法(successive over-relaxation method)。

静态迭代法的迭代式又可以写为

在这里雅克比法和高斯-赛德尔法分别取

其实在此基础上任选

都能构造一种静态迭代法,例如后面要提到的不完全LU分解等更精确的方法。不过在不完全LU分解法出现时,已经有收敛更快的克雷洛夫子空间法,静态迭代法因收敛性不足而逐渐被取代。这里为何还要讲静态迭代法呢?这些
的近似方法,在克雷洛夫子空间法中还会用到,这个之后会讲到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值