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

3.1 幂法与反幂法

对应教材 3.1.1–3.1.2、例 1–2、习题 1–6;对应老师第 6 讲末、第 7 讲 §一–§八。 主线:幂法求模最大特征值,反幂法求模最小特征值,位移反幂法求最接近 pp 的特征值。

3.1.1 幂法

设 AA 有 nn 个线性无关的特征向量 x1,…,xnx_1,\dots,x_n,对应特征值满足 ∣λ1∣>∣λ2∣≥⋯≥∣λn∣. |\lambda_1|\gt|\lambda_2|\ge\cdots\ge|\lambda_n|. 任取非零 u0u_0,若 u0u_0 在 x1x_1 方向分量不为零,则 uk=Aku0=a1λ1kx1+a2λ2kx2+⋯+anλnkxn=λ1k(a1x1+∑j=2naj(λjλ1)kxj). u_k=A^k u_0=a_1\lambda_1^kx_1+a_2\lambda_2^kx_2+\cdots+a_n\lambda_n^kx_n =\lambda_1^k\left(a_1x_1+\sum_{j=2}^n a_j\left(\frac{\lambda_j}{\lambda_1}\right)^kx_j\right). 当 kk 充分大时,uku_k 的方向趋于 x1x_1;比值 ∣λ2/λ1∣|\lambda_2/\lambda_1| 越小,收敛越快。

规范化幂法(教材式 3.4/3.7): yk−1=uk−1∥uk−1∥2,uk=Ayk−1,βk=yk−1Tuk. y_{k-1}=\frac{u_{k-1}}{\lVert u_{k-1}\rVert_2},\qquad u_k=A y_{k-1},\qquad \beta_k=y_{k-1}^{\mathrm T}u_k. βk→λ1\beta_k\to\lambda_1,yk−1→x1/∥x1∥2y_{k-1}\to x_1/\lVert x_1\rVert_2。

老师强调的顺序:先单位化,再乘 AA。若先乘 AA 再单位化,范数会随 λ1k\lambda_1^k 爆炸/下溢;先单位化把尺度钉住,数值稳定。

为什么特征值必须用 2-范数:特征向量只关心方向,范数任取;但 βk=yk−1TAyk−1\beta_k=y_{k-1}^{\mathrm T}A y_{k-1} 只有在 ∥y∥2=1\lVert y\rVert_2=1 时才是 Rayleigh 商。用 ∞\infty-范数归一化会丢掉分母 yTyy^{\mathrm T}y,把二阶精度降为一阶。

收敛速度:误差按 ∣λ2/λ1∣k|\lambda_2/\lambda_1|^k 下降;若 ∣λ1∣=⋯=∣λm∣>∣λm+1∣|\lambda_1|=\cdots=|\lambda_m|\gt|\lambda_{m+1}|,则 yky_k 收敛到 λ1\lambda_1 的特征子空间中的某个向量,βk\beta_k 仍收敛到 λ1\lambda_1。

例 1(教材 3.1.1):矩阵 A=(6−126−21−324−12−1251). A=\begin{pmatrix} 6&-12&6\ -21&-3&24\ -12&-12&51 \end{pmatrix}. 精确特征值为 45,18,−945,18,-9。取 u0=(1,0,0)Tu_0=(1,0,0)^{\mathrm T},按规范化幂法迭代,βk\beta_k 迅速趋向 4545:

kkukTu_k^{\mathrm T}ykTy_k^{\mathrm T}βk\beta_k
01.0000, 0.0000, 0.00001.0000, 0.0000, 0.0000—
16.0000, -21.0000, -12.00000.2857, -1.0000, -0.57146.0000
210.2857, -16.7143, -20.57140.5000, -0.8125, -1.000016.7143
36.7500, -32.0625, -47.25000.1429, -0.6786, -1.000047.2500
43.0000, -24.9643, -44.57140.0673, -0.5601, -1.000044.5714
51.1250, -23.7332, -45.08650.0250, -0.5264, -1.000045.0865
90.0294, -22.5296, -45.00010.0016, -0.5016, -1.000045.0001

结果 λ1≈45.0001\lambda_1\approx45.0001,x1≈(0.0016,−0.5016,−1)Tx_1\approx(0.0016,-0.5016,-1)^{\mathrm T},与精确解 (0,−0.5,−1)T(0,-0.5,-1)^{\mathrm T} 同向。

3.1.2 反幂法与位移反幂法

若 AA 非奇异,A−1A^{-1} 的特征值是 1/λi1/\lambda_i,特征向量不变。因此对 A−1A^{-1} 用幂法,就得到 AA 的模最小特征值: Auk=yk−1,βk=yk−1Tuk≈1λn. A u_k=y_{k-1},\qquad \beta_k=y_{k-1}^{\mathrm T}u_k\approx\frac{1}{\lambda_n}. 实际计算不构造 A−1A^{-1},每步解一个线性方程组;先对 AA 做一次 LU 分解,之后反复前代/回代。

位移反幂法:对 A−pIA-pI 用反幂法,得到最接近 pp 的特征值: (A−pI)uk=yk−1,λ≈p+1βk. (A-pI)u_k=y_{k-1},\qquad \lambda\approx p+\frac{1}{\beta_k}. pp 越接近目标特征值,收敛越快;pp 恰好等于特征值时,A−pIA-pI 奇异,需要特殊处理(或取邻近值)。

例 2(教材 3.1.2):仍取例 1 的 AA,求模最小特征值。反幂法迭代表(节选):

kkukTu_k^{\mathrm T}ykTy_k^{\mathrm T}βk\beta_k
01.0000, 1.0000, 1.00000.5774, 0.5774, 0.5774—
1-0.0321, -0.0706, -0.0128-0.4082, -0.8981, -0.1633-0.0667
20.0680, 0.0844, 0.00850.6278, 0.7784, 0.0781-0.1049
3-0.0664, -0.1049, -0.0388-0.5105, -0.8065, -0.2981-0.1264
40.0582, 0.0856, 0.02800.5424, 0.7985, 0.2610-0.1071
7-0.0594, -0.0892, -0.0297—-0.1112

λ3≈1/β7≈−8.9928\lambda_3\approx1/\beta_7\approx-8.9928,特征向量 x3≈(0.5359,0.8009,0.2671)Tx_3\approx(0.5359,0.8009,0.2671)^{\mathrm T},与精确值 −9-9、(0.5345,0.8018,0.2673)T(0.5345,0.8018,0.2673)^{\mathrm T} 一致。

3.1.3 习题(教材习题 1–6)

3.1 · 幂法乘法次数(教材习题 1)

用 uk=Aku0u_k=A^ku_0 与逐步 ui=Aui−1u_i=Au_{i-1} 两种形式产生 uku_k,各需多少次乘法?

参考答案

逐步乘:kk 次矩阵-向量乘,每次 n2n^2 次乘法,共 kn2kn^2。先算 AkA^k 再乘 u0u_0:AkA^k 需约 (k−1)n3(k-1)n^3 次,再加 n2n^2,远贵。实际永远用逐步乘。

3.2 · 幂法求主特征值(教材习题 2)

用幂法求教材习题 2 中两个矩阵的按模最大特征值与特征向量,要求 ∣βk−βk−1∣/∣βk∣≤10−4|\beta_k-\beta_{k-1}|/|\beta_k|\le10^{-4}。

参考答案

按规范化幂法迭代,直到相邻 β\beta 的相对差小于 10−410^{-4};βk\beta_k 收敛到 λ1\lambda_1,yk−1y_{k-1} 收敛到特征向量方向。具体数值用 NumPy/Python 复算,保留四位。

3.3 · 商序列收敛(教材习题 3)

设 u0u_0 在 x1x_1 方向分量非零,vTx1≠0v^{\mathrm T}x_1\ne0,证明 βk=vTAku0vTAk−1u0→λ1\beta_k=\frac{v^{\mathrm T}A^k u_0}{v^{\mathrm T}A^{k-1}u_0}\to\lambda_1。

参考答案

把 Aku0A^k u_0 展开为 ∑ajλjkxj\sum a_j\lambda_j^kx_j,分子分母同除 λ1k−1\lambda_1^{k-1};由 ∣λj/λ1∣<1|\lambda_j/\lambda_1|\lt1(j≥2j\ge2)得极限 λ1vTx1vTx1=λ1\lambda_1\frac{v^{\mathrm T}x_1}{v^{\mathrm T}x_1}=\lambda_1。

3.4 · 反幂法(教材习题 4)

用反幂法求第 2 题 (1) 的矩阵按模最小的特征值与特征向量,要求相对差 ≤10−4\le10^{-4}。

参考答案

对 AA 做 LU 分解;每步解 Auk=yk−1Au_k=y_{k-1},βk=yk−1Tuk\beta_k=y_{k-1}^{\mathrm T}u_k,λn≈1/βk\lambda_n\approx1/\beta_k。不要构造 A−1A^{-1}。

3.5 · 已知近似特征值(教材习题 5)

已知 AA 的一个特征值 λ≈9\lambda\approx9,用反幂法精修 λ\lambda 与特征向量。

参考答案

取位移 p=9p=9,对 A−pIA-pI 做反幂法;λ≈p+1/βk\lambda\approx p+1/\beta_k。若 A−pIA-pI 近似奇异,迭代会很快收敛,但要注意分解的数值稳定性。

3.6 · 实特征值的算法选择(教材习题 6)

设 −50<λ1<λ2<−10≤λ3≤⋯≤λn-50\lt\lambda_1\lt\lambda_2\lt-10\le\lambda_3\le\cdots\le\lambda_n,分别写出求 λ1,λ2,λn\lambda_1,\lambda_2,\lambda_n 的迭代格式。

参考答案

求 λn\lambda_n:幂法(模最大)。求 λ1\lambda_1:反幂法(模最小)或位移反幂法(pp 取在 λ1\lambda_1 附近)。求 λ2\lambda_2:用位移 pp 取在 λ2\lambda_2 与 λ3\lambda_3 之间(如 p=−10p=-10 附近),对 A−pIA-pI 反幂法,收敛到最接近 pp 的 λ2\lambda_2。

覆盖核对

本节覆盖教材 3.1.1–3.1.2、例 1–2、习题 1–6;老师第 6 讲末、第 7 讲 §一–§八。下一节:3.2 Jacobi 方法。