幂法模拟器 返回
数值线性代数模拟器

幂法模拟器 — 最大特征值的迭代计算

对3×3对称矩阵重复进行 v ← Av/‖Av‖,估计最大绝对值特征值和特征向量。通过Rayleigh商读取特征值,体验由收敛比 |λ₂/λ₁| 决定的收敛速度。

参数设置
迭代次数 k
对角元素 A[1,1]
对角元素 A[2,2]
对角元素 A[3,3]
目标矩阵 A
410
131
012
非对角元素固定(A[1,2]=A[2,3]=1, A[1,3]=0)
初始向量 v₀ = (1, 1, 1)/√3
计算结果
估计最大特征值 λ₁ (Rayleigh商)
真值 λ₁ (参考: 3+√3)
估计误差 |λ_est − λ_true|
收敛比 |λ₂/λ₁|
每次迭代的 λ_est 和误差收敛

上部分:λ_est[k](红线)和 λ_true(灰色水平线)/下部分:log₁₀|λ_est[k]−λ_true|(蓝线)。斜率 ≈ log₁₀|λ₂/λ₁|

理论与主要公式

幂法是一种用迭代求解给定矩阵 $A$ 的最大绝对值特征值及其特征向量的基础算法。

基本迭代(带归一化)。$v_0$ 是任意初始向量:

$$v_{k+1} = \frac{A\,v_k}{\|A\,v_k\|_2}$$

通过Rayleigh商进行特征值估计。当 $v_k$ 接近特征向量时精度更高:

$$\lambda_k = \frac{v_k^{\!\top} A\,v_k}{v_k^{\!\top} v_k}$$

误差收敛速度。优势比 $r = |\lambda_2/\lambda_1|$ 越小收敛越快:

$$|\lambda_k - \lambda_1| \;\sim\; r^{\,2k} \quad (\text{对称矩阵情形})$$

该矩阵是对称的,因此具有实特征值。默认值下,特征方程为 $\lambda^3 - 9\lambda^2 + 24\lambda - 18 = 0$,得 $\lambda_1 = 3+\sqrt{3} \approx 4.732$、$\lambda_2 = 3$、$\lambda_3 = 3-\sqrt{3} \approx 1.268$。

幂法模拟器简介

🙋
矩阵的特征值不是可以通过求解特征方程来解析求得吗?为什么要用幂法来迭代计算呢?
🎓
对于3×3矩阵可以这样,但实际工作中的矩阵可能有数万甚至数百万维。3次方程的闭形式解在这样的维度下就完全失效了。特性多项式本身都构造不出来。幂法只需重复矩阵向量积 $Av$,就能得到最大绝对值特征值。Google最早的PageRank就用的这个,在整个互联网图的特征向量上运行。
🙋
哇,PageRank也是幂法!我看上面的模拟器,迭代次数设为1时 λ_est 偏离很大,到20次左右就准确到真值4.732了。
🎓
那就是收敛。Rayleigh商 $v^\top A v / v^\top v$ 的精度由 $v$ 离特征向量有多近来决定。看下面的图——误差的对数变成直线了。斜率由「收敛比 $|\lambda_2/\lambda_1|$」决定,越小收敛越快。默认矩阵 $3/4.732 \approx 0.634$,每次迭代误差约降低0.6倍。
🙋
我拖动对角元素的滑块把 A[1,1] 改成10,收敛比卡片上的数字变小了,误差图急速下降!
🎓
正是这样,最大特征值离其他值越远,幂法表现越好。相反,如果特征值接近(收敛比接近1),可能要迭代几百次都不行。实际应用中会用「移位法」人为改变特征值比例,或用「Rayleigh商移位」每步更新最优移位值,来加快收敛。这些技巧的根基都是这个收敛比理论。
🙋
如果只要一个特征值,但我需要全部呢?
🎓
那就用QR法。QR法从某种角度可以理解为「在所有方向同时运行幂法并做正交化」。每次迭代都分解 A=QR,然后更新 A←RQ。这个过程边推进上三角化的同时,暗中利用了幂法的收敛逻辑。加上Hessenberg预处理、多重移位等技巧,就成了LAPACK等现代特征值库的核心算法。

常见问题

幂法用于只需要最大绝对值特征值及其特征向量的场景。典型代表是Google的PageRank,对网络图的转移矩阵运行幂法,将定常分布(对应最大特征值1的特征向量)用作页面重要度。在结构分析中,也使用逆幂法(对A⁻¹的幂法)来概估最低次固有振动数。在数据分析和主成分分析(PCA)中,第1主成分也是通过对共方差矩阵进行幂法得到的。
逆幂法对A⁻¹应用幂法,得到最小绝对值特征值。带移位的逆幂法对(A−σI)⁻¹进行迭代,可以提取最接近移位值σ的特征值。通过这种方法,只要知道所需特征值的大致值,就能以高精度求得任意特征值和特征向量。每次迭代需要求解一次线性方程组,但收敛通常极快,这是主要优势。
收敛速度由 |λ₂/λ₁| 的比值控制,此比值越接近1收敛越慢。解决方案包括:移位法(将A变换为A−σI来改变相对比)、Rayleigh商移位法(每次迭代更新最优σ),或当存在重根或复特征值时改用QR法等更通用的方法。即使初始向量与目标特征向量正交,由于浮点舍入误差,最终也会收敛。
QR法是求解所有特征值的通用方法,内部可理解为"在所有方向同时运行带正交化的幂法"。每次迭代进行A=QR分解然后A←RQ更新,这个过程在推进上三角化过程中隐含地使用了幂法的收敛逻辑。结合带移位的QR法、Hessenberg化、双重移位等技术,成为现代特征值库(如LAPACK)的基础算法。

现实应用

搜索引擎页面排名:Google的原始PageRank就是对网络转移矩阵的幂法。拥有数十亿页面的巨大稀疏矩阵,只需重复数十次矩阵向量积就能得到定常分布——幂法「不需要显式存储矩阵,只计算Av」这一特性在超大规模问题上是决定性的优势。

结构振动分析中的最低阶特征模态:建筑、桥梁、机械的振动分析中,地震响应和共振由最低阶固有振动数(最小特征值)控制。对刚性矩阵K和质量矩阵M的广义特征值问题 Kx=λMx,用带移位的逆幂法可以快速提取目标特征值。有限元软件的Lanczos法和子空间法都是幂法的发展形式。

主成分分析和降维:机器学习预处理中广泛使用的主成分分析(PCA)就是逐个求数据共方差矩阵的最大特征值和特征向量。第1主成分用幂法,后续分量结合「deflation」(消除已求方向)获得。推荐系统中的SVD和奇异值分解也常用幂法系列的迭代计算。

马尔可夫链的定常分布:转移概率矩阵P对应于特征值1的左特征向量就是长期状态分布。物理化学的蒙特卡洛模拟、排队论分析、自然语言处理中隐马尔可夫模型的平衡态求解,都广泛用幂法或其推广的Arnoldi法。

常见误解和注意事项

最常见误解是「幂法总是收敛到最大特征值」的思想。准确的说法是「当最大绝对值特征值唯一且初始向量不与其特征向量正交时」才收敛。比如特征值为 ±λ(绝对值相同但符号相反),迭代会振荡不收敛。实对称矩阵全是实特征值,绝对值相同只在符号相反时发生,所以通常不振荡。但在模拟器中改动对角元素至极端值也保持对称性,振荡一般不会出现。非对称矩阵需多加小心。

次常见误解是「收敛仅由迭代次数决定」。实际上收敛比 $r = |\lambda_2/\lambda_1|$ 才是支配因素,$r$ 接近0.99的矩阵即使迭代1000次也残差巨大。在模拟器中把A[1,1]设为10、A[2,2]和A[3,3]设为1,使比例极大,5次迭代就能精确到数位。反之对角元素接近时,倍增迭代次数效果微乎其微。设计上的现代做法是「用移位法改善比例」。

最后一个误解是「Rayleigh商和向量分量比(Av_k)_i/(v_k)_i是等价的」。后者理论上在任何分量都应给出λ,但v_k还未充分收敛时,各分量值会有散差,不可信。Rayleigh商 $v^\top A v / v^\top v$ 是最小二乘意义下的「最匹配特征值」,相同迭代步数下通常有平方级的精度优势。实现时务必用Rayleigh商。

使用指南

  1. 用滑块设置3×3对称矩阵的对角元素A11、A22、A33(如:A11=5、A22=3、A33=1)
  2. 通过slIterVal确定初始向量的范数,用slIter指定迭代次数(通常10~50次)
  3. 模拟器自动执行幂法,在每个迭代步骤计算Rayleigh商λ₁=(v^T Av)/(v^T v)以估计最大特征值
  4. 观察收敛性图表中估计值逐步接近真值的过程,从收敛比|λ₂/λ₁|评估收敛速度

具体计算示例

当A11=6、A22=3、A33=0时,对象矩阵是非对角元素固定(A[1,2]=A[2,3]=1)的对称矩阵,理论最大特征值为λ₁≈6.317,第二特征值为λ₂=3.0。从初始向量v₀=(1,1,1)/√3开始,迭代10次时Rayleigh商已基本等于λ₁,迭代30次后误差降至10⁻¹⁴量级。因为收敛比 |λ₂/λ₁|≈0.475,每次迭代误差约削减一半,快速收敛。

实际应用中的注意点