这一章的核心是:
对矩阵特征值问题 Ax=λx,用迭代和正交相似变换求出一个或全部特征值,并进一步得到对应特征向量。
这一章主要讲两类问题:
- 只求少数特征值:幂法、反幂法,以及原点位移和 Aitken 加速。
- 求全部特征值:Jacobi 方法和 QR 方法。
整体思路可以这样看:
- 幂法:不断做 Ax,放大模最大的特征方向。
- 反幂法:对 A−1 做幂法,从而找模最小的特征值;带位移后可精修指定附近的特征值。
- Jacobi 方法:对实对称矩阵不断做平面旋转,把非对角元逐步消掉。
- QR 方法:反复做 QR 分解并重排成 RQ,通过相似变换把矩阵逼近上三角阵。
本章大量使用 正交变换。正交变换的好处是:
- 保持向量长度和内积;
- 数值稳定性好;
- 若以 QTAQ 的形式作用在矩阵上,还保持特征值不变。
特征值问题的基本形式#
矩阵特征值问题写成:
Ax=λx,x=0.其中:
- λ 是矩阵 A 的特征值;
- x 是对应的特征向量;
- 若 A 为实对称矩阵,则所有特征值都是实数,且可以选出一组正交特征向量;
- 若 A 为实对称正定矩阵,则所有特征值都为正。
在数值计算里,直接展开特征多项式求根通常不可取。原因是:
- 特征多项式系数对扰动敏感;
- 高次多项式求根数值稳定性差;
- 大规模矩阵中形成特征多项式代价很高。
所以实际算法更常从矩阵作用、相似变换和正交分解出发。
幂法的基本思想#
幂法用来求矩阵 按模最大 的特征值及其特征向量。
设 A 有 n 个线性无关的特征向量 u1,u2,…,un,对应特征值满足:
∣λ1∣>∣λ2∣≥⋯≥∣λn∣.任取初始向量 x(0),若它在 u1 方向上的分量不为零,则可写成:
x(0)=α1u1+α2u2+⋯+αnun,α1=0.不断左乘 A,有:
Akx(0)=α1λ1ku1+alpha2λ2ku2+⋯+αnλnkun.提取 λ1k:
Akx(0)=λ1k[α1u1+α2(λ1λ2)ku2+⋯+αn(λ1λn)kun].由于
λ1λi<1(i=2,…,n),后面各项逐渐衰减,方向最后趋近于 u1。
所以幂法的直观解释是:
反复用 A 作用在向量上,模最大的特征方向会被放大得最快。
TIP配图占位:插入 lesson6 手写 PPT 第 3-18 页中“Akx(0) 中最大特征方向逐渐占主导”的推导截图。
为什么要归一化#
若直接计算 Akx(0),向量长度可能迅速变大或变小,导致溢出或下溢。
所以每一步都要做归一化。常用做法是:
y(k)=Ax(k),取
mk=yr(k),∣yr(k)∣=1≤i≤nmax∣yi(k)∣,然后令
x(k+1)=mky(k).这样做只改变向量长度,不改变方向。
特征值的计算与停止准则#
课本中可用归一化因子 mk 估计特征值:
λ1≈mk.老师上课强调了一个更稳妥的做法:一旦有了近似特征向量 x,可以用 Rayleigh 商 计算对应特征值:
λ(x)=xTxxTAx.如果 x 已经归一化为 ∥x∥2=1,则:
λ(x)=xTAx.停止准则最好从定义出发:
∥Ax−λx∥2<ε.这比只看相邻两次 x(k) 或 λ(k) 的变化更有意义,因为我们最终要求的是满足 Ax=λx。
幂法算法#
给定矩阵 A、初始向量 x(0)、误差限 ε、最大迭代次数 N:
- 归一化 x(0)。
- 对 k=0,1,2,…:
- 计算 y(k)=Ax(k);
- 归一化 x(k+1)=y(k)/∥y(k)∥ 或按最大分量归一化;
- 计算 λ(k+1)=(x(k+1))Tx(k+1)(x(k+1))TAx(k+1);
- 若 ∥Ax(k+1)−λ(k+1)x(k+1)∥2<ε,停止。
伪代码:
lambda = (x^T A x) / (x^T x)
if norm(A*x - lambda*x) < eps:
收敛速度#
幂法的误差主要由第二大模特征值控制,收敛因子近似为:
λ1λ2.
- 若 ∣λ2/λ1∣ 很小,收敛快;
- 若 ∣λ2/λ1∣≈1,收敛慢;
- 若模最大的特征值不唯一,普通幂法可能不收敛到单一方向。
例:幂法求按模最大特征值#
课本例题:用幂法求
A=2001−2−1012的按模最大特征值及对应特征向量,取
x(0)=(0,0,1)T,要求误差不超过 10−3。
迭代结果收敛到:
λ1≈2.99967≈3.对应特征向量方向约为:
x≈(1,−1,1)T.这个例子体现了幂法的基本效果:不断乘 A 后,向量方向逐渐被最大模特征值对应的方向支配。
幂法的加速#
幂法简单,但当
λ1λ2≈1时收敛很慢。课本给了两种加速思想:
- 原点位移法;
- Aitken 加速。
原点位移法#
构造新矩阵:
B=A−λ0I.若 Aui=λiui,则:
Bui=(A−λ0I)ui=(λi−λ0)ui.所以:
- B 与 A 有相同的特征向量;
- B 的特征值为 μi=λi−λ0;
- 对 B 用幂法求出 μ1 后,有 λ1=μ1+λ0。
若 λ0 选得合适,可以减小收敛因子:
λ1−λ0λ2−λ0.课本给出一种典型选择:当
λ1>λ2≥⋯≥λn>0时,可以取
λ0=21(λ2+λn).这会把非主特征值整体向原点附近压缩,使主特征值的相对优势变大。
课本例题:取 λ0=2.9,用原点位移法求矩阵
A=4−5−114130002.8的按模最大特征值。
于是
A−λ0I=−6.9−5−11410.1000−0.1.从 x(0)=(1,1,1)T 出发,迭代后得到
μ1≈3.0999984,所以
λ1≈μ1+2.9=5.9999984≈6.直接用幂法时收敛因子约为 λ2/λ1=1/2;位移后约为
3.10.1=311,收敛明显加快。
Aitken 加速#
Aitken 加速用于加快线性收敛的数列。
若数列 {ak} 收敛到 a,且近似满足线性收敛:
k→∞limak−aak+1−a=c=0,则当 k 充分大时,有
ak+1−aak+2−a≈ak−aak+1−a.由此解出更好的近似值:
a^k=ak+2−2ak+1+akak+2ak−ak+12=ak−ak+2−2ak+1+ak(ak+1−ak)2.把这一公式用于幂法产生的特征值近似序列 {αk},就得到 Aitken 加速的幂法。
TIP实际使用时通常先做若干步普通幂法,再对连续三项使用 Aitken 公式。这样更稳妥。
对矩阵
A=200−12−10−12,x(0)=(0,0,1)T,使用 Aitken 加速。课本计算中,特征值近似很快变为:
3.25,3.024999,3.002472,3.000442,…最后得到
λ1≈3.与普通幂法相比,Aitken 后处理明显减少迭代次数。
反幂法#
反幂法的思想#
若
Aui=λiui,且 A 非奇异,则
A−1ui=λi1ui.也就是说:
- A−1 与 A 有相同的特征向量;
- A−1 的特征值是 A 的特征值倒数。
所以对 A−1 用幂法,就能求出 A 的 按模最小 特征值。
关键计算是:
x(k+1)=A−1x(k).实际计算时不显式求 A−1,而是每步解线性方程组:
Ax(k+1)=x(k).如果 A 不变,可以先做一次 LU 分解:
A=LU,每次迭代只解两个三角方程。
WARNING反幂法每一步都要解线性方程组,代价比幂法大。幂法每步主要是矩阵向量乘法;反幂法每步是一次线性方程组求解。
带原点位移的反幂法#
反幂法更重要的用法是精修某个已知近似特征值附近的特征值。
若大致知道 λ∗ 附近有一个特征值,构造
B=A−λ∗I.若 λi 是 A 的特征值,则 B 的对应特征值为
λi−λ∗.离 λ∗ 最近的特征值会让 ∣λi−λ∗∣ 最小,因此对 B 用反幂法,会迅速找到该特征值。
计算得到 B 的最小模特征值 μ 后,有:
λi=λ∗+μ.从逆矩阵角度看,
(A−λ∗I)−1会把离 λ∗ 最近的特征方向放大得最快。
例:反幂法精修指定附近特征值#
课本例题:用反幂法求
A=200−12−10−12接近 2.93 的特征值和对应特征向量,取
x(0)=(0,0,1)T.对
A−2.93I做 LU 分解,然后反复解线性方程组。迭代 3 次后得到
λ≈3.0000954,对应特征向量可取
u≈(1,−0.9992431,0.9991478)T.精确特征向量方向为
(1,−1,1)T.
正交相似变换#
本章后半部分都依赖正交相似变换。
若 Q 是正交矩阵,即
QTQ=QQT=I,则
B=QTAQ与 A 相似,因此 A 和 B 有相同的特征值。
正交矩阵的几个重要性质:
- Q−1=QT;
- ∥Qx∥2=∥x∥2;
- (Qx,Qy)=(x,y);
- 若 Q 的列向量为 q1,…,qn,则这些列向量两两正交且单位化。
课堂上反复强调:正交变换的几何意义很清楚。
- Givens 变换:旋转;
- Householder 变换:镜像反射。
TIP配图占位:插入 lesson6 手写 PPT 第 179-185 页中“正交相似变换保持特征值”的示意图。
Jacobi 方法#
Jacobi 方法的基本思想#
Jacobi 方法用于求 实对称矩阵 的全部特征值和特征向量。
依据是:任意实对称矩阵 A 都可由正交矩阵对角化:
QTAQ=diag(λ1,λ2,…,λn).Jacobi 方法的思路:
每次选一个最大的非对角元,通过一次平面旋转把它消成 0;反复做下去,非对角元整体趋近于 0,矩阵趋近对角矩阵。
定义非对角元平方和:
E(A)=i=j∑aij2.Jacobi 方法每次旋转会使 E(A) 下降。最后非对角元趋近于零,对角元就是特征值。
Givens 旋转矩阵#
对第 i,j 个坐标平面做旋转,构造矩阵 Vij(φ)。它等于单位矩阵,只在 i,j 行列构成的 2×2 小块上不同:
(cosφ−sinφsinφcosφ).它是正交矩阵:
Vij(φ)TVij(φ)=I.几何上,它是在 (i,j) 平面内旋转一个角度 φ。
TIP配图占位:插入 lesson6 手写 PPT 第 109-119 页中 Givens 旋转矩阵的几何图。
怎样选旋转角#
考虑 2×2 对称子块:
(aiiaijaijajj).目标是通过旋转使非对角元变为 0。
由计算可得,应取 φ 满足:
tan2φ=aii−ajj2aij,∣φ∣<4π.为了计算稳定,课本把它写成:
a=cot2φ=2aijaii−ajj,b=tanφ=sign(a)(a2+1−∣a∣),c=cosφ=1+b21,s=sinφ=bc.WARNING老师上课特别提醒:课本对应位置有一个印刷错误。计算旋转矩阵时,分子应是
aii(k)−ajj(k),不能写成 aii(k)−aij(k)。
Jacobi 算法#
给定实对称矩阵 A:
- 令 A(0)=A,Q=I。
- 在所有非对角元中,选绝对值最大的 aij(k):
∣aij(k)∣=p=qmax∣apq(k)∣.
- 根据 aii(k),aij(k),ajj(k) 计算旋转矩阵 V(k)。
- 更新
A(k+1)=V(k)A(k)(V(k))T.
- 累乘特征向量矩阵
Q←Q(V(k))T.
- 若
E(A(k+1))<ε,则停止。此时 A(k+1) 的对角元为特征值,Q 的列向量为对应特征向量。
课堂 demo 中,老师用类似下面的方式构造随机对称正定矩阵,观察 Jacobi 每一步怎么选最大非对角元:
A = A * A' + 0.1 * eye(5);
这里 AAT 保证对称半正定,在对角线上加一小项通常可使矩阵正定。若要更稳妥,可加更大的正数。
收敛性与特点#
课本定理给出:
E(A(k+1))≤(1−n(n−1)2)E(A(k)).因此
k→∞limE(A(k))=0.特点:
- 收敛可靠;
- 对舍入误差比较稳定;
- 得到的特征向量正交性好;
- 计算量较大;
- 不保持矩阵稀疏结构。
所以 Jacobi 方法适合中小规模、稠密、实对称矩阵的全部特征值和特征向量计算。
例:Jacobi 方法求对称三对角矩阵特征值#
课本例题:
A=2−10−12−10−12.第一次取 i=1,j=2,由于 cot2φ=0,可取
φ=4π,cosφ=sinφ=21.继续旋转后,课本算到
A(5)≈0.585790.002038300.00203833.414010.01675800.0167582.00020.于是特征值近似为:
λ1≈3.41401,λ2≈2.00020,λ3≈0.58579.精确值为:
λ1=2+2,λ2=2,λ3=2−2.
QR 方法#
基本 QR 迭代#
QR 方法用于求矩阵的全部特征值,是实际计算中非常重要的一类方法。
给定
A(1)=A.每一步做 QR 分解:
A(k)=QkRk,其中 Qk 是正交矩阵,Rk 是上三角矩阵。然后反过来相乘:
A(k+1)=RkQk.由于
Rk=QkTA(k),所以
A(k+1)=RkQk=QkTA(k)Qk.这说明 A(k+1) 与 A(k) 正交相似,因此所有 A(k) 都有相同的特征值。
在一定条件下,A(k) 会趋近上三角矩阵;若 A 是实对称矩阵,则会趋近对角矩阵。最终对角元就是特征值近似。
TIP配图占位:插入 lesson6 手写 PPT 第 203-215 页中“A(k)=QkRk,A(k+1)=RkQk=QkTA(k)Qk”的推导截图。
用 Schmidt 正交化做 QR 分解#
设
A=[a1,a2,…,an].Schmidt 正交化给出:
q1=∥a1∥2a1,q~k=ak−i=1∑k−1(ak,qi)qi,qk=∥q~k∥2q~k.令
Q=[q1,q2,…,qn],则 Q 是正交矩阵,并有
A=QR.其中 R 为上三角矩阵。
对
A=2−10−12−10−12做 Schmidt 正交化 QR 分解,可得
Q=52−510703706−705141142143.对应 R 为上三角矩阵,因此 A=QR。
课堂上提到,Schmidt 正交化思路直观,但数值稳定性和效率并不理想。实际 QR 算法常使用 Householder 或 Givens 变换。
Householder 变换#
Householder 变换是一个反射变换。
设 w∈Rn,且
∥w∥2=1.定义
H=I−2wwT.则 H 称为 Householder 矩阵。
它有以下性质:
- HT=H;
- HTH=I,所以 H 是正交矩阵;
- H−1=H;
- det(H)=−1;
- 几何意义是关于超平面 w⊥ 的镜像反射。
课堂上老师用“照镜子”解释:一个向量照一次镜子变到另一侧,再照一次回到原向量。因此 Householder 变换既是正交变换,又满足 H2=I。
TIP配图占位:插入 lesson6 手写 PPT 第 223-233 页或 lesson7 手写 PPT 第 97-108 页中 Householder 反射示意图。
Householder 变换的核心作用:把一个向量变成某个坐标轴方向。
给定非零向量 x,希望构造 H 使
Hx=αe1.常用稳定取法是:
w=∥x+sign(x1)∥x∥2e1∥2x+sign(x1)∥x∥2e1.于是
Hx=−sign(x1)∥x∥2e1.这就能一次性把 x 的后面多个分量消成 0。
化一般矩阵为 Hessenberg 矩阵#
QR 方法如果每一步都直接对完整矩阵做 QR 分解,代价较高。常见优化是先把 A 正交相似化为上 Hessenberg 矩阵。
上 Hessenberg 矩阵形如:
H=∗∗0⋮0∗∗∗⋱⋯∗∗∗⋱0⋯⋯⋯⋱∗∗∗∗⋮∗.也就是主对角线下一条副对角线以下全为 0。
通过 n−2 个 Householder 相似变换,可构造:
H=Hn−2⋯H2H1AH1H2⋯Hn−2.若 A 是实对称矩阵,则 Hessenberg 矩阵进一步退化为三对角矩阵。
课本例题:用 Householder 变换将
A=5100−20−222252/21−4−32−2/20−1化为拟上三角矩阵,得到
H=5100−2020−5−321−12−3−2.拟上三角矩阵的 Givens QR 分解#
对 Hessenberg 矩阵做 QR 分解时,只需依次消去副对角线元素。
若要消去 hk+1,k,取 Givens 旋转,使
(cosφk−sinφksinφkcosφk)(hkkhk+1,k)=(rk0).其中
rk=hkk2+hk+1,k2,cosφk=rkhkk,sinφk=rkhk+1,k.最多 n−1 次旋转后,可得到
H=QR.由于 Hessenberg 矩阵零元很多,这一步的计算量远小于对一般满矩阵直接做 QR 分解。
带原点位移的 QR 方法#
普通 QR 方法可能只线性收敛。为了加速,引入位移 μk:
H(k)−μkI=QkRk,然后更新
H(k+1)=RkQk+μkI.若 μk 选得接近某个特征值,收敛会明显加快。直观上,这与幂法中的原点位移相同:通过移动原点改变特征值之间的相对距离。
若
∣λ1∣≥∣λ2∣≥⋯≥∣λn−1∣>∣λn∣,则 QR 迭代中右下角元素会先接近 λn。选取合适位移后,收敛因子可由类似
λn−1λn改善为
λn−1−μλn−μ.若 μ 接近 λn,后者可以很小。
例:QR 方法求全部特征值#
课本例题:求
A=564−3−4−4245的全部特征值。
先用 Householder 变换把 A 化为 Hessenberg 矩阵,再对该矩阵做 QR 迭代。课本结果为:
λ1≈2.992032,λ2≈2.004695,λ3≈0.999895.准确值为:
λ1=3,λ2=2,λ3=1.这个例子说明:QR 方法通过相似变换逐步把矩阵逼近上三角形,最后从对角元读出特征值。
应用实例#
课本最后用化学吸收过程说明:特征值可以描述系统稳定性和衰减速度。
若动态系统可写成
dtdx=τ1Ax+输入项,则解可分解成若干自然模态:
x(t)=k=1∑nckeλktuk+xs.其中:
- xs 是稳定解;
- uk 是特征向量;
- λk 控制对应模态的增长或衰减。
若
λk=ak+ibk,为了使瞬态部分趋于零,需要所有实部满足:
ak<0.若希望某一模态衰减到初始值的 p%,衰变时间可估计为:
Tk=akln(0.01p).整个系统达到稳定的速度由最大的衰变时间决定。
NOTE这一节说明特征值的意义:它们不仅是代数对象,也描述工程系统中不同模态的增长、振荡和衰减。
方法对比#
| 方法 | 主要用途 | 适用对象 | 核心计算 | 优点 | 局限 |
|---|
| 幂法 | 求按模最大特征值 | 一般矩阵 | 反复 Ax | 简单,适合大规模稀疏矩阵估计主特征值 | 只求一个;当 $ |
| 原点位移幂法 | 加速幂法 | 已知特征值大致分布 | 对 A−λ0I 用幂法 | 可明显改善收敛因子 | 需要合适位移 |
| Aitken 加速 | 加速线性收敛序列 | 幂法产生的标量序列 | 三项外推 | 实现简单 | 序列不稳定时效果差 |
| 反幂法 | 求最小模特征值或精修附近特征值 | 非奇异矩阵 | 解线性方程组 | 带位移后可快速求指定附近特征值 | 每步代价较高 |
| Jacobi 方法 | 求实对称矩阵全部特征值与特征向量 | 实对称矩阵 | 平面旋转消非对角元 | 稳定,特征向量正交性好 | 计算量大,不保稀疏 |
| QR 方法 | 求全部特征值 | 一般矩阵,尤其适合中小型矩阵 | QR 分解 + 相似迭代 | 通用且有效,是实际库函数的重要基础 | 需 Hessenberg 化、位移等技巧提升效率 |
| Householder 变换 | QR 分解与 Hessenberg 化 | 一般矩阵 | 镜像反射消元 | 稳定,可一次消多个分量 | 公式较复杂 |
| Givens 变换 | 稀疏消元、Hessenberg 的 QR | 稀疏或 Hessenberg 矩阵 | 平面旋转消一个元素 | 保持结构,局部操作 | 对满矩阵逐元素消元较慢 |
最后可以这样记:
- 只要最大特征值:优先考虑 幂法;
- 已知某个特征值附近有根:用 带位移的反幂法;
- 实对称小规模全特征值:Jacobi 方法 很稳;
- 通用全特征值:核心方法是 QR 方法;
- QR 的实际高效实现依赖 Householder Hessenberg 化 + Givens/位移 QR。