0.背景
在上一章中,我们研究单变量方程的求解方法。在这一章中,将研究同时求解多个多变量方程,并将大量注意力放在未知变量个数和方程个数相同的问题上。
高斯消去法是求解合适规模的线性方程的有用工具。
1. 高斯消去法
高斯消去可以有效地求解具有n个未知数的n个方程。
高斯消去主要由两个不等同的部分组成,相对计算代价庞大的消去过程,和相对计算代价小的回代过程。
n个方程n个未知数的消去计算,可以在次操作后完成。
2. LU分解
LU分解是高斯消去的矩阵形式,它包含把系数矩阵A写做下三角矩阵L和上三角矩阵U的乘积。如果说高斯消去解决的问题为Ax=b,那么经过LU分解后该问题转化为LUx=b。
其中,U矩阵是由传统的高斯消去过程得到上三角矩阵,而对应的L矩阵则是:把1放在主对角线上,然后乘子按消去时它们的特定位置放在下三角矩阵得到。
如何利用LU分解转化回代步骤?
Ax=b ---> LUx=b --->c=Ux Lc=b 求c---> Ux=c 求x
因为L和U都是三角矩阵,这两步的运算非常直接。
为什么要进行LU分解?
一般我们遇到的Ax=b求解问题往往是一组不同问题,通常矩阵A为常量,而b经常变动,所以通过LU分解将b从包含A的计算中孤立出来,只进行一次消去过程,就能求解这类问题。
但是,并不是所有的矩阵都可以进行LU分解,我们需要在LU分解前做一些工作:部分主元。
3.误差
无穷范数
向量的无穷范数或者最大范数为,即x所有元素中的最大绝对值。
令是线性方程组的近似解,余项是向量.后向误差是余项的范数,前向误差是,相对后向误差是,相对前向误差
误差放大因子为:
矩阵的条件数
矩阵A的条件数cond(A)为求解Ax=b时,对于所有右侧向量b,可能出现的最大误差放大因子
矩阵范数
nxn矩阵A的矩阵范数为=每行元素绝对值之和的最大值,即对每行元素绝对值求和,并把n行求和的最大值作为矩阵A的范数。
令人惊讶的是,对于方阵有一个关于条件数的紧致的公式:
矩阵的1-范数
nxn矩阵A的矩阵1-范数是=最大绝对列和,即列向量的1-范数的最大值。
4.PA=LU分解
由于两个严重的障碍:0主元(导致消元无法进行)和淹没问题(乘子太大导致底部方程被抑制),之前我们考虑的高斯消去法称为“朴素”问题。对于一个非奇异矩阵,二者可以通过改进算法避免。改进策略的重点是交换系数矩阵的行,该方法称为部分主元。
部分主元
部分主元的思想是在每一步消除步骤之前,找到第一列中最大的一个元素,其对应行和主元行进行交换,即PA=LU。其中P为每步进行主元选择最终累计的置换矩阵。
运用部分主元法就讲Ax=b问题进一步转化为PAx=Pb -->LUx=Pb
再由Lc=Pb得到c,Ux=c得到x.
高斯列主元法的优势在于它有一个选主元的过程,这样做可以避免程序在进行消去操作时选取的主元素为0的情况,也减小了计算的舍入误差,从而提高了程序的普适性和结果的准确性。
5.迭代方法
高斯方法是求解线性方程组的直接方法。理论上,直接方法在有穷步里可以得到精确解。
迭代方法也可以用来求解线性方程组系统,和不动点迭代类似,方法从初始估计开始,然后在每步中不断精化估计,最后收敛到解向量。
雅可比方法
雅可比方法是方程组系统中的一种形式的不动点迭代。
雅可比方法按照如下标准方式进行:
求解第i个方程得到第i个未知量;
然后使用不动点迭代,从初始估计开始,进行迭代。
但是雅可比方法并不总能成功得到解,了解该方法可以工作的条件有助于我们的理解。
首先来了解一下严格对角占优矩阵的概念。
严格对角占优矩阵的定义
对角元素在对应行占优,其对应值(绝对值)在数量上比该行其他元素的和还要大。
严格对角占优矩阵的性质
如果nxn矩阵A是严格对角占优矩阵,则A:
1)是非奇异矩阵;
2)对于所有向量b和初始估计,对Ax=b应用雅可比方法都能收敛到唯一解。
雅可比具体算法
矩阵A可以写成A=L+D+U,求解方程可以写为Lx+Dx+Ux=b可进一步化为
则雅可比迭代过程为:
=初始向量;
高斯-塞德尔方法
高斯-塞德尔方法和雅可比方法的差异在于,高斯-塞德尔方法更新的未知变量的值在每一步总都使用更新,即使更新发生在当前步骤。
高斯-塞德尔方法迭代过程为:
=初始向量;
连续过松弛方法(SOR)
连续过松弛方法使用高斯-塞德尔方法的求解方向,并使用过松弛加快收敛速度。
SOR可看作将Ax=b乘上w并重新组织方程: