本文最后更新于:2022年7月27日 凌晨
线性方程组解法
ps 意识到写这个东西比较费时间。。收益比不太高。。所以打算随着自己性子写了。。指此类的只给自己总结看了。。随性有的写一些证明
1_Gauss消去法
简单介绍两种Gauss消去法
顺序Gauss消去法
对于一线性方程组,可将其转化为增广矩阵表示如下:
A~=[A,b]=⎣⎢⎢⎢⎢⎢⎢⎡a11a21⋮an1a12a22⋮an2⋯⋯⋯a1na2n⋮ann⋮⋮⋮⋮a1,n+1a2,n+1⋮an,n+1⎦⎥⎥⎥⎥⎥⎥⎤
通过不断消元后得到上三角矩阵,再进行回代求解**x**
A~≈⎣⎢⎢⎢⎢⎢⎢⎡a110⋮0a12a22⋱⋯⋯⋯⋱0a1na2n⋮ann⋮⋮⋮⋮a1,n+1a2,n+1⋮an,n+1⎦⎥⎥⎥⎥⎥⎥⎤
以上即是顺序Gauss消去法的主要内容
其可运行的条件为
定理2.1 其前n−1个主元素均不为零的充要条件是系数矩阵的前n−1个顺序主子式不为零
列主元的Gauss消去法
相比于顺序Gauss消去法,列主元方法便是多了一步交换操作,在第k次消元前,对增广炬阵[A(k),b(k)]做第一种初等行变换(交换两行),将绝对值最大的元素交换到第k行的主对角线位置上。
主要是为了增加数值稳定性,相较于有更好的精度,易知计算量与顺序Gauss消去法相同
定理2.2设方程组的系数矩阵非奇异,则用列主元Gauss消去法求解时,各个列主元均不为零
可见列主元的Gauss消去法的条件也比上述更宽泛,只要求系数矩阵非奇异即可运行
2_直接三角分解法
Doolittle分解法与Crout分解法
易知任意一个矩阵有LU分解使得A=LU,其中L是上三角矩阵,U是下三角矩阵
此时对于方程Ax=y⇒Ly=b,Ux=y,两步对比较容易求解的三角矩阵得到x,
定理2.3 矩阵A有唯一的Doolittle分解的充要条件是系数矩阵的前n−1个顺序主子式不为零
值得一提的是,此分解与Gauss消元基本是等价的只是不同表示
其大体表示如下:
A=LU=⎣⎢⎢⎢⎡1l21⋮ln11⋱⋯⋱ln,n−11⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡u11u12u22⋯⋯⋱u1nu2n⋮unn⎦⎥⎥⎥⎤
而后就可以找到矩阵的分解计算公式
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧k=1,2,⋯,nukj=akj−r=1∑k−1lkrurj(j=k.k+1,⋯,n)lik=(aik−r=1∑k−1litutk)/ukk(i=k+1,⋯,n)
此外对于Crout分解与Doolittle分解类似,只是一些细节的变化,基本原理相同,此处不多赘述
A=L~U~=⎣⎢⎢⎢⎡l11⋮ln1⋱⋯lnn⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡1u12⋱⋯⋱⋱u1n⋮un−1,n1⎦⎥⎥⎥⎤
对于分解法同样有对应的列主元法,通过交换主元来实现分解
定理2.4若矩阵A非奇异,则存在置换矩阵Q使得QA可做Doolittle分解QA=LU
2.3 矩阵的条件数与病态方程组
2.3.1 矩阵的条件数
- 条件数:对于任何精确的数据,存入计算机中也往往受到限制变为近似数,研究因变量与系数矩阵有了微小变化使得最终解向量的变化相关的量称为矩阵A的条件数
定理2.6 设A, ΔA∈Rn×n,b,Δb∈Rn,A非奇异,b=0,x是方程组Ax=b的解向量。若有∣∣A∣∣<∣∣A−1∣∣1则
-
方程组(A+ΔA)(x+Δx)=b+Δb 有唯一解x+Δx
-
下面估计式成立
∣∣x∣∣∣∣Δx∣∣≤1−∣∣ΔA∣∣ ∣∣A−1∣∣∣∣A∣∣ ∣∣A−1∣∣(∣∣A∣∣∣∣ΔA∣∣+∣∣b∣∣∣∣Δb∣∣)
根据上式可知主要影响因素为∣∣A∣∣ ∣∣A−1∣∣,于是将其定义为条件数cond(A)=∣∣A∣∣ ∣∣A−1∣∣
2.3.2 病态方程组的求解问题
- 判断线性方程组Ax=b是否病态
- ∣detA∣较小或者,某些行列近似线性相关
- 列主元Gauss求解方程组时,出现小的列主元∣aikk(k)∣<<1
- 分别用b,Δb(Δb≪1)作为右端向量,结果相差较大
- 矩阵的元素数量级相差较大,且无一定规则
- 一般方法
- 高精度算术运算:双精度
- 平衡方法,同时左乘矩阵
2.4 迭代法
适用:常用与求解大型稀疏线性方程组
基本步骤:构建无限的向量序列,使其极限是方程组的解向量,使用精度控制
一般形式:
将系数矩阵分解为两个矩阵的差,其中N非奇异,
A=N−P
代入Ax=b中,Nx=Px+b即:x=N−1Px+N−1b
记作x=Gx+d(对应替代)
定理2.7 设有向量序列{x(k)}和常向量x^*,若对某种范式,有{x(k)}k→∞lim∣∣x(k)−x∗∣∣=0则必有k→∞limx(k)=x∗
定理2.8 对任意的向量d,迭代法收敛的充要条件是ρ(G)<1其中ρ(G)表示矩阵G的谱半径
定理2.9 若矩阵某种范式∣∣G∣∣<1,则
- 方程组的解x∗唯一
- 对于迭代公式,有k→∞limx(k)=x∗,
且∣∣x(k)−x∗∣∣<1−∣∣G∣∣∣∣G∣∣k∣∣x(1)−x(0)∣∣,
∣∣x(k)−x∗∣∣<1−∣∣G∣∣∣∣G∣∣∣∣x(k)−x(k−1)∣∣
2.4.2 Jabobi迭代法
若系数矩阵A满足条件aii=0将A分解为三个矩阵A=D+L+U
D=⎣⎢⎢⎡a11a22⋱ann⎦⎥⎥⎤,L=⎣⎢⎢⎢⎡0a21⋮an10⋱⋯⋱an,n−10⎦⎥⎥⎥⎤,U=⎣⎢⎢⎢⎡0a120⋯⋱⋱a1n⋮an−1.n0⎦⎥⎥⎥⎤
代入上述的迭代法一般式可得到如下迭代公式
x(k+1)=−D−1(L+U)x(k)+D−1b
迭代矩阵为G=−D−1(L+U)
引理 若矩阵是主对角线按行或按列严格占优矩阵,则矩阵是非奇异矩阵
证明:
若是严格占优,则满足条件∣aii∣>j=1j=i∑n∣aij∣
对于A=D+L+U=D(I−G)则根据A知∣∣G∣∣∞=1≤i≤nmaxj=1j=i∑n∣aii∣∣aij∣<1
则G的谱半径小于1,I−G必非奇异,于是系数矩阵A非奇异
定理2.12 若系数矩阵是主对角线按行或按列严格占优矩阵,则Jacobi迭代法求解必收敛
证明:
假定不收敛,则根据充要条件知迭代矩阵必有一特征值μ≥1,
则有det(μI−G)=0⇒μndetD−1⋅det[D+μ−1(L+U)]=0
但若系数矩阵是严格占优矩阵,则D+μ−1(L+U)也严格占优,则根据引理知不是奇异矩阵,并且D−1自然非奇异,因此矛盾。
PS 看着有点绕实际上很简单,实例如下

2.4.3 Gauss−Seidel迭代法
整体收敛于其他证明与上述类似,形式上的变化为尽量的使用新的迭代的数,即

迭代公式为:x(k+1)=−(D+L)−1(U)x(k)+(D+L)−1b
2.4.4 逐次超松弛迭代法
对于系数矩阵A的主对角元素不为零,作如下分解
A=1ωD+L+(1−ω1)D+U
有迭代公式x(k+1)=−(ω1D+L)−1[(1−ω1)D+U]x(k)+(ω1D+L)−1b
实松弛因子ω>0,
定理2.19 SOR方法收敛的必要条件为0<ω<2
定理2.20 若系数矩阵是主对角线按行或按列严格占优阵,则用0<ω≤1的SOR方法必收敛
定理2.21 若系数矩阵是正定矩阵,则用0<ω<2的SOR方法必收敛