迭代法解方程原理

如题所述

当线性方程组的规模比较大时,采用高斯消元法需要太多时间。这时就要采用迭代法求解方程组了。

高斯消元法是一个O(n^3)的浮点运算的有限序列,在经过有限步计算之后理论上得到的是精确解(无舍入误差时)。

而迭代法在经过有限步迭代之后一般不产生精确解,迭代法在计算过程中逐渐减小误差,当误差小于容许值时停止迭代计算。方程组的系数矩阵是严格对角占优矩阵时,迭代总是收敛的。

●Jacobi迭代法

对于方程组3u+v=5,u+2v=5,将其改写为如下的形式

由于方程组的系数矩阵是严格对角占优矩阵时,迭代一定收敛。使用初值[u0,v0]=[0,0]开始迭代,以下是迭代过程:

继续迭代过程最终会收敛到解[1,2].这个迭代过程就是Jacobi迭代。

对于方程组u+2v=5,3u+v=5,由于方程组的系数矩阵不是严格对角占优矩阵时,因此迭代不收敛。来看迭代过程:

设D表示系数矩阵A 的主对角部分,L表示A的主对角线下方部分,U表示A的主对角线上方部分。则A=D+L+U,AX=b可改写为

对于上面的方程组3u+v=5,u+2v=5,写成矩阵形式

迭代格式为

这与之前的迭代格式是一致的。

Fortran源代码
温馨提示:答案为网友推荐,仅供参考