科学仿真 · 从零学起 第 6 / 8 节

第 XXII–XXV 讲 · 特征值问题与 SVD 的数值算法

特征值与特征向量没法"解出来"——五次以上多项式没有求根公式,特征值只能是迭代逼近。这一组讲建立现代特征值算法的完整逻辑链:化简 → 平移迭代 → 收敛,最后用 SVD 一统特征值与最小二乘。

化简:先变成海森堡形

满矩阵直接做幂迭代太贵。第一步用 Householder 相似变换把矩阵化为上海森堡形(次对角线以下全零):

$$H = Q^TAQ$$

相似变换保特征值,$Q$ 记录变换累积。海森堡形上每次 QR 迭代只要 $O(n^2)$(满矩阵要 $O(n^3)$)——化简是"先付一次性 $O(n^3)$,换每步十倍加速"。

QR 算法:带平移的迭代

$$H - \mu I = QR, \qquad H' = RQ + \mu I$$

$H'$ 与 $H$ 相似(正交相似),若 $\mu$ 接近某特征值,则 $H'$ 的对应次对角元迅速趋零——切出这个特征值,对剩余块继续。Wilkinson 位移取尾块 $2\times2$ 的特征值中靠近末元的那个,保证几乎总是二次以上收敛。实矩阵避免复数运算用 Francis 双重位移。隐式 QR(bulge chasing)只在海森堡形上"追一个凸包"完成等效变换,是工程实现的真身。

对称情形与 SVD

对称阵上海森堡形退化为三对角,QR 迭代更便宜;对称三对角的另一种快刀是分而治之与 MRRR(工业库的默认)。而SVD 的两个算法通道:其一,对 $A^TA$(对称)做特征值算法得奇异值平方根(浪费且条件数平方,只作教学);其二,Golub-Kahan 双对角化 $A = UBV^T$($B$ 双对角)后对 $B^TB$ 追 QR 迭代——LAPACK 的 GESVD 即此路线。

原文要点:Lecture 24 的关键论断:"QR 算法不是把 QR 分解当工具用一次,而是反复做、每次往后走一步",收敛性由"次对角元平方收敛于位移-特征值之差"刻画;Lecture 31 之前先指出幂迭代的角色:它解释"为什么迭代有效",QR 算法是它的高维加速版本。

老师的提醒

  • 只要特征值不要特征向量时,能省一半以上时间与内存——接口里"只要特征值"的开关就是为这设计的。
  • 重特征值(相近特征值)附近特征向量对扰动敏感(特征向量条件数 $\sim 1/\text{gap}$),比较向量结果时先看 gap。

自检

  • 为什么特征值问题必须迭代?
  • 海森堡化简买到了什么?
  • Wilkinson 位移的思想是什么?

更深一层:QR 算法的"幂迭代加速史"

QR 算法不是天上掉下来的,它是幂迭代的系统化升级,这条演进线值得走一遍:幂迭代 $v \leftarrow Av/\|Av\|$ 收敛到最大特征向量,速率 $(\lambda_2/\lambda_1)^k$——$\lambda_2$ 接近 $\lambda_1$ 时慢到绝望。逆迭代加位移 $\sigma$:$(A - \sigma I)^{-1}$ 的幂迭代,收敛率 $|(\lambda_2 - \sigma)/(\lambda_1 - \sigma)|$——位移贴近特征值时飞快,但需要解方程。子空间加速:同时追 $p$ 个向量(正交化防塌缩),收敛看 $\lambda_{p+1}/\lambda_1$——QR 算法正是"对整个海森堡矩阵同时做子空间迭代"的隐式实现。位移加速:Wilkinson 位移让每次迭代后次对角元平方衰减。这条链上每一步都解决前一步的具体痛点——数值算法的演进从来是"问题驱动"而非"天才空降"。

推导细读:海森堡形是"一次付清的过路费"

满矩阵做一次 QR 迭代要 $O(n^3)$,迭代几十次天文数字。海森堡化($10n^3/3$ 的 Householder 化简)一次性把矩阵变成"次对角线以下全零"的形态,此后每次 QR 迭代只需 $O(n^2)$——迭代几十次的总成本反超满矩阵一次的成本。更妙的是海森堡形在 QR 迭代下不变(不变子空间结构),一次付费永久受益。这个"化简-迭代"二段式是大规模特征值算法的通用架构:对称阵化三对角、非对称化海森堡、SVD 化双对角——同一个架构模式的三次复用。

在真实世界里:特征值计算的工程面孔

  • 振动模态分析:有限元刚度/质量广义特征值 $\mathbf{K}\phi = \omega^2\mathbf{M}\phi$,只取最低几十阶 → Lanczos + 位移变换,ARPACK 打包好了;
  • 主成分分析:协方差阵 top-k 特征 → 对称分而治之或随机化 SVD(大矩阵更快);
  • Google PageRank:$10^{10}$ 维矩阵的最大特征向量 → 幂迭代(网页链接矩阵的特殊结构让最古老的方法最有效)——算法的"高低贵贱"取决于矩阵从哪来。

常见误区与辨析

  • "特征值算出来就对":非对称矩阵特征值条件数可以巨大(非正规矩阵),结果敏感是问题的性质不是算法的错——先看伪谱再下结论。
  • "QR 算法就是反复做 QR 分解":文字对,理解错——关键是带位移的隐式移位迭代与海森堡保持;朴素 QR 既慢又不稳定。
  • "对称矩阵随便用通用求法":对称有专用的分而治之/MRRR,比通用 QR 快好几倍且精度可控——用错工具的代价在特征值问题里特别明显。

专题深入:QR 算法的"幂迭代加速史"完整版

QR 算法的演进链值得完整走一遍:幂迭代 $v \leftarrow Av/\|Av\|$ 收敛到最大特征向量,速率 $(\lambda_2/\lambda_1)^k$——$\lambda_2$ 接近 $\lambda_1$ 时慢到绝望。逆迭代加位移 $\sigma$:$(A - \sigma I)^{-1}$ 的幂迭代——位移贴近特征值时飞快,但需要解方程。子空间加速:同时追 $p$ 个向量(正交化防塌缩),收敛看 $\lambda_{p+1}/\lambda_1$——QR 算法正是"对整个海森堡矩阵同时做子空间迭代"的隐式实现。Wilkinson 位移让每次迭代后次对角元平方衰减。这条链上每一步都解决前一步的具体痛点——数值算法的演进从来是"问题驱动"而非"天才空降"。

数学细节展开:海森堡化简是"一次付清的过路费"

海森堡化($10n^3/3$ 的 Householder 化简)一次性把矩阵变成"次对角线以下全零",此后每次 QR 迭代只需 $O(n^2)$——迭代几十次的总成本反超满矩阵一次的成本。海森堡形在 QR 迭代下不变(不变子空间结构)——一次付费永久受益。这个"化简-迭代"二段式是大规模特征值算法的通用架构:对称阵化三对角、非对称化海森堡、SVD 化双对角——同一个架构模式的三次复用。

工程案例细节:特征值计算的工程面孔

  • 振动模态分析:$\mathbf{K}\phi = \omega^2\mathbf{M}\phi$ 只取低阶 → Lanczos + 位移变换(ARPACK 打包好了);
  • PCA:协方差阵 top-k → 对称分而治之或随机化 SVD;
  • PageRank:$10^{10}$ 维矩阵最大特征向量 → 幂迭代(链接矩阵的特殊结构让最古老的方法最有效)——算法的"高低贵贱"取决于矩阵从哪来。

常见误区与辨析(补充)

  • "特征值算出来就对":非对称矩阵特征值条件数可以巨大——非正规矩阵的结果敏感是问题的性质不是算法的错。
  • "对称矩阵随便用通用求法":对称有专用的分而治之/MRRR,比通用 QR 快好几倍且精度可控——用错工具的代价在特征值问题里特别明显。

例题

对 $A = \begin{pmatrix} 2 & 1\\ 1 & 3\end{pmatrix}$ 从 $\mathbf{q}_0 = (1, 1)^T/\sqrt2$ 做两步幂迭代(精确归一化),估计最大特征值对应的 Rayleigh 商。

解答

第一步:$A\mathbf{q}_0 = \frac{1}{\sqrt2}(3, 4)^T$,$\|\cdot\| = \frac{5}{\sqrt2}$,$\mathbf{q}_1 = (3,4)^T/5$。

第二步:$A\mathbf{q}_1 = \frac{1}{5}(2\cdot3+4,\ 3+12)^T = (10, 15)^T/5 = (2,3)^T$,$\|\cdot\| = \sqrt{13}$,$\mathbf{q}_2 = (2,3)^T/\sqrt{13}$。

Rayleigh 商:

$$\theta = \mathbf{q}_2^TA\mathbf{q}_2 = \frac{(2,3)\cdot(7,11)}{13} = \frac{47}{13} \approx 3.615$$

真值 $\lambda_{max} = \frac{5+\sqrt5}{2} \approx 3.618$——两步已到 3 位有效数字(收敛率 $\approx (\lambda_2/\lambda_1)^2 = 0.382^2$,快)。

本页是《数值线性代数》第 6 节的学习笔记:为便于初学,讲解、例题与要点概括均为本站原创整理,公式与章节定位供对照原书使用。

📑 本书目录 经典研读