本文摘要(由AI生成):
本文讨论了线性方程组求解的两种方法:高斯消元法和迭代法。当方程组规模较大时,高斯消元法耗时较长,因此采用迭代法。迭代法通过有限步迭代逐渐减小误差,得到近似解。对于系数矩阵为严格对角占优矩阵的方程组,迭代法收敛。文章以Jacobi迭代法为例,展示了迭代求解过程,并给出了Fortran源代码。此外,文章还回顾了严格对角占优矩阵、高斯消元法及其算法改进的相关内容。
当线性方程组的规模比较大时,采用高斯消元法需要太多时间。这时就要采用迭代法求解方程组了。高斯消元法是一个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源代码
☆☆☆ 往期相关 ☆☆☆