大一线代学的高斯消元法不适合高阶线性方程组。因此发展新的方法——迭代法。
迭代法的基本概念
设方程组 Ax=f 有唯一解 x∗。可将方程组变形为:
由此建立迭代公式:
x(k+1)=Bx(k)+f(k=0,1,2,...) 再给定 x(0),即可得到近似解序列 {x(k)}。
若 k→∞limx(k)=x∗,有 x∗=Bx∗+f(x∗为不动点),则称迭代法是收敛的,否则是发散的。
B 称为迭代矩阵,B 的取法不同,就是各种迭代法的区别。各种方法是否收敛?速度如何?如何进行误差估计?这就是我们要研究的问题。
迭代法适用于解大型稀疏方程组。
雅可比迭代法
最简单的方法是将每个方程组左边留一个变量,其他全部丢到右边,这就是一个最简单的迭代矩阵。
具体的来说,对于方程组中第 i 个方程,
j=1∑naijxj=bi(i=1,2,...,n) 我们把 aiixi 留在左边,其他丢到右边,再两边同时除以 aii,得到迭代公式为:
xi(k+1)=aii1[bi−j=1∑i−1aijxj(k)−j=i+1∑naijxj(k)] (迭代公式中后面两项其实可以合并为一个求和符号,但是这里分开写,是为了给后面做铺垫)
初始点任取,进行迭代即可。
不过呢,这玩意不一定收敛。
高斯——赛德尔迭代法
注意到,如果上面如果收敛,一般来说,新值比旧值优秀。
所以我们尽可能使用新的值,把第 k+1 次迭代前面算出来的数用到该次迭代中(迭代表达式中只改了一个上标):
xi(k+1)=aii1[bi−j=1∑i−1aijxj(k+1)−j=i+1∑naijxj(k)] 理论上,如果使用两个方法都收敛,高斯——赛德尔方法会略快于雅可比迭代。
雅可比迭代法的矩阵表示
(这一段的公式也太长了叭)
将 Ax=b 的 A 分裂
A=D−U−L D=⎣⎢⎢⎢⎡a11a22⋱ann⎦⎥⎥⎥⎤L=−⎣⎢⎢⎢⎢⎡0a21⋮an10⋱⋯⋱an,n−10⎦⎥⎥⎥⎥⎤U=−⎣⎢⎢⎢⎢⎡0a12⋱⋯⋱0a1n⋮an−1,n0⎦⎥⎥⎥⎥⎤ 有:
AX=b⇒DX(k+1)X(k+1)=(U+L)X(k)+b=D−1(U+L)Xk+D−1b 记
BJ=D−1(U+L)fJ=D−1b X(k+1)=BJX(k)+fJ 进一步计算 BJ 和 fJ:
BJ=⎣⎢⎢⎢⎡a11a22⋱ann⎦⎥⎥⎥⎤−1⎣⎢⎢⎢⎡0−a21⋯−an1−a120⋯−an2⋯⋯⋯⋯−a1n−a2n⋯0⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡0−a21/a22⋯−an1/ann−a12/a110⋯−an2/ann⋯⋯⋯⋯−a1n/a11−a2n/a22⋯0⎦⎥⎥⎥⎤ fJ=D−1b=⎣⎢⎢⎢⎢⎡b1/a11b2/a22⋮bn/ann⎦⎥⎥⎥⎥⎤ 高斯-赛德尔迭代法的矩阵表示
高斯-赛德尔的矩阵会复杂一点,因为上面方法被求逆的矩阵是一个对角矩阵,而这里是一个下三角矩阵。
(D−L)X(k+1)X(k+1)=UX(k)+b=(D−L)−1UXk+(D−L)−1b 记
BG−S=(D−L)−1UfG−S=(D−L)−1b X(k+1)=BG−SX(k)+fG−S 进一步计算 BG−S 和 fG−S 有(其实没有必要往下写了):
BG−S=⎣⎢⎢⎢⎢⎡a11a21⋮an1a22⋮an2⋱⋯ann⎦⎥⎥⎥⎥⎤−1⎣⎢⎢⎢⎢⎡0a120⋯⋱⋱a1na2n⋮0⎦⎥⎥⎥⎥⎤ fJ=D−1b=⎣⎢⎢⎢⎢⎡a11a21⋮an1a22⋮an2⋱⋯ann⎦⎥⎥⎥⎥⎤−1⎣⎢⎢⎢⎢⎡b1b2⋮bn⎦⎥⎥⎥⎥⎤ 向量的收敛性
范数知识请看范数简介
迭代的收敛性
在基本概念中提到,迭代即是
k→∞limX(k)=X∗⇔k→∞lim∥X(k)−X∗∥2=0 令 ε(k)=X(k)−X∗,则上述结论可以写为
k→∞limX(k)=X∗⇔k→∞lim∥ε(k)∥2=0 (利用向量范数的等价性,我们还可以进一步推出上述结论对任意范数同样成立)
接下来,我么换一个角度,看从迭代法的定义还能推出什么关于 ε(k) 的结论:
X(k+1)X∗X(k+1)−X∗=BX(k)+f(k=0,1,2,...)=BX∗+f=B(X(k)−X∗) 则有:
ε(k)=Bε(k−1)(k=1,2,3,...) 递推一下,
ε(k)=Bε(k−1)=B2ε(k−2)=⋯=Bkε(0) 得出结论:
k→∞limε(k)=0⇔k→∞limBk=0 结论非常漂亮,就是没法用(逃
于是出现了范数:
k→∞limε(k)=0⇐∥B∥<1 证明如下:
由 ε(k)=Bε(k−1) 和范数的相容性,有
∥ε(k)∥∥ε(k)∥≤∥B∥∥ε(k−1)∥≤∥B∥k∥ε(0)∥ 由于 ∥B∥<1,
k→∞lim∥ε(k)∥≤k→∞lim∥B∥k∥ε(0)∥=0 所以有 limk→∞ε(k)=0。
然而我们还是不知道当 ∥B∥≥1 时会发生什么。因此我们要进行推广:
矩阵的谱
定义 矩阵的谱 chB (或σ(B))就是矩阵特征值的集合 {λ1,λ2,...,λn}。
定义 矩阵 B 的谱半径 ρ(B)=1≤k≤nmax∣λk∣
那么,关于在 范数的相容性 中提到的最大特征值的结论都可以套过来:
结论 1:当 B 是对称矩阵时,∥B∥2=ρ(B)
结论 2:对于任意范数都有:ρ(B)≤∥B∥2
定理:
k→∞limε(k)=0⇔ρ(B)<1 这里就是充要条件了。
对于有些问题,雅可比不收敛、高斯——赛德尔收敛;也有前者收敛,后者不收敛。
套用雅可比和高斯——赛德尔方法中的 B 的结果,可以得到判断该方法是否收敛的算法:
定理:设 X∗ 是方程组 AX=b 的解,迭代形式为:X(k+1)=BX(k)+f。若 ∥B∥<1,则有:
∥X(k)−X∗∥≤1−∥B∥∥B∥∥X(k)−X(k−1)∥ ∥X(k)−X∗∥≤1−∥B∥∥B∥k∥X(1)−X(0)∥
PPT 上给了第一条的证明,但是太硬核了(给刚接触范数的同学看这些真的看得懂吗),如果需要的话,再来翻 PPT 重学吧。
至于第二条,真的不懂了(逃