线性方程组 |
您所在的位置:网站首页 › 线性方程组迭代求解 › 线性方程组 |
0 迭代法与直接法的对比 继续讨论线性方程组 的求解方法。 之前所讨论的Gauss消去/LU分解之类的方法是直接对矩阵求解,我们称其为直接法。LU分解后的求解复杂度为 ,对于 变化且 稠密的小规模问题有较好的表现。 现在我们面对的是大规模的 ,可能有几十万几百万阶。而分解矩阵的复杂度为 ,对这种规模的矩阵已经难以适用了。实际应用中, 经常是大规模且稀疏的,我们引入迭代法,能够将求解的复杂度直接降低到 。例如 每行只有5个非零元,迭代法求解过程中每步迭代需要 次乘法,若 很大且收敛较快,总体复杂度只有 。 直接法和迭代法有何本质区别? 假设我们已知 的精确解是 。直接法顾名思义,就是直接找到 本身。而迭代法是通过多步迭代,找到 的一个近似: ,使得误差在允许范围内(如 ):迭代法会把原方程改造为等价的某种迭代形式,然后逐步迭代求解,得到解序列: 原理上只要解序列收敛,则一定能在有限步内找到满足误差精度的近似解。如何利用范数判断向量序列收敛的方法已经在线性方程组-迭代法 0.1:范数与谱半径中讲过。 1 迭代法一般求解过程1.1 迭代形式假设 为: 我们将其改写为 这样原式 就变成了: 显然这种改写是和原式完全等价的。(1)式等号两边都有未知量 ,我们就可以由右边的 计算出左边新的 ,即一步迭代。我们把(1)称为原线性方程组的迭代形式。迭代形式是必然存在的,例如 , 为任意常数。 1.2 求解过程利用迭代形式进行迭代法求解的过程为: 把原式 改写为迭代形式 ;给定任意初始值 ,代入迭代形式;迭代求解: 得到解序列 直到解序列收敛于某个值。注意,迭代法得到的解序列不一定是收敛的,也可能发散,此时迭代法失效。 2 迭代格式的收敛条件2.1 收敛条件分析如果迭代法产生的解序列满足: 则称该迭代法收敛,若不满足则发散。例如最开始的例子就不收敛。 那么如何判断 是否收敛呢?首先对解的误差进行分析。假设精确解为 ,定义第 步迭代的误差向量为: 则收敛表达式(3)等价于: 显然精确解满足迭代形式: (4)与迭代格式 合并得: 即: 其中 为初始误差, 为第 步迭代的误差。 由(5)式可以看出,误差只和矩阵 有关系。这意味着迭代形式中的 完全决定了该迭代法的收敛与否。下面就研究 矩阵与迭代法收敛性的关系,并引出收敛定理。 2.2 收敛定理根据(5),可以得出迭代法的收敛定义为: 根据向量范数的性质“任一种范数收敛等价于该向量序列收敛”可得: 对(7)应用范数的不等式: 由(8)可知,如果存在一种矩阵范数 ,则一定收敛。 由线性方程组-迭代法 0.1:范数与谱半径中引入的谱半径与范数的关系可知,从数值计算角度,谱半径就是最小的矩阵范数。因此迭代法是否收敛就取决于 的谱半径 是否小于1。 收敛定理 对于迭代形式 中的矩阵 ,如下四个命题等价: 迭代形式 对任意初值 收敛; ;存在某种范数 满足 ;对任意矩阵范数: 即 收敛到零矩阵: 。其中第4条可由第3条结合矩阵范数的性质“任意两种范数是等价的”推出。首先放缩: , 由范数等价性:存在某正数 满足 根据夹逼准则,当 , ,证毕。2.3 误差估计下面推导随着迭代步数 的增长,误差 是如何变化的。 假设已经找到了某种范数满足 ,根据迭代格式(5):
对(8)取范数并放缩: 代入 得: 红色部分表明我们可以利用 和初始误差估计当前步的误差; 蓝色部分表明我们可以通过前后两步结果的差值来估计当前误差,来确定是否收敛。这种方式更常用,可在迭代每一步进行收敛判定。 把两种估计方式稍加整理,就推出了误差估计的两种范式: 先验估计: 意味着 越小,收敛越快。当然真正计算 代价是很大的,并且我们也并不知道真正的解 ,这种估计方法只是理论上成立。后验估计: 意味着第 步的误差可以通过第 步和第 步结果的差值来估计,在计算中是更有意义的。实际中计算 (计算 的谱半径)是不现实的,因此最常用的收敛判断方法是残差法: 残差法:定义第 步的残差 ,即: 残差的计算十分简单的。这给出了一个实用的估计方法:可以认为残差是真实误差的倍数( 数值上可认为是 的谱半径倍),当残差较小时,就可以认为误差较小。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |