Jacobi迭代法解线性方程组

2019-07-08 23:14:48 浏览数 (3)

当线性方程组的规模比较大时,采用高斯消元法需要太多时间。这时就要采用迭代法求解方程组了。高斯消元法是一个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源代码

0 人点赞