Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2.5 特征值、谱半径与对称谱理论

本节属“补充篇 · 数值线性代数工具箱”:2.x 是补充篇内部编号,不是课堂第 2 章的节号。课堂第 2 章是线性方程组的解法。

前四节把矩阵当作「算子」「方程组」「投影工具」,这一节换视角:矩阵的谱(特征值集合)刻画它的本质行为——条件数回答「解被放大多少」(2.4),谱半径 ρ(A)\rho(A) 回答「迭代收不收敛、多快」,SVD(2.6)与 QR 迭代也都建立在谱上。本节重点是特征值的扰动敏感性:1.2.6 中 conditioning 与 stability 的区分在此重演,且结论反直觉——对称矩阵温和,非正规矩阵「开方敏感」。路线:谱半径及其上界 → Gerschgorin 圆盘(不算特征值也能定位它们)→ 对称情形(Rayleigh 商与 Courant–Fischer)→ 非正规情形的定量警告。

2.5.1 特征值、谱与谱半径

直觉 · 特征向量 = 「只被拉伸不被转向」的方向

矩阵乘在一个向量上,一般既会把它拉长,也会把它转向。但有些特殊方向上,矩阵只拉长、不转向——这些方向就是特征向量,拉长的倍数就是特征值:

Av=λv,v≠0.A\boldsymbol{v}=\lambda\boldsymbol{v},\qquad \boldsymbol{v}\neq\boldsymbol{0}.

λ\lambda 可以是负数(方向反过来)、复数(带一点旋转)、零(把向量压扁到零)。全部特征值合起来就是矩阵的「指纹」:行列式 =∏λi=\prod\lambda_i(体积缩放)、迹 =∑λi=\sum\lambda_i、可逆性(是否 λi≠0\lambda_i\neq0)、迭代收敛(是否 ∣λi∣<1\lvert\lambda_i\rvert\lt1)、稳定性(看特征值的位置),统统由这份指纹决定。而指纹里最常用的一个数,就是谱半径 ρ(A)=max⁡i∣λi∣\rho(A)=\max_i\lvert\lambda_i\rvert。

定义 2.5.1 · 特征值、谱与谱半径

设 A∈Rn×nA\in\mathbb{R}^{n\times n}。若存在 λ∈C\lambda\in\mathbb{C} 与非零向量 v∈Cn\boldsymbol{v}\in\mathbb{C}^n 使

Av=λv(2.25)A\boldsymbol{v}=\lambda\boldsymbol{v} \tag{2.25}

则称 λ\lambda 为 AA 的特征值(eigenvalue),v\boldsymbol{v} 为对应的特征向量(eigenvector)。AA 的全部特征值(含代数重数)构成 AA 的谱(spectrum),记 σ(A)\sigma(A)(注意与奇异值 σi\sigma_i 区分)。谱半径(spectral radius)定义为

ρ(A)=max⁡λ∈σ(A)∣λ∣.(2.26)\rho(A)=\max_{\lambda\in\sigma(A)}\lvert\lambda\rvert . \tag{2.26}

λ\lambda 是特征值   ⟺  \iff det⁡(A−λI)=0\det(A-\lambda I)=0(特征多项式为 0)。

定理 2.5.1(新增) · 基本性质

设 A∈Rn×nA\in\mathbb{R}^{n\times n},λ1,…,λn\lambda_1,\dots,\lambda_n(含重数)为它的特征值,则

  1. tr⁡A=∑i=1nλi\operatorname{tr}A=\sum_{i=1}^n\lambda_i,det⁡A=∏i=1nλi\det A=\prod_{i=1}^n\lambda_i;
  2. σ(AT)=σ(A)\sigma(A^{\mathrm T})=\sigma(A)(转置不改变特征值;但特征向量一般不同);
  3. 若 AA 可逆,则 σ(A−1)={1/λ:λ∈σ(A)}\sigma(A^{-1})=\{1/\lambda:\lambda\in\sigma(A)\};
  4. σ(Am)={λm:λ∈σ(A)}\sigma(A^m)=\{\lambda^m:\lambda\in\sigma(A)\};
  5. 若 AA 对称,则全部特征值为实数,且存在正交矩阵 VV 使 VTAV=diag⁡(λ1,…,λn)V^{\mathrm T}AV=\operatorname{diag}(\lambda_1,\dots,\lambda_n);
  6. 若 AA 相似于 BB(B=P−1APB=P^{-1}AP),则 σ(B)=σ(A)\sigma(B)=\sigma(A)。
证明

1: AA 的特征多项式 p(λ)=det⁡(A−λI)=(−1)n(λ−λ1)⋯(λ−λn)p(\lambda)=\det(A-\lambda I)=(-1)^n(\lambda-\lambda_1)\cdots(\lambda-\lambda_n)。比较两边 λn−1\lambda^{n-1} 的系数得 tr⁡A=∑λi\operatorname{tr}A=\sum\lambda_i(因为 det⁡(A−λI)\det(A-\lambda I) 展开中 λn−1\lambda^{n-1} 项来自「取对角元 aii−λa_{ii}-\lambda、其余取常数项」),取 λ=0\lambda=0 得 det⁡A=∏λi\det A=\prod\lambda_i。

2、3、4: Av=λv⇒ATA\boldsymbol{v}=\lambda\boldsymbol{v}\Rightarrow A^{\mathrm T} 的(左)特征向量满足 vTA=λvT\boldsymbol{v}^{\mathrm T}A=\lambda\boldsymbol{v}^{\mathrm T},故 λ\lambda 也是 ATA^{\mathrm T} 的特征值;Av=λv⇒A−1v=λ−1vA\boldsymbol{v}=\lambda\boldsymbol{v}\Rightarrow A^{-1}\boldsymbol{v}=\lambda^{-1}\boldsymbol{v}(AA 可逆时 λ≠0\lambda\neq0);归纳得 Amv=λmvA^m\boldsymbol{v}=\lambda^m\boldsymbol{v}。

5: 见 1.3.4 已用到的谱定理;完整证明见习题 B2(要点:实对称矩阵的任一特征值必为实数——在 Av=λvA\boldsymbol{v}=\lambda\boldsymbol{v} 两边左乘 v‾T\overline{\boldsymbol{v}}^{\mathrm T} 得 λ∥v∥2=v‾TAv\lambda\lVert\boldsymbol{v}\rVert^2=\overline{\boldsymbol{v}}^{\mathrm T}A\boldsymbol{v},其共轭转置给出 λ‾∥v∥2=vTATv‾\overline{\lambda}\lVert\boldsymbol{v}\rVert^2=\boldsymbol{v}^{\mathrm T}A^{\mathrm T}\overline{\boldsymbol{v}},由 A=ATA=A^{\mathrm T} 得 λ=λ‾\lambda=\overline{\lambda})。

6: det⁡(B−λI)=det⁡(P−1AP−λI)=det⁡(P−1(A−λI)P)=det⁡(A−λI)\det(B-\lambda I)=\det(P^{-1}AP-\lambda I)=\det(P^{-1}(A-\lambda I)P)=\det(A-\lambda I)。

∎
三者关系:ρ(A)≤∥A∥\rho(A)\le\lVert A\rVert

由定义立刻可得:ρ(A)≤∥A∥\rho(A)\le\lVert A\rVert 对任何相容矩阵范数都成立。严格说明如下:取任意特征值 λ\lambda 与它对应的特征向量 v\boldsymbol{v}, ∣λ∣∥v∥=∥λv∥=∥Av∥≤∥A∥∥v∥ ⟹ ∣λ∣≤∥A∥,\lvert\lambda\rvert\lVert\boldsymbol{v}\rVert=\lVert\lambda\boldsymbol{v}\rVert=\lVert A\boldsymbol{v}\rVert\le\lVert A\rVert\lVert\boldsymbol{v}\rVert\ \Longrightarrow\ \lvert\lambda\rvert\le\lVert A\rVert, 两边同除以 ∥v∥>0\lVert\boldsymbol{v}\rVert\gt0、再对 λ\lambda 取最大即得。这条不等式是「用范数估算收敛速度」的理论基础(第五章的迭代法分析就从它起步)。反过来一般不成立:Jordan 块 A=(1100001)A=\begin{pmatrix}1&amp;1000\\0&amp;1\end{pmatrix} 的 ρ(A)=1\rho(A)=1,而 ∥A∥2≈1000\lVert A\rVert_2\approx1000——谱半径可以远小于范数,这正是非正规矩阵「谱与范数对不上账」的根源。

例 2.5.1(新增) · ρ≤∥A∥\rho\le\lVert A\rVert 的数值核对

取三个随机 4×44\times4 矩阵,把 ρ(A)\rho(A) 与各个范数逐一比较。

解
import numpy as np
rng = np.random.default_rng(1)
for _ in range(3):
    M = rng.normal(size=(4, 4))
    print(f"rho={max(abs(np.linalg.eigvals(M))):.4f}  "
          f"||A||2={np.linalg.norm(M,2):.4f}  ||A||inf={np.linalg.norm(M,np.inf):.4f}  "
          f"||A||1={np.linalg.norm(M,1):.4f}  ||A||F={np.linalg.norm(M,'fro'):.4f}")
rho=1.6564  ||A||2=1.8582  ||A||inf=2.8008  ||A||1=3.0298  ||A||F=2.4343
rho=1.8239  ||A||2=3.3748  ||A||inf=5.1971  ||A||1=4.3686  ||A||F=4.5245
rho=1.3385  ||A||2=2.8698  ||A||inf=3.7301  ||A||1=4.4696  ||A||F=3.3676

三行里 ρ(A)\rho(A) 都严格小于每一个范数,而且 ρ(A)≤∥A∥2≤∥A∥F\rho(A)\le\lVert A\rVert_2\le\lVert A\rVert_F 与 ∥A∥2≤∥A∥1∥A∥∞\lVert A\rVert_2\le\sqrt{\lVert A\rVert_1\lVert A\rVert_\infty} 也都成立(习题 B6 已证)✓。

为什么拿 ρ≤∥A∥2\rho\le\lVert A\rVert_2 当最快的估计? 因为 ∥A∥2\lVert A\rVert_2 能直接算出来(靠 SVD 或幂法迭代),而 ρ(A)\rho(A) 原则上要算出全部特征值;反过来,只要 ∥A∥2<1\lVert A\rVert_2\lt1,立刻就能断定 ρ<1\rho\lt1、迭代收敛——根本不用算特征值。这就是「用范数做收敛判据」最大的便利。

∎

2.5.2 Gerschgorin 圆盘定理:不算特征值也能定位它们

直觉 · 每个特征值被「困在一个圆盘里」

特征值满足 det⁡(A−λI)=0\det(A-\lambda I)=0。能不能把这个条件翻译成一句更直观的话——「λ\lambda 不会离对角元 aiia_{ii} 太远」?能。把方程 Av=λvA\boldsymbol{v}=\lambda\boldsymbol{v} 改写成 (A−λI)v=0(A-\lambda I)\boldsymbol{v}=\boldsymbol{0},挑出 v\boldsymbol{v} 中绝对值最大的那个分量 vkv_k,只看第 kk 个方程,两边再同除以 vkv_k,就得到

(λ−akk)vk=∑j≠kakjvj.(\lambda-a_{kk})v_k=\sum_{j\neq k}a_{kj}v_j .

由于 ∣vj/vk∣≤1\lvert v_j/v_k\rvert\le1,右端的绝对值不超过 ∑j≠k∣akj∣\sum_{j\neq k}\lvert a_{kj}\rvert。于是

∣λ−akk∣≤∑j≠k∣akj∣=:第 k 行的「非对角绝对值和」.\lvert\lambda-a_{kk}\rvert\le\sum_{j\neq k}\lvert a_{kj}\rvert=:\text{第 }k\text{ 行的「非对角绝对值和」}.

于是每个特征值都被某个这样的圆盘困住。 这条定理的妙处在于:几乎不花计算量——只要把矩阵读一遍——就能得到特征值的可靠围栏。工程上常用它快速判断「有没有零特征值」「是不是全在左半平面」。

定理 2.5.2(原书结论,此处给出证明) · Gerschgorin 圆盘定理

设 A=[aij]∈Rn×nA=[a_{ij}]\in\mathbb{R}^{n\times n},定义 nn 个Gerschgorin 圆盘

Di={z∈C:∣z−aii∣≤ri},ri=∑j≠i∣aij∣(i=1,…,n),D_i=\Bigl\{z\in\mathbb{C}:\lvert z-a_{ii}\rvert\le r_i\Bigr\},\qquad r_i=\sum_{j\neq i}\lvert a_{ij}\rvert\qquad(i=1,\dots,n),

(rir_i 是第 ii 行的非对角绝对值和),则

  1. (包含性) AA 的全部特征值都包含在 ⋃i=1nDi\bigcup_{i=1}^nD_i 中;
  2. (连通性) 若这 nn 个圆盘中有 kk 个构成一个与其他圆盘不相交的连通区域,则该区域中恰好含有 AA 的 kk 个特征值(重数计)。
  3. (列版本) 把 rir_i 换成列的非对角绝对值和 ∑j≠i∣aji∣\sum_{j\neq i}\lvert a_{ji}\rvert(即对 ATA^{\mathrm T} 用上述结论),结论同样成立;两个版本的交集可用来收紧围栏。
证明

(1) 设 λ\lambda 是 AA 的特征值,v≠0\boldsymbol{v}\neq\boldsymbol{0} 满足 Av=λvA\boldsymbol{v}=\lambda\boldsymbol{v},即对每个 ii,

∑j=1naijvj=λvi⟹(λ−aii)vi=∑j≠iaijvj.(2.27)\sum_{j=1}^{n}a_{ij}v_j=\lambda v_i\qquad\Longrightarrow\qquad (\lambda-a_{ii})v_i=\sum_{j\neq i}a_{ij}v_j . \tag{2.27}

取 kk 使 ∣vk∣=max⁡j∣vj∣>0\lvert v_k\rvert=\max_j\lvert v_j\rvert\gt0。看(2.27)在 i=ki=k 的情形,两边取绝对值:

∣λ−akk∣ ∣vk∣=∣∑j≠kakjvj∣≤∑j≠k∣akj∣ ∣vj∣≤(∑j≠k∣akj∣)∣vk∣.\lvert\lambda-a_{kk}\rvert\,\lvert v_k\rvert=\Bigl\lvert\sum_{j\neq k}a_{kj}v_j\Bigr\rvert\le\sum_{j\neq k}\lvert a_{kj}\rvert\,\lvert v_j\rvert\le\Bigl(\sum_{j\neq k}\lvert a_{kj}\rvert\Bigr)\lvert v_k\rvert .

约去 ∣vk∣>0\lvert v_k\rvert\gt0,得 ∣λ−akk∣≤rk\lvert\lambda-a_{kk}\rvert\le r_k,即 λ∈Dk\lambda\in D_k。

(2) 这是圆盘定理的「加强版」,标准证法用连续性。考虑 At=D+t(A−D)A_t=D+t(A-D)(D=diag⁡(aii)D=\operatorname{diag}(a_{ii}) 是对角部分)。A0=DA_0=D 的特征值就是各个 aiia_{ii},即第 ii 个圆盘的圆心;A1=AA_1=A 的特征值按(1)落在各圆盘内。tt 从 00 连续增加到 11 时,特征值也随 tt 连续变化(特征值是特征多项式系数的连续函数,而多项式的根对系数连续)。既然某个连通区域与其他圆盘不相交,特征值在连续移动中就没有办法跳过中间的空白地带,因此进入该区域的特征值个数始终不变——而 t=0t=0 时该区域恰好含 kk 个圆心,也就是 kk 个特征值。所以 t=1t=1 时它仍含 kk 个。

(3) 对 ATA^{\mathrm T} 应用(1)。ATA^{\mathrm T} 与 AA 有相同的特征值(定理 2.5.1 第 2 条),故结论对「列和」也成立。两个版本同时成立时,取交集即可。

∎
Gerschgorin 的三种用法
  1. 判断可逆性 / 是否有零特征值。 若所有圆盘都不含原点(0∉⋃Di0\notin\bigcup D_i),则 AA 没有零特征值,因而非奇异。判断「不含原点」最常用的充分条件是严格对角占优(strictly diagonally dominant):若 ∣aii∣>ri\lvert a_{ii}\rvert\gt r_i 对每一行都成立,每个圆盘就都以对角元为中心、半径小于到原点的距离,于是 0∉⋃Di0\notin\bigcup D_i——第五章迭代法(Jacobi、Gauss–Seidel)的收敛性判据就建立在这条之上。
  2. 判断特征值是否全在左半平面。 若所有圆盘都落在左半平面(Re⁡aii+ri<0\operatorname{Re}a_{ii}+r_i\lt0),则全部特征值的实部为负——这是动力系统 / 控制理论的稳定性判据。
  3. 给出特征值的近似。 对角元占优时圆盘很小,aiia_{ii} 就是 λi\lambda_i 的良好近似(误差 ≤ri\le r_i)。这是「对角元是特征值的粗糙近似」的定量版本。
例 2.5.2(新增) · 用 Gerschgorin 圆盘围出特征值

对

A=(10−12041−215)A=\begin{pmatrix}10&amp;-1&amp;2\\0&amp;4&amp;1\\-2&amp;1&amp;5\end{pmatrix}

写出全部 Gerschgorin 圆盘,用行列两个版本收紧围栏,并判断 AA 是否非奇异。

解

行圆盘:

ii 中心 aiia_{ii} 半径 rir_i(该行非对角绝对值和) 区间(实轴上)
1 1010 ∣−1∣+∣2∣=3\lvert-1\rvert+\lvert2\rvert=3 [7, 13][7,\ 13]
2 44 0+∣1∣=10+\lvert1\rvert=1 [3, 5][3,\ 5]
3 55 ∣−2∣+∣1∣=3\lvert-2\rvert+\lvert1\rvert=3 [2, 8][2,\ 8]

列圆盘: 半径换成「该列非对角绝对值和」——以第 3 列为例,整列绝对值和 ∣2∣+∣1∣+∣5∣\lvert2\rvert+\lvert1\rvert+\lvert5\rvert 中属于对角元的那一项不计入:

jj 半径 cjc_j(该列非对角绝对值和) 区间
1 ∣0∣+∣−2∣=2\lvert0\rvert+\lvert-2\rvert=2 [8, 12][8,\ 12]
2 ∣−1∣+∣1∣=2\lvert-1\rvert+\lvert1\rvert=2 [2, 6][2,\ 6]
3 ∣2∣+∣1∣=3\lvert2\rvert+\lvert1\rvert=3 [2, 8][2,\ 8]

收紧后的围栏: 定理严格给出的是两个并集的交:σ(A)⊆(行圆盘的并)∩(列圆盘的并)=[2,13]∩[2,12]=[2,12]\sigma(A)\subseteq\bigl(\text{行圆盘的并}\bigr)\cap\bigl(\text{列圆盘的并}\bigr)=[2,13]\cap[2,12]=[2,12]。至于逐盘配对取交([8,12][8,12]、[3,5][3,5]、[2,8][2,8]),那只是启发式收紧,并不是定理的结论——用的时候要当心:[8,12][8,12] 与 [2,8][2,8] 在 88 处相切,按连通性条款它们其实连成了一块(连通性只对同一版本的 nn 个圆盘适用)。

老实说: 列版本的三个圆盘连成一条链,严格讲并不存在孤立分量;不过相切是「刀锋」情形——任何微小扰动都会把链断开,所以不妨把它当作一种极限情形下的直觉。数值验证(NumPy):特征值为 9.06879.0687、6.27786.2778、3.65353.6535——9.06879.0687 确实独占 [8,12][8,12],另两个落在 [2,8][2,8] 内,与直觉一致。

非奇异性: 原点 00 不在任何行圆盘内(最靠左的区间是 [2,8][2,8]),故 AA 非奇异。

真值(NumPy): σ(A)={3.6535, 6.2778, 9.0687}\sigma(A)=\{3.6535,\ 6.2778,\ 9.0687\}。逐条核对:9.0687∈[8,12]9.0687\in[8,12] ✓;6.2778∈[2,8]6.2778\in[2,8] ✓;3.6535∈[3,5]3.6535\in[3,5] ✓;一个特征值落在孤立圆盘、两个落在连通区域 ✓。

顺带一提: AA 其实还是严格对角占优的——第 1 行 ∣10∣>3\lvert10\rvert\gt3 ✓,第 2 行 ∣4∣>1\lvert4\rvert\gt1 ✓,第 3 行 ∣5∣>3\lvert5\rvert\gt3 ✓,三行都满足 ∣aii∣>ri\lvert a_{ii}\rvert\gt r_i,所以「AA 非奇异」这个结论直接由此也能得到。

∎

2.5.3 幂法与 Rayleigh 商(预告路线图第三章)

直觉 · 反复乘,最大的特征值会「浮出水面」

把一个向量按 AA 的特征向量展开:x=∑icivi\boldsymbol{x}=\sum_i c_i\boldsymbol{v}_i。然后反复乘 AA:

Akx=∑iciλikvi=λ1k[c1v1+∑i>1ci(λiλ1)kvi].A^k\boldsymbol{x}=\sum_ic_i\lambda_i^k\boldsymbol{v}_i=\lambda_1^k\Bigl[c_1\boldsymbol{v}_1+\sum_{i\gt1}c_i\Bigl(\frac{\lambda_i}{\lambda_1}\Bigr)^k\boldsymbol{v}_i\Bigr].

提取公因子 λ1k\lambda_1^k 后,括号里除了第一项,其余各项都带着因子 (λi/λ1)k→0(\lambda_i/\lambda_1)^k\to0(只要 ∣λ1∣>∣λi∣\lvert\lambda_1\rvert\gt\lvert\lambda_i\rvert)。于是这个向量的方向趋于 v1\boldsymbol{v}_1,而模长每乘一次就放大 ∣λ1∣\lvert\lambda_1\rvert。这就是幂法:不需要任何矩阵分解,只有反复的「乘一次、归一化一次」——只要矩阵–向量乘法足够便宜(稀疏矩阵!),它就能求出主特征值。

收敛速度取决于 ∣λ2/λ1∣\lvert\lambda_2/\lambda_1\rvert(这个比值越小,收敛越快)。它也叫做分离度,是衡量「主特征值问题好不好算」的一把尺子。

算法 2.5.1 · 幂法(power method)+ Rayleigh 商

输入:A∈Rn×nA\in\mathbb{R}^{n\times n},初始向量 x0\boldsymbol{x}_0(u1Tx0≠0\boldsymbol{u}_1^{\mathrm T}\boldsymbol{x}_0\neq0),步数 kmax⁡k_{\max};输出:λ1\lambda_1 的近似 R(xk)R(\boldsymbol{x}_k) 与特征向量近似 xk\boldsymbol{x}_k;假设:∣λ1∣>∣λ2∣\lvert\lambda_1\rvert\gt\lvert\lambda_2\rvert(主特征值单占);复杂度:每步一次矩阵–向量乘 O(n2)O(n^2)(AA 稀疏时 O(nnz)O(\mathrm{nnz})),共 O(kmax⁡n2)O(k_{\max}n^2)。

x = 任意非零向量,规范化:x = x / ||x||
repeat:
    y = A @ x                     # 一次矩阵-向量乘法
    x_new = y / ||y||             # 规范化(防止溢出/下溢)
    lambda = x_new' @ A @ x_new   # Rayleigh 商 ← 更准的特征值估计
    if ||x_new - x|| < tol: break
    x = x_new
return lambda, x

为什么用 Rayleigh 商,而不是 ∥y∥\lVert\boldsymbol{y}\rVert 这类比值? 因为 ∥y∥/∥x∥\lVert y\rVert/\lVert x\rVert 只有 ∣λ1∣\lvert\lambda_1\rvert 的一阶精度(误差 O(∣λ2/λ1∣k)O(\lvert\lambda_2/\lambda_1\rvert^k)),而 Rayleigh 商 R(x)=xTAx/xTxR(\boldsymbol{x})=\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}/\boldsymbol{x}^{\mathrm T}\boldsymbol{x} 的精度是二阶(误差 O(∣λ2/λ1∣2k)O(\lvert\lambda_2/\lambda_1\rvert^{2k}))——到达同样的精度,所需步数减半。这是 Rayleigh 商最实际的用途。

定理 2.5.3(新增) · 幂法收敛速度与 Rayleigh 商精度

设 AA 对称,特征值满足 ∣λ1∣>∣λ2∣≥⋯≥∣λn∣\lvert\lambda_1\rvert\gt\lvert\lambda_2\rvert\ge\cdots\ge\lvert\lambda_n\rvert,对应的标准正交特征向量为 u1,…,un\boldsymbol{u}_1,\dots,\boldsymbol{u}_n。设初值 x0\boldsymbol{x}_0 满足 u1Tx0≠0\boldsymbol{u}_1^{\mathrm T}\boldsymbol{x}_0\neq0,xk=Akx0/∥Akx0∥\boldsymbol{x}_k=A^k\boldsymbol{x}_0/\lVert A^k\boldsymbol{x}_0\rVert。则

∥xk−u1∥2=O ⁣(∣λ2λ1∣k),∣R(xk)−λ1∣=O ⁣(∣λ2λ1∣2k),\lVert\boldsymbol{x}_k-\boldsymbol{u}_1\rVert_2=O\!\left(\left\lvert\frac{\lambda_2}{\lambda_1}\right\rvert^{k}\right),\qquad \lvert R(\boldsymbol{x}_k)-\lambda_1\rvert=O\!\left(\left\lvert\frac{\lambda_2}{\lambda_1}\right\rvert^{2k}\right),

其中 R(x)=xTAxxTxR(\boldsymbol{x})=\dfrac{\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}}{\boldsymbol{x}^{\mathrm T}\boldsymbol{x}} 为 Rayleigh 商。

证明(要点)

记 x0=∑iciui\boldsymbol{x}_0=\sum_ic_i\boldsymbol{u}_i,c1≠0c_1\neq0。则

Akx0=∑iciλikui=λ1k[c1u1+∑i≥2ci(λiλ1)kui]=λ1k(c1u1+ηk),A^k\boldsymbol{x}_0=\sum_ic_i\lambda_i^k\boldsymbol{u}_i=\lambda_1^k\Bigl[c_1\boldsymbol{u}_1+\sum_{i\ge2}c_i\Bigl(\frac{\lambda_i}{\lambda_1}\Bigr)^k\boldsymbol{u}_i\Bigr] =\lambda_1^k\bigl(c_1\boldsymbol{u}_1+\boldsymbol{\eta}_k\bigr),

其中 ∥ηk∥=O(∣λ2/λ1∣k)\lVert\boldsymbol{\eta}_k\rVert=O(\lvert\lambda_2/\lambda_1\rvert^k)。规范化后 xk=(u1+c1−1ηk)/∥⋅∥\boldsymbol{x}_k=(\boldsymbol{u}_1+c_1^{-1}\boldsymbol{\eta}_k)/\lVert\cdot\rVert,故方向误差为一阶量 O(∣λ2/λ1∣k)O(\lvert\lambda_2/\lambda_1\rvert^k)。

Rayleigh 商的部分:设 x=u1+δ\boldsymbol{x}=\boldsymbol{u}_1+\boldsymbol{\delta}、δ⊥u1\boldsymbol{\delta}\perp\boldsymbol{u}_1。则

xTAx=(u1+δ)TA(u1+δ)=λ1+2λ1u1Tδ+δTAδ=λ1+δTAδ\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}=(\boldsymbol{u}_1+\boldsymbol{\delta})^{\mathrm T}A(\boldsymbol{u}_1+\boldsymbol{\delta})=\lambda_1+2\lambda_1\boldsymbol{u}_1^{\mathrm T}\boldsymbol{\delta}+\boldsymbol{\delta}^{\mathrm T}A\boldsymbol{\delta} =\lambda_1+\boldsymbol{\delta}^{\mathrm T}A\boldsymbol{\delta}

(交叉项因 u1TAδ=λ1u1Tδ=0\boldsymbol{u}_1^{\mathrm T}A\boldsymbol{\delta}=\lambda_1\boldsymbol{u}_1^{\mathrm T}\boldsymbol{\delta}=0 消失)。又 xTx=1+2u1Tδ+∥δ∥2=1+O(∥δ∥2)\boldsymbol{x}^{\mathrm T}\boldsymbol{x}=1+2\boldsymbol{u}_1^{\mathrm T}\boldsymbol{\delta}+\lVert\boldsymbol{\delta}\rVert^2=1+O(\lVert\boldsymbol{\delta}\rVert^2)。于是

R(x)=λ1+δTAδ1+O(∥δ∥2)=λ1+O(∥δ∥2).R(\boldsymbol{x})=\frac{\lambda_1+\boldsymbol{\delta}^{\mathrm T}A\boldsymbol{\delta}}{1+O(\lVert\boldsymbol{\delta}\rVert^2)}=\lambda_1+O(\lVert\boldsymbol{\delta}\rVert^2).

关键就在这一点:特征向量的误差是一阶量,Rayleigh 商的误差是它的平方——因为 λ1\lambda_1 正是 Rayleigh 商在 u1\boldsymbol{u}_1 处取到的驻点,一阶项自动消失(这也是 定理 2.5.5 的 Courant–Fischer 定理所刻画的极值性质)。

∎
例 2.5.3(新增) · 幂法的实测收敛速度

对

A=(520241013)A=\begin{pmatrix}5&amp;2&amp;0\\2&amp;4&amp;1\\0&amp;1&amp;3\end{pmatrix}

用幂法算主特征值,报告每一步的 Rayleigh 商误差,验证速度约为 ∣λ2/λ1∣2\lvert\lambda_2/\lambda_1\rvert^2。

解

σ(A)={6.6691, 3.4760, 1.8549}\sigma(A)=\{6.6691,\ 3.4760,\ 1.8549\}(NumPy),故 ∣λ2/λ1∣≈0.52122\lvert\lambda_2/\lambda_1\rvert\approx0.52122,Rayleigh 商误差每步应乘约 0.521222≈0.27170.52122^2\approx0.2717。

import numpy as np
A = np.array([[5.,2,0],[2,4,1],[0,1,3]])
w = np.sort(np.abs(np.linalg.eigvals(A)))[::-1]
x = np.ones(3)/np.sqrt(3)
prev = None
for k in range(1, 13):
    y = A @ x; x = y/np.linalg.norm(y); r = x @ A @ x
    ratio = "" if prev is None else f"  误差比={abs(r-w[0])/prev:.4f}"
    prev = abs(r - w[0])
    if k in (1,2,3,5,8,12):
        print(f"k={k:2d} Rayleigh={r:.10f} 误差={abs(r-w[0]):.3e}{ratio}")
k= 1 Rayleigh=6.5000000000 误差=1.691e-01
k= 2 Rayleigh=6.6248462485 误差=4.423e-02
k= 3 Rayleigh=6.6572150909 误差=1.186e-02
k= 5 Rayleigh=6.6682079209 误差=8.712e-04
k= 8 Rayleigh=6.6690616301 误差=1.746e-05
k=12 Rayleigh=6.6690789932 误差=9.509e-08

逐段核对比值: 4.423×10−2/1.691×10−1=0.26164.423\times10^{-2}/1.691\times10^{-1}=0.2616;1.186×10−2/4.423×10−2=0.26821.186\times10^{-2}/4.423\times10^{-2}=0.2682;8.712×10−4/…≈0.2698.712\times10^{-4}/\ldots\approx0.269;9.509×10−8/1.746×10−5=0.005459.509\times10^{-8}/1.746\times10^{-5}=0.00545(这一段恰好是理论比值的四步复合 0.271740.2717^4,仍走在理论轨道上)。

结论: 实测比值 0.26∼0.270.26\sim0.27,与理论值 0.27170.2717 吻合 ✓。这就是「收敛速度 =(λ2/λ1)2=(\lambda_2/\lambda_1)^2」的直接证据。

对比一下: 如果不用 Rayleigh 商,而用 ∥Axk∥\lVert A\boldsymbol{x}_k\rVert 当估计,比值会是 0.52120.5212(一阶),达到同样精度需要大约两倍的步数。这正是 定理 2.5.3 的实用价值。

反幂法(预告): 把 AA 换成 (A−μI)−1(A-\mu I)^{-1},主特征值就变成 1/(λ∗−μ)1/(\lambda^{*}-\mu)——迭代会收敛到最接近 μ\mu 的那个特征值,速度由 ∣(λi−μ)/(λj−μ)∣\lvert(\lambda_i-\mu)/(\lambda_j-\mu)\rvert 决定。这既是「已知近似值、反过来求精确特征值」的标准技巧(μ\mu 取 Rayleigh 商时,精度还能再升到三阶),也是第三章 3.1.2 的内容。

∎

2.5.4 对称谱理论:Rayleigh 商与 Courant–Fischer

对称矩阵在数值分析里享有「特权」:它的谱全是实数,可以正交对角化,条件数等于奇异值之比而且不需要求逆,扰动敏感性温和。也就是说,对称特征值问题属于「总能算得又准又稳」的那一类。为什么对称矩阵的世界特别美好?根源在于:它的特征值可以被一个优化问题刻画,而刻画的核心工具就是 Rayleigh 商。下面先把 Rayleigh 商的变分性质讲清楚,再用 Courant–Fischer 定理把全部特征值一次性纳入同一个框架。

定义 2.5.2 · Rayleigh 商

设 A∈Rn×nA\in\mathbb{R}^{n\times n} 对称、x≠0\boldsymbol{x}\neq\boldsymbol{0},称

R(x)=xTAxxTx(2.28)R(\boldsymbol{x})=\frac{\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}}{\boldsymbol{x}^{\mathrm T}\boldsymbol{x}} \tag{2.28}

为 AA 在 x\boldsymbol{x} 处的 Rayleigh 商。若 x\boldsymbol{x} 是单位向量,则 R(x)=xTAxR(\boldsymbol{x})=\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}。

直觉 · Rayleigh 商是「在某个方向上测出的特征值」

把 x\boldsymbol{x} 归一化以后,R(x)R(\boldsymbol{x}) 就是 AA 在方向 x\boldsymbol{x} 上的「平均拉伸倍数」:它一定落在 λmin⁡\lambda_{\min} 与 λmax⁡\lambda_{\max} 之间,而当 x\boldsymbol{x} 恰好是特征向量时,R(x)=λR(\boldsymbol{x})=\lambda——分毫不差。Courant–Fischer 定理说的就是:把所有方向都试一遍,最小值是 λmin⁡\lambda_{\min},最大值是 λmax⁡\lambda_{\max}。 更漂亮的是,夹在中间的那些特征值也有变分刻画——「先在 kk 维子空间上取最小,再在所有 kk 维子空间上取最大」,得到的就是 λk\lambda_k。这条定理是把特征值问题变成优化问题的桥梁,也是现代特征值算法(Lanczos、Arnoldi、子空间迭代)的全部理论基础。

定理 2.5.4(新增) · 对称矩阵 Rayleigh 商的变分性质

设 A∈Rn×nA\in\mathbb{R}^{n\times n} 对称,特征值(从小到大)λ1≤λ2≤⋯≤λn\lambda_1\le\lambda_2\le\cdots\le\lambda_n,对应的标准正交特征向量 u1,…,un\boldsymbol{u}_1,\dots,\boldsymbol{u}_n,则

λ1=min⁡x≠0R(x),λn=max⁡x≠0R(x).\lambda_1=\min_{\boldsymbol{x}\neq\boldsymbol{0}}R(\boldsymbol{x}),\qquad \lambda_n=\max_{\boldsymbol{x}\neq\boldsymbol{0}}R(\boldsymbol{x}).

且 x\boldsymbol{x} 是极值点   ⟺  \iff x\boldsymbol{x} 是对应 λ1\lambda_1(或 λn\lambda_n)的特征向量。

证明

任何 x≠0\boldsymbol{x}\neq\boldsymbol{0} 可展开为 x=∑ikiui\boldsymbol{x}=\sum_ik_i\boldsymbol{u}_i,由正交性 xTx=∑iki2\boldsymbol{x}^{\mathrm T}\boldsymbol{x}=\sum_ik_i^2,且

xTAx=∑i,jkikjuiTAuj=∑i,jkikjλjδij=∑iλiki2.\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}=\sum_{i,j}k_ik_j\boldsymbol{u}_i^{\mathrm T}A\boldsymbol{u}_j=\sum_{i,j}k_ik_j\lambda_j\delta_{ij}=\sum_i\lambda_ik_i^2 .

于是

R(x)=∑iλiki2∑iki2.R(\boldsymbol{x})=\frac{\sum_i\lambda_ik_i^2}{\sum_ik_i^2} .

一旦看出它是加权平均,结论就自动出来了: R(x)R(\boldsymbol{x}) 是以 ki2/(∑jkj2)k_i^2/(\sum_jk_j^2) 为权的 λi\lambda_i 的加权平均,必然落在 [λ1,λn][\lambda_1,\lambda_n] 内。等号出现在下界,当且仅当全部权重都集中到 λ1\lambda_1 上,即 x∈span⁡{u1}\boldsymbol{x}\in\operatorname{span}\{\boldsymbol{u}_1\};上界的情形同理。

∎
定理 2.5.5(新增) · Courant–Fischer 极小极大原理

设 AA 对称,特征值从小到大为 λ1≤⋯≤λn\lambda_1\le\cdots\le\lambda_n,则对 k=1,…,nk=1,\dots,n,

λk=min⁡dim⁡S=k max⁡0≠x∈SR(x)=max⁡dim⁡T=n−k+1 min⁡0≠x∈TR(x),\lambda_k=\min_{\dim\mathcal{S}=k}\ \max_{\boldsymbol{0}\neq\boldsymbol{x}\in\mathcal{S}}R(\boldsymbol{x}) =\max_{\dim\mathcal{T}=n-k+1}\ \min_{\boldsymbol{0}\neq\boldsymbol{x}\in\mathcal{T}}R(\boldsymbol{x}) ,

其中 S,T\mathcal{S},\mathcal{T} 取遍 Rn\mathbb{R}^n 的相应维数子空间。

证明(第一等式)

先证 ≥\ge(取特定的 kk 维子空间)。 令 S0=span⁡{u1,…,uk}\mathcal{S}_0=\operatorname{span}\{\boldsymbol{u}_1,\dots,\boldsymbol{u}_k\}。对任意 x∈S0\boldsymbol{x}\in\mathcal{S}_0、x=∑i≤kkiui\boldsymbol{x}=\sum_{i\le k}k_i\boldsymbol{u}_i,有 R(x)≤λkR(\boldsymbol{x})\le\lambda_k(加权平均的权只落在 λ1,…,λk\lambda_1,\dots,\lambda_k 上)。故

max⁡x∈S0R(x)=λk(取 x=uk 达到)⟹min⁡dim⁡S=kmax⁡x∈SR(x)≤λk.\max_{\boldsymbol{x}\in\mathcal{S}_0}R(\boldsymbol{x})=\lambda_k\qquad(\text{取}\ \boldsymbol{x}=\boldsymbol{u}_k\ \text{达到})\quad\Longrightarrow\quad \min_{\dim\mathcal{S}=k}\max_{\boldsymbol{x}\in\mathcal{S}}R(\boldsymbol{x})\le\lambda_k .

再证 ≤\le(维数计数)。 设 S\mathcal{S} 是任意 kk 维子空间,令 T=span⁡{uk,…,un}\mathcal{T}=\operatorname{span}\{\boldsymbol{u}_k,\dots,\boldsymbol{u}_n\},dim⁡T=n−k+1\dim\mathcal{T}=n-k+1。由维数公式

dim⁡(S∩T)≥dim⁡S+dim⁡T−n=k+(n−k+1)−n=1,\dim(\mathcal{S}\cap\mathcal{T})\ge\dim\mathcal{S}+\dim\mathcal{T}-n=k+(n-k+1)-n=1,

故存在 0≠x∈S∩T\boldsymbol{0}\neq\boldsymbol{x}\in\mathcal{S}\cap\mathcal{T}。写 x=∑i≥kkiui\boldsymbol{x}=\sum_{i\ge k}k_i\boldsymbol{u}_i,则 R(x)≥λkR(\boldsymbol{x})\ge\lambda_k(权只落在 λk,…,λn\lambda_k,\dots,\lambda_n 上)。于是在这个 S\mathcal{S} 上 max⁡R≥λk\max R\ge\lambda_k;S\mathcal{S} 是任意的,对 S\mathcal{S} 取下确界后仍 ≥λk\ge\lambda_k。

两个方向合起来就是第一等式。至于第二等式,对 −A-A 套用第一等式即可((−A)(-A) 的特征值是 −λn≤⋯≤−λ1-\lambda_n\le\cdots\le-\lambda_1,其中第 kk 大 =−λn−k+1=-\lambda_{n-k+1},再用 min⁡max⁡\min\max 与 max⁡min⁡\max\min 的互换)。

∎
例 2.5.4(新增) · 数值验证 Courant–Fischer

对

A=(410131012)A=\begin{pmatrix}4&amp;1&amp;0\\1&amp;3&amp;1\\0&amp;1&amp;2\end{pmatrix}

数值验证:随机方向上的 Rayleigh 商极值趋于 λmin⁡,λmax⁡\lambda_{\min},\lambda_{\max};kk 维子空间上的极小值最大化后趋于 λ2\lambda_2。

解

σ(A)={1.2679, 3.0000, 4.7321}\sigma(A)=\{1.2679,\ 3.0000,\ 4.7321\}(从小到大)。

import numpy as np
A = np.array([[4.,1,0],[1,3,1],[0,1,2]])
w = np.linalg.eigvalsh(A)                     # 升序
rng = np.random.default_rng(0)
# (a) 随机单位方向上的 Rayleigh 商极值
vals = []
for _ in range(200000):
    x = rng.normal(size=3); x /= np.linalg.norm(x); vals.append(x @ A @ x)
print(f"随机方向: min R={min(vals):.8f}  max R={max(vals):.8f}")
print(f"理论:     λmin={w[0]:.8f}  λmax={w[-1]:.8f}")
# (b) 2 维子空间上的极小值,再在所有 2 维子空间上取最大
best = -np.inf
for _ in range(200000):
    Q, _ = np.linalg.qr(rng.normal(size=(3, 2)))      # 随机 2 维子空间的正交基
    best = max(best, np.linalg.eigvalsh(Q.T @ A @ Q)[0])   # 该子空间上的 min R
print(f"max over 2-dim subspaces of min R = {best:.8f}  (理论 λ2={w[1]:.8f})")
随机方向: min R=1.26795245  max R=4.73203903
理论:     λmin=1.26794919  λmax=4.73205081
max over 2-dim subspaces of min R = 3.00000000  (理论 λ2=3.00000000)

从结果里读出三件事:

  1. 随机方向上的极值只是逼近 λmin⁡,λmax⁡\lambda_{\min},\lambda_{\max}(差 ∼10−5\sim10^{-5}):20 万次随机采样并没有命中精确的特征方向——变分原理的本质是优化,随机撒点只不过是一种近似的优化方式。
  2. 第二项精确等于 λ2=3\lambda_2=3:取等的子空间是 S=span⁡{u2,u3}\mathcal{S}=\operatorname{span}\{\boldsymbol{u}_2,\boldsymbol{u}_3\}(其上 min⁡R=λ2\min R=\lambda_2);而任何 2 维子空间都与 span⁡{u1,u2}\operatorname{span}\{\boldsymbol{u}_1,\boldsymbol{u}_2\} 有非零交(维数公式 2+2>32+2\gt3),在该交集上 R≤λ2R\le\lambda_2,故 max⁡\max 不可能超过 λ2\lambda_2。这就是 Courant–Fischer 的取等构造在起作用。
  3. 实用含义: 求 λ2\lambda_2 可以「在 2 维子空间上做 Rayleigh 商最小化」——这就是 Lanczos 算法 / 子空间迭代的基本思想,也是 习题 C6 的动手内容。
∎

2.5.5 特征值的敏感性:对称 vs 非正规

这是本节最重要、也最反直觉的一节。前面反复出现的「对称矩阵很温和」这句话,到这里要兑现成定量的结论,同时也把「非正规矩阵有多难缠」摆到台面上。

直觉 · 重特征值会被扰动「撕开」成 ε\sqrt{\varepsilon} 或更糟

设想 AA 有一个重特征值(例如 λ=1\lambda=1,二重)。如果往矩阵上加一个大小为 ε\varepsilon 的扰动,特征值会跑多远?

  • 对称(或正规)情形: 移动量是 O(ε)O(\varepsilon)——温和。
  • 非正规情形(如 Jordan 块): 移动量是 O(ε)O(\sqrt{\varepsilon})——开方敏感!ε=10−16\varepsilon=10^{-16} 时移动 10−810^{-8}:丢了 8 位有效数字。

为什么会开方? 把 A=(1101)A=\begin{pmatrix}1&amp;1\\0&amp;1\end{pmatrix} 扰动成 (11t1)\begin{pmatrix}1&amp;1\\t&amp;1\end{pmatrix},特征方程是 (1−λ)2=t(1-\lambda)^2=t,于是 λ=1±t\lambda=1\pm\sqrt{t}。重根处的特征多项式是「平方」形态,解出来自然带根号。 重数越高越糟:kk 重特征值遇上 O(ε)O(\varepsilon) 量级的扰动,可以移动 O(ε1/k)O(\varepsilon^{1/k})。

工程含义: 别指望用数值方法算准重特征值——重特征值问题是固有病态的(1.2.6 的 conditioning 概念)。反过来,对称矩阵即使有重特征值也照样温和:它的特征值由 Rayleigh 商的极值刻画(定理 2.5.4),而极值对扰动的响应是 Lipschitz 的——扰动有多大,极值最多也就变多大。

定理 2.5.6(新增) · 特征值扰动界(两个极端情形)

(一)对称情形(Weyl 不等式): 设 A,E∈Rn×nA,E\in\mathbb{R}^{n\times n} 对称,特征值分别按升序为 λ1≤⋯≤λn\lambda_1\le\cdots\le\lambda_n 与 μ1≤⋯≤μn\mu_1\le\cdots\le\mu_n,则对每个 ii,

∣λi−μi∣≤∥E∥2.\lvert\lambda_i-\mu_i\rvert\le\lVert E\rVert_2 .

即对称矩阵的特征值对扰动是 11-Lipschitz 的——误差与扰动同阶,一点都不放大。

(二)一般情形(Bauer–Fike 定理): 设 AA 可对角化,A=VΛV−1A=V\Lambda V^{-1},EE 为扰动,则 σ(A+E)\sigma(A+E) 中的每个特征值 μ\mu 都满足

min⁡λ∈σ(A)∣λ−μ∣≤∥V∥2 ∥V−1∥2 ∥E∥2=cond2(V) ∥E∥2.\min_{\lambda\in\sigma(A)}\lvert\lambda-\mu\rvert\le\lVert V\rVert_2\,\lVert V^{-1}\rVert_2\,\lVert E\rVert_2=\mathrm{cond}_2(V)\,\lVert E\rVert_2 .

放大因子就是特征向量矩阵 VV 的条件数。 对称矩阵的 VV 可以取成正交矩阵(此时 cond2(V)=1\mathrm{cond}_2(V)=1),界便退化为「扰动的一倍」——这正是情形(一)的来源。而非正规矩阵的特征向量矩阵 VV 可以病态到极点,能把 O(ε)O(\varepsilon) 的扰动放大成巨大的特征值移动。

(三)重特征值情形(无一般界!) 若 AA 有 kk 重特征值且非正规(Jordan 块),扰动 ∥E∥=ε\lVert E\rVert=\varepsilon 可使特征值移动 O(ε1/k)O(\varepsilon^{1/k})——这是无界的放大因子(ε1/k/ε=ε1/k−1→∞\varepsilon^{1/k}/\varepsilon=\varepsilon^{1/k-1}\to\infty),且任何算法都无法改善。

证明

(一)Weyl 不等式。 用 Courant–Fischer(定理 2.5.5):

λi=min⁡dim⁡S=imax⁡x∈SRA(x),μi=min⁡dim⁡S=imax⁡x∈SRA+E(x).\lambda_i=\min_{\dim\mathcal{S}=i}\max_{\boldsymbol{x}\in\mathcal{S}}R_A(\boldsymbol{x}),\qquad \mu_i=\min_{\dim\mathcal{S}=i}\max_{\boldsymbol{x}\in\mathcal{S}}R_{A+E}(\boldsymbol{x}) .

对任意固定的 S\mathcal{S} 与单位向量 x∈S\boldsymbol{x}\in\mathcal{S},∣RA(x)−RA+E(x)∣=∣xTEx∣≤∥E∥2\lvert R_{A}(\boldsymbol{x})-R_{A+E}(\boldsymbol{x})\rvert=\lvert\boldsymbol{x}^{\mathrm T}E\boldsymbol{x}\rvert\le\lVert E\rVert_2。因此对每个固定的 S\mathcal{S},两个「max⁡\max」之差都不超过 ∥E∥2\lVert E\rVert_2;再对 S\mathcal{S} 取 min⁡\min,同样得到 ∣λi−μi∣≤∥E∥2\lvert\lambda_i-\mu_i\rvert\le\lVert E\rVert_2。

(二)Bauer–Fike。 设 (A+E)w=μw(A+E)\boldsymbol{w}=\mu\boldsymbol{w}、∥w∥2=1\lVert\boldsymbol{w}\rVert_2=1。则

(A−μI)w=−Ew,w=−(A−μI)−1Ew  (μ∉σ(A) 时).(A-\mu I)\boldsymbol{w}=-E\boldsymbol{w},\qquad \boldsymbol{w}=-(A-\mu I)^{-1}E\boldsymbol{w}\ \ (\mu\notin\sigma(A)\ \text{时}) .

设 μ\mu 使 μI−A\mu I-A 可逆(否则 μ\mu 已是 AA 的特征值,结论显然)。取范数:

1=∥w∥≤∥(A−μI)−1∥2∥E∥2.1=\lVert\boldsymbol{w}\rVert\le\lVert(A-\mu I)^{-1}\rVert_2\lVert E\rVert_2 .

关键一步:估计 ∥(A−μI)−1∥2\lVert(A-\mu I)^{-1}\rVert_2。 用 A=VΛV−1A=V\Lambda V^{-1}:

∥(A−μI)−1∥2=∥V(Λ−μI)−1V−1∥2≤∥V∥2∥V−1∥2max⁡i1∣λi−μ∣=cond2(V)min⁡i∣λi−μ∣.\lVert(A-\mu I)^{-1}\rVert_2=\lVert V(\Lambda-\mu I)^{-1}V^{-1}\rVert_2\le\lVert V\rVert_2\lVert V^{-1}\rVert_2\max_i\frac{1}{\lvert\lambda_i-\mu\rvert} =\frac{\mathrm{cond}_2(V)}{\min_i\lvert\lambda_i-\mu\rvert} .

代入上式得 1≤cond2(V)∥E∥2min⁡i∣λi−μ∣1\le\dfrac{\mathrm{cond}_2(V)\lVert E\rVert_2}{\min_i\lvert\lambda_i-\mu\rvert},整理后就是待证的结论。

(三) 用一个 Jordan 块把现象显式摆出来:A=(1101)A=\begin{pmatrix}1&amp;1\\0&amp;1\end{pmatrix}(k=2k=2 重特征值 11),E=(00t0)E=\begin{pmatrix}0&amp;0\\t&amp;0\end{pmatrix},则 A+EA+E 的特征方程 (1−λ)2=t(1-\lambda)^2=t 给出 λ=1±t\lambda=1\pm\sqrt{t},移动量就是 t=ε1/2\sqrt{t}=\varepsilon^{1/2}(取 ε=t\varepsilon=t)。

∎
例 2.5.5(新增) · 开方敏感 vs 温和:数值对照

(1)对 Jordan 块 A=(1101)A=\begin{pmatrix}1&amp;1\\0&amp;1\end{pmatrix} 加扰动 E=(00t0)E=\begin{pmatrix}0&amp;0\\t&amp;0\end{pmatrix},看特征值的移动怎样随 tt 变化。 (2)对对称矩阵 A=(1002)A=\begin{pmatrix}1&amp;0\\0&amp;2\end{pmatrix} 加扰动 E=(0tt0)E=\begin{pmatrix}0&amp;t\\t&amp;0\end{pmatrix},同样观察一遍。

解
import numpy as np
print("== (1) Jordan 块(非正规)==")
J = np.array([[1.,1],[0,1.]])
for t in [1e-2,1e-4,1e-8,1e-12,1e-16]:
    B = J + np.array([[0.,0],[t,0]])
    print(f"  t={t:.0e}  特征值={np.round(np.linalg.eigvals(B),10)}  "
          f"1±sqrt(t)={1-np.sqrt(t):.10f},{1+np.sqrt(t):.10f}")
print("== (2) 对称矩阵 ==")
S = np.array([[1.,0],[0,2.]])
for t in [1e-2,1e-8,1e-16]:
    B = S + np.array([[0.,t],[t,0]])
    print(f"  t={t:.0e}  特征值={np.round(np.linalg.eigvalsh(B),14)}  (移动量 ~t)")
== (1) Jordan 块(非正规)==
  t=1e-02  特征值=[1.1 0.9]  1±sqrt(t)=0.9000000000,1.1000000000
  t=1e-04  特征值=[1.01 0.99]  1±sqrt(t)=0.9900000000,1.0100000000
  t=1e-08  特征值=[1.0001 0.9999]  1±sqrt(t)=0.9999000000,1.0001000000
  t=1e-12  特征值=[1.000001 0.999999]  1±sqrt(t)=0.9999990000,1.0000010000
  t=1e-16  特征值=[1. 1.]  1±sqrt(t)=0.9999999900,1.0000000100
== (2) 对称矩阵 ==
  t=1e-02  特征值=[0.99990001 2.00009999]  (移动量 ≈t²)
  t=1e-08  特征值=[1. 2.]
  t=1e-16  特征值=[1. 2.]

(1)的读法: 移动量精确等于 t\sqrt{t}。t=10−2t=10^{-2} 时移动 10−110^{-1}、t=10−12t=10^{-12} 时移动 10−610^{-6}——扰动缩小了 10 个数量级,误差才从 10−110^{-1} 压到 10−610^{-6}(只缩了 5 个数量级),这就是「开方」的含义。t=10−16t=10^{-16} 时(t=10−8\sqrt{t}=10^{-8})双精度仍能分辨 1±10−81\pm10^{-8}(11 附近的机器精度是 2×10−162\times10^{-16}),所以这一行依然正确;若取 t=10−20t=10^{-20},1±10−101\pm10^{-10} 就再也算不出来了——在重特征值附近,双精度只能保证约 8 位有效数字(精度是 u\sqrt{u} 而不是 uu)。

(2)的读法: 特征值精确为 1.5±0.25+t21.5\pm\sqrt{0.25+t^2},移动量约 t2t^2——比 tt 还小一个数量级(t=10−2t=10^{-2} 时只移动 10−410^{-4},见表中 0.999900010.99990001)。t=10−8t=10^{-8} 与 10−1610^{-16} 时,移动量(∼10−16\sim10^{-16} 与 ∼10−32\sim10^{-32})已经低于机器精度,完全测不出来——对称矩阵的特征值对扰动极其稳健。

工程结论: ① 对称特征值问题(结构力学、协方差矩阵、量子力学)总能算得很准;② 非对称 / 非正规矩阵的重特征值问题(如流体稳定性、某些控制问题)在数值上极难处理——这不是算法不行,是问题本身病态;③ 实践中应尽量避免让矩阵既非正规又带重特征值,或者改用 Schur 形式 / 奇异值(σi=λi(ATA)\sigma_i=\sqrt{\lambda_i(A^{\mathrm T}A)} 总在对称矩阵上算,原理上更稳)。

∎
例 2.5.6(新增) · 非正规矩阵的「伪谱」直觉(可选)

取 N=(1100001)N=\begin{pmatrix}1&amp;1000\\0&amp;1\end{pmatrix},它的 ρ(N)=1\rho(N)=1、∥N∥2≈1000\lVert N\rVert_2\approx1000。请解释:为什么「ρ(N)<1\rho(N)\lt1 就意味着迭代收敛」这句话,在非正规矩阵上不能按直觉来用。

解

ρ(N)=1\rho(N)=1(特征值 1,11,1),∥N∥2≈1000\lVert N\rVert_2\approx1000。谱半径远小于范数。

问题出在「迭代 NkN^k 到底衰不衰减」上。 对正规矩阵,∥Ak∥2=ρ(A)k=∣λmax⁡∣k\lVert A^k\rVert_2=\rho(A)^k=\lvert\lambda_{\max}\rvert^k,所以 ρ<1\rho\lt1 立刻给出几何衰减。对非正规矩阵,只能保证 ρ(A)=lim⁡k∥Ak∥1/k\rho(A)=\lim_k\lVert A^k\rVert^{1/k}(Gelfand 公式,证明与瞬态增长的定量分析见附录 A.2.7)——这个极限式子固然成立,但有限步内的 ∥Nk∥\lVert N^k\rVert 可以要多大有多大。本例:

Nk=(1k⋅100001),∥Nk∥2≈1000k (线性增长!)N^k=\begin{pmatrix}1&amp;k\cdot1000\\0&amp;1\end{pmatrix},\qquad \lVert N^k\rVert_2\approx1000k\ (\text{线性增长!})

即使 ρ(N)=1\rho(N)=1(注意还不是 <1\lt1),∥Nk∥\lVert N^k\rVert 也能增长到任意大;哪怕取 ρ(N)=0.9<1\rho(N)=0.9\lt1(例如 (0.9M00.9)\begin{pmatrix}0.9&amp;M\\0&amp;0.9\end{pmatrix}),在 k≲1/log⁡(1/0.9)k\lesssim1/\log(1/0.9) 的步数内,∥Nk∥\lVert N^k\rVert 仍可能先上升——这就是「瞬态增长」(transient growth)。

工程含义: 第五章的迭代法收敛性判据如果只写「ρ(H)<1\rho(H)\lt1」,在非正规情形下就是理论上成立、实践中可能失效(有限步内误差先涨后落,甚至溢出)。更稳妥的判据是 ∥H∥<1\lVert H\rVert\lt1(1.3.5 定理 1.3.6),它给出每一步都在收缩的保证。这就是「用范数,不用谱半径」的实用理由。

(这类现象在流体力学与数值天气预报里尤其常见,有专门的工具对付它——伪谱(pseudospectrum),见 延伸阅读。)

∎

2.5.6 小结与常见错误

本节公式速查
概念 公式 / 结论
特征值 Av=λvA\boldsymbol{v}=\lambda\boldsymbol{v};det⁡(A−λI)=0\det(A-\lambda I)=0
迹 / 行列式 tr⁡A=∑λi\operatorname{tr}A=\sum\lambda_i;det⁡A=∏λi\det A=\prod\lambda_i
谱半径 ρ(A)=max⁡∣λi∣\rho(A)=\max\lvert\lambda_i\rvert
谱半径与范数 ρ(A)≤∥A∥\rho(A)\le\lVert A\rVert(任一相容范数)
Gerschgorin ∣λ−aii∣≤∑j≠i∣aij∣\lvert\lambda-a_{ii}\rvert\le\sum_{j\neq i}\lvert a_{ij}\rvert;连通区域含对应个数特征值
对角占优 ∣aii∣>∑j≠i∣aij∣ ∀i⇒A\lvert a_{ii}\rvert\gt\sum_{j\neq i}\lvert a_{ij}\rvert\ \forall i\Rightarrow A 非奇异
Rayleigh 商 R(x)=xTAx/xTxR(\boldsymbol{x})=\boldsymbol{x}^{\mathrm T}A\boldsymbol{x}/\boldsymbol{x}^{\mathrm T}\boldsymbol{x}(AA 对称)
变分刻画 λ1=min⁡R\lambda_1=\min R,λn=max⁡R\lambda_n=\max R;Courant–Fischer 给全部中间特征值
幂法收敛 向量误差 O(∣λ2/λ1∣k)O(\lvert\lambda_2/\lambda_1\rvert^k);Rayleigh 商误差 O(∣λ2/λ1∣2k)O(\lvert\lambda_2/\lambda_1\rvert^{2k})
对称扰动 ∣λi(A+E)−λi(A)∣≤∥E∥2\lvert\lambda_i(A+E)-\lambda_i(A)\rvert\le\lVert E\rVert_2(Weyl)
一般扰动 ≤cond2(V)∥E∥2\le\mathrm{cond}_2(V)\lVert E\rVert_2(Bauer–Fike)
重特征值 非正规 kk 重:移动 O(∥E∥1/k)O(\lVert E\rVert^{1/k})——固有病态
常见错误清单 · 自查六条
  1. 拿 ∥A∥\lVert A\rVert 当 ρ(A)\rho(A)。 ρ≤∥A∥\rho\le\lVert A\rVert 是不等式,在非正规矩阵上两者可以差几个数量级(例 2.5.6 的 11 对 10001000)。用 ρ\rho 判收敛时还要记住:ρ<1\rho\lt1 只是渐近结论,有限步内误差可能先涨——稳妥的判据是 ∥A∥<1\lVert A\rVert\lt1。(这正是课堂上「迭代收敛判定选 ∥G∥<1\lVert G\rVert\lt1 而非 ρ(G)<1\rho(G)\lt1」的原因,见第 3 讲精编定理后的预告与第 4 讲的收敛定理;∥A∥2=σ1\lVert A\rVert_2=\sigma_1 的公式见 2.6。)
  2. 以为重特征值也能算准。 非正规矩阵的 kk 重特征值遇上 O(ε)O(\varepsilon) 扰动会移动 O(ε1/k)O(\varepsilon^{1/k}):双精度下 k=2k=2 只剩约 8 位有效数字,k=4k=4 只剩约 4 位。这是问题的固有属性,换个算法没用(1.2.6)。
  3. 把 Gerschgorin 圆盘当精确值。 它给出的是包含区间;只有对角占优时圆心才接近特征值。若圆盘相交,只能断定「这个连通区里有多少个特征值」,无法把它们一一配到具体位置上。
  4. 忘记 Gerschgorin 的列版本。 行、列两个版本的交集能给出更紧的围栏(例 2.5.2 的 [8,12][8,12] 就是取交的收获)。对 ATA^{\mathrm T} 用行版本,即得列版本。
  5. 幂法中不做规范化。 AkxA^k\boldsymbol{x} 的模长按 ∣λ1∣k\lvert\lambda_1\rvert^k 增长或衰减,会溢出 / 下溢。每步都要归一化(除以范数)。同样地,提精度要用 Rayleigh 商,而不是 ∥Ax∥/∥x∥\lVert A\boldsymbol{x}\rVert/\lVert\boldsymbol{x}\rVert。
  6. 以为特征值都是实的。 实矩阵也可以有复特征值(旋转矩阵就是!);只有对称矩阵才保证特征值全实。算非对称矩阵时要用 np.linalg.eigvals(复)而不是 np.linalg.eigvalsh(假定对称)——错误地假定对称会静默给出错误结果。
课程预告 · 本节之后
  • SVD 就是对称谱定理在长方形矩阵上的推广:σi(A)=λi(ATA)\sigma_i(A)=\sqrt{\lambda_i(A^{\mathrm T}A)} 在对称半正定矩阵上算,因此总是良态的——2.6;
  • 幂法 / 反幂法 / QR 方法 / Jacobi 方法求特征值:原书第 3 章 3.1–3.3 节(课堂已于第 6 讲开篇,并在第 7 讲展开规范化幂法、反幂法与位移反幂法;本节的 Rayleigh 商正是幂法提取特征值的工具);
  • 谱半径决定迭代收敛速度:原书第 2 章 2.4 节与第 2 章(ρ(H)<1\rho(H)\lt1 是 Jacobi / Gauss–Seidel / SOR 收敛的判据,课堂实录见第 5 讲、第 6 讲);
  • 条件数与谱的关系:cond2(A)=σ1/σr\mathrm{cond}_2(A)=\sigma_1/\sigma_r(2.4),而 σ\sigma 来自对称矩阵的谱——两节在这里汇合。