数值计算——线性方程组的迭代法
与上一篇中的直接法相比,迭代法是从解的一个初始估计值除法,逐步对他进行改进,知道到达所需的精度,理论上来说,经过无限次的迭代之后就可以得到真解,但实际上只需要达到所需要的精度即可。下面是几种迭代法:
- 雅克比方法
- 高斯-赛德尔方法
- 逐次超松弛法
使用迭代法的关键在于
:
-
- 确定迭代变量:在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
- 确定迭代关系式:所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以顺推或倒推的方法来完成。
- 对迭代过程进行控制:在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。
一、雅克比方法
首先将方程组
中的系数矩阵
A
分解成三部分,即:
A = L+D+U
,如图所示,