L01 误差分析
误差
- 绝对误差:
e(x∗)=x−x∗
有时也简称为误差。
- 绝对误差限:
∣e(x∗)∣≤ε
其中绝对误差绝对值的上界 ε 即为绝对误差限。
- 相对误差:
er(x∗)=xe(x∗)≈x∗e(x∗)
- 相对误差限:
∣er(x∗)∣≤εr=∣x∗∣ε
其中相对误差绝对值的上界 εr 即为相对误差限。
误差传播
有效数字
定义:
x∗ 若可规格化为以下浮点数
±0.α1α2⋯αn×10m,α1=0
其中写出的数字都是准确的,则称 x∗ 有 n 位有效数字。
等价定义:
x∗ 的绝对误差限若满足
∣e(x∗)∣≤21×10m−n
其中 m 为 x∗ 规格化表示中的指数,则称 x∗ 有 n 位有效数字。
性质:
数值问题和数值方法的性质
- 数值问题的适定性就是数值问题的解存在唯一,且关于参数连续。
- 数值方法的一致性就是近似函数接近准确函数。
- 数值方法的稳定性就是近似解关于近似参数连续。
- 数值方法的收敛性就是近似解接近准确解。
定义:数值计算问题是适定的,当且仅当满足:
- 解存在:对给定 d,至少存在一个解 x
- 解唯一:解在解空间中唯一
- 解关于参数连续:
参数 d 的微小扰动 δd 仅引起解 x 的微小变化 δx。
具体来说,设问题扰动为 F(x+δx,d+δd)=0,则对任意 d,
存在 η0>0 和 K0>0,使得当 ∥δd∥≤η0 时:
∥δx∥≤K0∥δd∥
定义:对近似问题序列 Fn(xn,dn)=0,若
Fn(x,d)−F(x,d)→0(n→∞)
其中 x 是原问题的准确解,则称该序列一致。
定义:对近似问题序列 Fn(xn,dn)=0,若对任意 dn,
存在 η0>0 和 K0>0,使得当 ∥δdn∥≤η0 时:
∥δxn∥≤K0∥δdn∥
则称该序列稳定。
定义:对近似问题序列 Fn(xn,dn)=0,若对任意 ε>0,
存在 n0∈N 和 δ>0,使得当 n>n0 且 ∥δdn∥≤δ 时:
∥x(d)−xn(d+δdn)∥≤ε
则称该序列收敛。
Lax-Richtmyer 定理:
对满足 Consistency 的数值方法,有:
Stability⇔Convergence
注:由于收敛性涉及到准确解,故一般不好判断。该定理可将收敛性转化为稳定性进行判断。
L02 解线性方程组的直接法(Gauss 消去法、列主元消去法)
GAUSS 消去法的矩阵视角
高斯消元的每一步可表示为左乘一个初等下三角矩阵 Mk,其逆的乘积构成 LU 分解中的下三角部分 L。
第 k 步消元矩阵定义为:
Mk=I−mkek⊤
其中 mk=[0,…,0,mk+1,k,…,mn,k]⊤,mj,k=aj,k(k)/ak,k(k),ek 为标准基向量。
易得:
Mk−1=I+mkek⊤
经过 n−1 步消元:
U=Mn−1⋯M2M1A
令:
L=M1−1M2−1⋯Mn−1−1
则得到 LU 分解:
A=LU
L 为单位下三角矩阵,其第 j 行第 k 列(j>k)的元素恰为第 k 步的消元乘子 mj,k:
L=1m21m31⋮mn11m32⋮mn21⋱⋯⋱mn,n−11
列主元消去法
在每一步选择该列中绝对值最大的元素作主元并交换行,称为部分选主元(partial pivoting)。
由于 A 的非奇异性,这是存在的,否则该列会与前面的列线性相关。
L02 解线性方程组的直接法(LU 分解、Cholesky 分解)
LU 分解
一个方阵 A (不一定可逆)分解为一个单位下三角矩阵 L 和一个上三角矩阵 U 的乘积:
A=LU
计算公式:
ukj=akj−m=1∑k−1lkmumj,j=k,k+1,…,n
lik=ukk1(aik−m=1∑k−1limumk),i=k+1,k+2,…,n
LU 分解求解线性方程组
给定线性方程组 Ax=b,若已知 A=LU,则可转化为两步求解:
-
前向代入(Forward Substitution):求解 Ly=b
yi=bi−j=1∑i−1lijyj,i=1,2,…,n
-
后向代入(Backward Substitution):求解 Ux=y
xi=uii1(yi−j=i+1∑nuijxj),i=n,n−1,…,1
Cholesky 分解
若 A∈Rn×n 是对称正定矩阵,则存在唯一的下三角矩阵 L(对角元为正),使得:
A=LL⊤
计算公式:
lkk=akk−j=1∑k−1lkj2,k=1,2,3,…,n
lik=lkk1(aik−j=1∑k−1lijlkj),i=k+1,k+2,…,n
LDL^T 分解
设 A∈Rn×n 是对称矩阵,且其所有顺序主子式 det(Ak)=0(其中 Ak 为 A 的前 k 阶顺序主子阵),
则存在唯一的单位下三角矩阵 L(对角元全为 1)和对角矩阵 D(对角元 dk=0),使得:
A=LDLT
特别地,若 A 对称正定(SPD),则所有 dk>0。
计算公式:
dk=akk−j=1∑k−1lkj2dj,k=1,2,…,n
lik=dk1(aik−j=1∑k−1lijlkjdj),i=k+1,…,n
L04 解线性方程组的直接法(误差分析、超定方程组)
向量范数
映射 ∥⋅∥:Rn→R 满足:
- 正定性:∥x∥≥0,且 ∥x∥=0⇔x=0
- 齐次性:∥αx∥=∣α∣∥x∥,∀α∈R
- 三角不等式:∥x+y∥≤∥x∥+∥y∥
矩阵范数
映射 ∥⋅∥:Rn×n→R 满足:
- 正定性:∥A∥≥0,且 ∥A∥=0⇔A=0
- 齐次性:∥αA∥=∣α∣∥A∥
- 三角不等式:∥A+B∥≤∥A∥+∥B∥
- 相容性(次可乘性):∥AB∥≤∥A∥∥B∥
向量范数与矩阵范数相容
若对 ∀A∈Rn×n 与 ∀x∈Rn,都有:
∥Ax∥≤∥A∥∥x∥
则称式中的向量范数和矩阵范数相容。
不是任意向量范数与任意矩阵范数都相容的。但是我们可以做到:
- 对任意向量范数,构造一个矩阵范数与之相容。即诱导范数。
- 对任意矩阵范数,构造一个向量范数与之相容。给定矩阵范数 ∥⋅∥,定义向量范数如下:
∥x∥:=∥xuT∥
其中 u 是任意一个固定的非零向量。
诱导范数
由向量范数 ∥⋅∥ 诱导的:
∥A∥≡x=0max∥x∥∥Ax∥=∥x∥=1max∥Ax∥
是一个矩阵范数。
不是所有矩阵范数都是诱导范数。1,2,∞- 向量范数的诱导范数均为对应的矩阵范数。
谱半径
矩阵 A∈Cn×n 的谱半径定义为:
ρ(A)=1≤i≤nmax∣λi∣
定理:对任意矩阵范数,ρ(A)≤∥A∥
几何意义:衡量特殊方向特征向量的最大拉伸率。
奇异值
矩阵 A∈Cm×n 的奇异值定义为:
σi(A)=λi(AHA),i=1,2,…,min(m,n)
其中 λi(AHA) 是 AHA 的特征值,通常按从大到小排列:
σ1(A)≥σ2(A)≥⋯≥σr(A)>0,σr+1=⋯=0
r=rank(A)。最大奇异值记为 σmax(A)。
定理:对任意矩阵,最大奇异值等于矩阵的谱范数(即 2-范数):
σmax(A)=∥A∥2=∥x∥2=1max∥Ax∥2
几何意义:衡量任意方向(单位)向量的最大拉伸率。
我们知道对任意矩阵范数,有 ρ(A)≤∥A∥。故:
ρ(A)≤σmax(A)
从几何意义上看显然奇异值寻找拉伸率的线性空间更大。
条件数
在矩阵范数 ∥⋅∥ 下,非奇异方阵 A∈Rn×n 的条件数为:
Cond(A)≡∥A∥∥A−1∥
特别地,Cond(A)p=∥A∥p∥A−1∥p(p=1,2,∞)
- 下界:
Cond(A)≥1
- 正交矩阵:
若 A 正交,则其谱范数下的条件数:
Cond(A)2=1
- 齐次性:
∀α=0 有:
Cond(αA)=Cond(A)
- 谱条件数:
Cond(A)2=λmin(ATA)λmax(ATA)=σminσmax
- 等价性:Rn×n 上的条件数都是等价的
条件数的几何意义
条件数的倒数 = 矩阵到最近奇异矩阵的相对距离
假设 A∈Rn×n 可逆,
矩阵 δA∈Rn×n 使得 A+δA 奇异。那么:
∥A∥∥δA∥≥Cond(A)1
并且如果矩阵范数 ∥⋅∥ 由向量范数诱导定义,则存在矩阵 δA 使得上述不等式取等号:
A+δA∈Smin∥A∥∥δA∥=Cond(A)1
其中 S={M∣det(M)=0} 为奇异矩阵集合。
误差分析
右端项扰动分析:
扰动方程:A(x+δx)=b+δb
则有误差估计:
∥x∥∥δx∥≤∥A∥∥A−1∥∥b∥∥δb∥
也即解的相对误差不超过右端项相对误差的 ∥A∥∥A−1∥ 倍。
系数矩阵扰动分析:
扰动方程:(A+δA)(x+δx)=b
则有误差估计:
∥x∥∥δx∥≤1−∥A∥∥A−1∥∥A∥∥δA∥∥A∥∥A−1∥∥A∥∥δA∥
也即解的相对误差关于系数矩阵相对误差的函数,当扰动充分小时近似为 ∥A∥∥A−1∥ 倍。
综合误差分析:
对于非奇异矩阵 A∈Rn×n 及其扰动 δA∈Rn×n 满足
∥A−1∥∥δA∥<1
如果 x∈Rn 是 Ax=b 的解,其中 b∈Rn,b=0。
考虑扰动 δb∈Rn,δx 是
(A+δA)(x+δx)=b+δb
的解。此时有如下正向先验误差估计:
∥x∥∥δx∥≤1−Cond(A)∥A∥∥δA∥Cond(A)(∥A∥∥δA∥+∥b∥∥δb∥)
L05 解线性方程组的迭代法(Jacobi,Gauss-Seidal,松弛法,收敛性)
统一迭代格式
三种方法可统一写成:
x(k+1)=Mx(k)+g
| 方法 | 迭代矩阵 M | 向量 g |
|---|
| Jacobi | MJ=D−1(D−A)=I−D−1A | gJ=D−1b |
| Gauss-Seidel | MGS=(D−L)−1U | gGS=(D−L)−1b |
| SOR | MSOR=(D−ωL)−1[(1−ω)D+ωU] | gSOR=ω(D−ωL)−1b |
Jacobi 迭代格式
将系数矩阵 A 分解为:
A=D−(D−A)=D−B
其中 D=diag(a11,a22,…,ann) 为对角矩阵,B=D−A。
原方程 Ax=b 改写为:
Dx=Bx+b
若 aii=0(对所有 i),则 D 可逆,得到 Jacobi 迭代格式:
x(k+1)=D−1(D−A)x(k)+D−1b=Bx(k)+g
Gauss-Seidal 迭代格式
将 A 分裂为:
A=D−L−U
其中 L 为严格下三角矩阵(对角线为零),U 为严格上三角矩阵。
迭代格式变为:
(D−L)x(k+1)=Ux(k)+b
即 Gauss-Seidal 迭代格式:
x(k+1)=(D−L)−1Ux(k)+(D−L)−1b
松弛法迭代格式
Gauss-Seidel 的更新可看作在当前解 x(k) 上加上一个修正量:
x(k+1)=x(k)+Δx
其中:
Δx=D−1[Lx(k+1)+Ux(k)+b−Dx(k)]
引入松弛因子 ω 对修正量进行加权:
x(k+1)=x(k)+ωΔx
整理得 SOR 迭代格式:
x(k+1)=(D−ωL)−1[(1−ω)D+ωU]x(k)+ω(D−ωL)−1b
收敛的充要条件
迭代格式对任意初始向量 x(0) 都收敛的充分必要条件是:
ρ(M)<1
迭代格式对任意初始向量 x(0) 都收敛的一个充分条件是:
存在某个矩阵范数 ∥⋅∥ 使得
∥M∥<1
对角占优与严格对角占优
矩阵 A 称为对角占优,若:
∣aii∣≥j=i∑∣aij∣,∀i=1,…,n
且至少对一个 i 严格不等式成立。若对所有 i 都严格成立,则称为严格对角占优。
严格对角占优矩阵的收敛性
若迭代格式矩阵 A 严格对角占优,则
- A 非奇异
- Jacobi 迭代法对任意初始向量收敛
- Gauss-Seidel 迭代法对任意初始向量收敛
L06 解线性方程组的迭代法(二次函数极值,最速下降法,共轭梯度法)
求解问题
本讲聚焦于 A∈Rn×n 对称正定的情形。
此时求解线性方程组 Ax=b 等价于求解如下二次函数的极小值问题:
ϕ(x)=21x⊤Ax−b⊤x
对于一般的方程 Ax=b,
转化为 A⊤Ax=A⊤b 即可同理求解。
最速下降法
每一步沿当前点处函数下降最快的方向(即负梯度方向)进行一维搜索。
初始化:给定初值 x(0),计算梯度 g(0)=Ax(0)−b
循环:
- 计算 t=Ag(k)
- 计算步长:
α(k)=⟨g(k),t⟩⟨g(k),g(k)⟩
- 更新解:x(k+1)=x(k)−α(k)g(k)
- 更新梯度:g(k+1)=g(k)−α(k)t
- 若 ∥r(k+1)∥2=∥g(k+1)∥2<ε,终止;否则继续循环
共轭梯度法
不再使用负梯度方向,而是构造一组 A-共轭搜索方向 {d(k)},使得在 n 步内精确收敛,避免震荡。
初始化:
给定初值 x(0),
计算梯度 g(0)=Ax(0)−b,
设搜索方向 d(0)=−g(0)
循环:
- 计算 t=Ad(k)
- 计算 s=⟨d(k),t⟩(即 ⟨d(k),d(k)⟩A)
- 计算步长:
α(k)=−s⟨g(k),d(k)⟩
- 更新解:x(k+1)=x(k)+α(k)d(k)
- 更新梯度:g(k+1)=g(k)+α(k)t
- 若 ∥r(k+1)∥2=∥g(k+1)∥2<ε,终止
- 计算 β(k):选择等价形式中的一种,一般采用 FR 形式。
β(k)=∥g(k)∥22∥g(k+1)∥22
- 更新搜索方向:d(k+1)=−g(k+1)+β(k)d(k)
L07 特征值和特征向量的计算(幂法,幂法加速,Jacobi 法)
方法对比与适用场景
| 方法 | 适用矩阵 | 目标特征值 | 计算复杂度 |
|---|
| 幂法 | 唯一主特征值 | 最大模特征值 | O(n2) |
| 位移幂法 | 唯一主特征值 | 离 μ 最远的特征值 | O(n2) |
| 降阶幂法 | 对称矩阵 | 前 k 个特征值 | O(kn3) |
| 反幂法 | 非奇异矩阵 | 最小模特征值 | O(n3)(LU分解)+ O(n2) |
| 位移反幂法 | 非奇异矩阵 | 离 μ 最近的特征值 | O(n3)(LU分解)+ O(n2) |
| Jacobi 法 | 实对称矩阵 | 所有特征值 | 未优化 O(n4) |
幂法
设 A∈Rn×n 有唯一主特征值,即:
∣λ1∣>∣λ2∣≥∣λ3∣≥⋯≥∣λn∣
其中 λ1 为实数且几何重数为 1。初始向量 x(0)∈Rn 在 λ1 的特征方向上的投影非零。
为避免溢出问题,每步用 ∞-范数进行归一化:
⎩⎨⎧y(k)=∥x(k)∥∞x(k),x(k+1)=Ay(k),k=0,1,2,…
收敛性质:
- y(k) 收敛到 λ1 的一个特征向量。
- 主特征值估计为:
λ1(k)=(x(k+1))j,其中 j=argimax∣(x(k))i∣
位移幂法
注意到幂法收敛速度为:
(x(k))j(x(k+1))j−λ1=O(λ1λ2k)
利用特征值平移性质:
若 Aui=λiui,则 (A−μI)ui=(λi−μ)ui,
也即
- λi−μ 为 A−μI 的特征值
- ui 仍为 A−μI 的特征向量
从而可以选择位移 μ 使收敛更快:
λ1−μλ2−μ<λ1λ2
特殊地,对称正定矩阵特征值均为实数,故最优位移为:
μ=21(λ2+λn)
降阶幂法
假设对称矩阵 A,则其特征向量相互正交。
已知主特征值 λ1 和单位主特征向量 u1,构造:
A(2)=A−λ1u1Tu1u1u1T
则:
- A(2)u1=0
- A(2)ui=λiui(i=2,3,…,n)
即 A(2) 的特征值为 0,λ2,…,λn,可对 A(2) 再次应用幂法求 λ2,u2。
同理可求更多特征对。
实际上 A(2) 消除了主特征方向的所有贡献,从而让次特征方向变为 A(2) 的主特征方向。
反幂法
适用于非奇异矩阵。由特征值倒数性质:若 Aui=λiui,则 A−1ui=λi−1ui。
因此,对 A−1 应用幂法即得 ∣λn∣ 最小的特征值。
为避免显式求逆,可以将 x(k)=A−1x(k−1) 改为解线性方程组:
Ax(k)=x(k−1)
位移反幂法
结合位移技术,我们可以求已知近似特征值 λ∗ 附近的精确特征值。
首先构造 B=A−λ∗I,然后对 B 应用反幂法求模最小特征值 μ,则待求特征值即为:
λ=μ+λ∗
由于 ∣λ−λ∗∣≪∣λi−λ∗∣,收敛极快。
Jacobi 算法
对实对称矩阵 A,存在正交矩阵 Q 使 QTAQ=D 为对角阵。Jacobi 法通过一系列 2D 正交变换(Givens 旋转)逐步消除非对角元。
算法流程:
- 初始化 V=In,用于累积正交变换矩阵
- 重复以下步骤,直至所有非对角元绝对值小于给定阈值 ε:
- 选择当前矩阵中绝对值最大的非对角元 ∣apq∣=maxi=j∣aij∣
- 计算旋转参数:
τ=2apqapp−aqq,t=−∣τ∣+1+τ2sign(τ),c=1+t21,s=c⋅t
- 更新矩阵 A←QpqTAQpq:
- 更新四个受影响的对角/非对角元:
appaqqapq←c2app+s2aqq−2scapq←s2app+c2aqq+2scapq←0,aqp←0
- 对 i=p,q,更新第 i 行和第 i 列:
aipaiq←caip−saiq←saip+caiq
实际操作中需用临时变量保存旧值。
- 累积正交矩阵 V←VQpq:
vipviq←cvip−sviq←svip+cviq
- 循环结束后,对角元 aii 即为特征值 λi,V 的第 i 列即为对应的特征向量
L08 特征值和特征向量的计算(QR 分解,SVD 分解)
Householder 变换
对单位向量 w∈Rn,Householder 矩阵定义为:
H=I−2wwT
性质:
- 对称:HT=H
- 正交:HTH=I⇒H2=I
几何意义:将向量 x 关于与 w 正交的超平面 {y∣wTy=0} 镜像反射。
定理:
对非零向量 x,y∈Rn 且 ∥x∥2=∥y∥2,存在 Householder 矩阵 H,使得:
Hx=y
Householder QR 分解
输入:A∈Rn×n
输出:正交矩阵 Q 和上三角矩阵 R,使得 A=QR
- 初始化 A(1)=A,Q(1)=In
- 对 k=1,2,…,n−1:
- 取 x(k)=A(k)[k:n,k]∈R(n−k+1)
- 构造 Householder 矩阵 H(k)∈R(n−k+1)×(n−k+1) 使
H(k)x(k)=−sign(x1(k))∥x(k)∥2e1
- 令 H~(k)=[Ik−100H(k)],注意其仍为 Householder 矩阵
- A(k+1)=H~(k)A(k)
- Q(k+1)=Q(k)(H~(k))T
- 令 Q=Q(n),R=A(n),输出 Q,R 即为所求
Givens 旋转变换
Givens 旋转用于有选择地消去矩阵中的特定元素,每次只影响两行(列)。
具体同 Jacobi 算法。
Givens QR 分解
输入:A∈Rn×n
输出:正交矩阵 Q 和上三角矩阵 R,使得 A=QR
- 初始化 A(1)=A,Q(1)=In
- 对 k=1,2,…,n−1,
对 i=k+1,…,n:
- 取 a=A(k)[k,k],b=A(k)[i,k]
- 计算 c=a2+b2a,s=a2+b2b
- 构造 Givens 矩阵 Gik∈Rn×n:
Gik=1⋱c⋮−s⋯⋱⋯s⋮c1
其中非零元位于 (k,k),(k,i),(i,k),(i,i) 位置
- A(k+1)=GikTA(k)
- Q(k+1)=Q(k)Gik
- 令 Q=Q(n),R=A(n),输出 Q,R 即为所求
两种 QR 分解对比
| 方法 | 每次操作 | 适用场景 |
|---|
| Householder | 消去一整列 | 稠密矩阵 |
| Givens | 消去单个元素 | 稀疏矩阵、并行计算 |
QR 算法
定义拟上三角矩阵为对角块为 1 阶或 2 阶的分块上三角矩阵。
实 Schur 分解:
对任意 A∈Rn×n,存在正交矩阵 Q∈Rn×n,使:
QTAQ=S
其中 S 为拟上三角矩阵,且:
- 1 阶对角块对应一个实特征值
- 2 阶对角块对应一对共轭复特征值
迭代步骤:
- QR 分解:A(k)=Q(k)R(k)
- 更新:A(k+1)=R(k)Q(k)=(Q(k))TA(k)Q(k)
显然 A(k+1) 与 A(k) 正交相似,故特征值不变。
收敛性:
设 A 是 n×n 实矩阵,特征值满足:
∣λ1∣≥∣λ2∣≥⋯≥∣λn∣
且等号仅出现在共轭复特征值对(即 λ=a±bi,b=0)的情形。
则 QR 迭代产生的 A(k) 收敛到拟上三角矩阵(实 Schur 标准型)。