把一个向量反复乘上同一矩阵,会发生什么?取
A=[2112],x0=(1,0)T.第一次得到 (2,1)T,第二次得到 (5,4)T。数字越来越大,两个分量的比值却越来越接近 1。把长度暂时放在一边,方向似乎正在靠向 (1,1)。
这个现象给出了一条求特征值的路:不展开高次行列式,而是观察矩阵怎样反复改变向量。只是,方向有没有收敛、找到的是哪个特征值、剩下的误差有多大,都需要各自检查。
幂法留下的是最大模方向
特征向量 v=0 满足 Av=λv。若 A 可对角化,存在一组线性无关的特征向量 v,初始向量可以唯一写成
x0=j=1∑ncjv连续乘 A,每个方向只会被自己的特征值反复缩放:
Akx0=j=1∑nc假设
∣λ1∣>∣λ2∣≥⋯≥∣λ把第一项的系数提出来:
Akx0=c1λ括号里其余系数的模都趋于零。因此,忽略整体倍数后,方向趋向 v1。每步乘一次 A 就足够,不必先形成整个 Ak;后者往往破坏稀疏结构,也多做了无用计算。
这个论证里的条件各有用途。可对角化保证上述展开成立,严格的模间隔让其他方向衰减,c1=0 保证起点里确实含有所找的方向。“最大模”不等于“代数值最大”。 如果特征值为 −5,2,1,占优势的是 −5。

方向逐渐靠向占优势的特征方向。这里用未归一化箭头示意方向变化,长度、夹角和背景椭圆不对应某个指定矩阵的实际迭代;数值过程在交互中逐步计算。
每轮归一化,避免数值膨胀
直接保存 Akx0,可能很快上溢或下溢。幂法改为反复执行
yk=Axk,xk+1这里采用无穷范数,是为了让手算的最大分量保持为 1;用 2-范数同样可以。除以一个非零标量不改变方向,所以前面的论证仍然适用。
如果 yk=0,不能继续除法。此时当前非零 xk 已是零特征值对应的特征向量,但这并不说明零是最大模特征值。程序应该记录这个情况并停止。
开头的例子变成
x1=(1,1/2)T,Ax两个精确特征方向分别为
v1=2x0 在两者上的系数相等。由于 v1,v2 正交,迭代方向与 v 所成锐角 满足
tanθk=3−k.所以这里每轮把角度的正切缩小到原来的三分之一。一般情况下,∣λ2/λ1∣ 控制主导的衰减速度;若相应次模态在初值中没有出现,实际可以更快,不能把这个比值理解为每个问题都精确相同的误差比。
看起来不动,未必完成了目标
对于 diag(3,1),从 (0,1)T 出发,向量永远停在第二个方向。它的特征残差甚至精确为零,但找到的是 1。
对于 diag(1,−1),从 (1,1)T 出发,会在 (1,1)T 与 之间循环;两个特征值等模,没有哪一个方向被相对压下去。若最大模特征值为负,情况又不同:向量可能整体交替变号,但所张成的直线已经收敛。比较两个单位向量 的方向时,可以看
min{∥u−v∥2, ∥u+v∥2},避免把同一直线的相反朝向误判为不收敛。这个方向差仍不能替代原方程残差。
在实验里比较谱比相差很大的两种矩阵。运行之前,试着判断哪一种会更快;再切换到缺少主方向的初值和等模例子,观察为什么“多迭代几次”解决不了它们。表中的单位向量、Rayleigh 商与残差必须来自同一个迭代时刻。
用 Rayleigh 商估计特征值
手里已有非零近似向量 x,应该配上哪个标量 μ?把
∥Ax−μx∥22=∥Ax∥22看成关于实数 μ 的二次函数,最小点是
ρ(x)=xTxxTAx.这就是 Rayleigh 商。它不随 x 的非零倍数改变;当 x 是精确特征向量时,给出的正是相应特征值。
对于实对称矩阵,可以取一组标准正交特征向量。这个事实也有一个直观的证明路线:二次型 uTAu 在单位球面上能取到最大值;对任意垂直于 u 的切向量 w,方向导数 2wTAu 必须为零,便要求 与 平行。这个方向的正交补在 作用下保持不变,因为 。在正交补里重复同一论证,就得到完整的正交特征基。
将单位向量展开为 u=∑jajvj,有
j∑aj2=1,ρ(u)=所以对称情形的 Rayleigh 商是特征值的加权平均,必定落在最小与最大特征值之间。若 θ 是 u 与某个特征向量 v1 的锐角,则
ρ(u)−λ1=j=1∑从而
∣ρ(u)−λ1∣≤j这解释了一个常见现象:特征值读数已经很准,向量方向还没有同样准确。此处的平方误差依赖对称性,不能直接照搬到任意非对称矩阵。
把第二轮结果代回去
开头第二轮的向量是 x2=(1,4/5)T。直接计算:
Ax2=(14/5,13/5)T,x因此
ρ(x2)=41122≈2.97561.它小于 3,与加权平均的范围一致。为了让残差不受向量长度影响,将 x2 化成单位向量
u2=41本章的特征残差约定为 r=Au−ρu,即“矩阵作用结果减去预计的伸缩结果”。代入得
r=41419特征值误差是 3−ρ=1/41,与残差长度不是同一个量。由 tanθ2=1/9 还可算出 sin,恰好有 。

同一个单位向量既给出 Rayleigh 商,也给出特征残差。主例第二轮的值误差为 1/41,残差长度为 9/41,两项检查不能互相替代。
残差能证明多少
下文都让 u 的 2-范数为 1。否则应把残差长度除以 ∥u∥2,不能靠把整个向量缩小来制造“漂亮的小残差”。
令 r=Au−ρu,构造
E=−ruT.由于 uTu=1,
(A+E)u=Au−r=ρu,∥E∥2=因此,小残差保证这对数值是一个邻近矩阵的精确特征对。这是后向解释,适用于这里的任意实矩阵。若 A 对称且 ρ=ρ(u),还有 uTr=0,可以改用对称扰动
E=−ruT−urT.它同样满足 Eu=−r;在 u 与 r/∥r∥2 张成的平面上,它的矩阵为
[0−∥r∥2−∥r∥其他正交方向上为零,故其 2-范数仍为 ∥r∥2。当 r=0 时直接取 E=0。
对称矩阵:值误差与方向误差分开估计
使用刚才的正交特征基,
r=j∑(λj−ρ)a令 d=minj∣λj−ρ∣,每一项都不小于 d,因此
jmin∣λj−ρ∣≤∥r∥这保证附近至少有一个特征值,还没有指定是哪一个。
若要判断与一个简单特征值 λℓ 的方向有多近,需要它与其他特征值分开。设
g=j=ℓmin∣λj−ρ∣只保留残差展开中 j=ℓ 的项,便有
∥r∥22≥g2这里的间隔是其他特征值到当前估计 ρ 的距离。使用这个界时,必须有相应的间隔信息;不能一边不知道谱的位置,一边把 g 当成已知常数。
取
A=diag(1,1+δ),u=2有 ρ=1+δ/2,∥r∥2=δ/2。让 δ 很小,残差可以任意小;但 与两个坐标特征方向始终都成 。两个特征值越来越难分开,小残差无法选出其中某一个方向。

两个坐标方向标示特征方向,青色箭头表示固定的 u。特征值更接近后,残差变小,但夹角仍为 45 度;图中箭头长度不用于比较向量的模。
非对称问题不能照搬这个界
看看
AM=[10它的特征值一直是 1 和 2,但
ρ(u)=M2+43M当 M 增大,Rayleigh 商靠近 3,残差趋于零;估计到真实谱的距离却靠近 1。前面的后向解释没有失效,失效的是“邻近矩阵的特征值必定同样接近原矩阵特征值”这一额外推断。非正交特征方向可能使问题敏感。
实际停止时,可以报告
η=∥A∥F+∣ρ∣∥Au−ρu∥其中 ∥A∥F 是全部元素平方和的平方根,方便计算。它是按矩阵尺度归一化的检查量;若分母为零,矩阵和估计都为零,直接检查残差即可。还应记录迭代上限、是否停滞,以及所找的是哪部分谱。只看两次 ρ 的差,可能在等模循环中误停。
移位反迭代:把目标附近的方向放大
幂法只能优先留下最大模方向。如果目标在 10 附近,最大模特征值却是 1000,继续原来的乘法不会改变目标。
对移位 μ,由 Avj=λjvj 得
(A−μI)vj=(λj−μ)v只要 μ 不是特征值,就可以继续写成
(A−μI)−1vj=λ原来的特征方向没变,特征值经过“减去移位、再取倒数”变换。离 μ 越近,倒数的模越大。
算法不形成逆矩阵。每轮解
(A−μI)yk=xk,x再用原矩阵 A 计算 Rayleigh 商和残差。固定 μ 时,A−μI 的带主元 LU 分解可以复用;每轮只需前代、回代与归一化。这正好用上第 6 章的分解复用。
若 λ∗ 唯一最近,下一近的特征值为 λnext,并满足可对角化与初值含有目标分量等条件,则方向的主导收敛因子为
λnext−μλ两个特征值与移位等距时,严格优势可能消失。移位精确等于特征值时,线性系统奇异,不能按普通求解步骤硬算。
同一组谱,换一个观察位置
令
A=diag(1,3,6),μ=514,x第一轮求解得到
y0=(−5/9, 5, 5/16)T,x第二轮归一化后是
x2=(1/81, 1, 1/256)T.目标方向是中间的坐标轴。与特征值 1 对应的分量每轮相对缩小 1/9 并交替变号,与 6 对应的分量每轮相对缩小 1/16。原幂法会优先找到 6,改变移位后却可以找到 3。

减去 14/5 再取倒数之后,中间特征值对应的放大倍数模最大。每一行保留同一个特征方向,改变的是该方向的伸缩倍数。
靠近目标通常加快方向收敛,同时也让线性系统接近奇异。这里不能只凭“病态”二字断言归一化后的方向一定很差:被放大的误差可能主要沿目标方向,归一化会消去一部分尺度影响。但必须用原矩阵重算残差,处理求解失败,并避免溢出。这个判断不能由迭代次数代替。
让移位跟着当前估计改变
把固定 μ 换成当前 Rayleigh 商,就是一种动态移位方法。它需要每轮重新分解系数矩阵,成本比复用一个 LU 高,局部收敛却可能快得多。
在对称二阶问题中可以把原因算透。令 v1,v2 为单位正交特征向量,λ1,当前方向写成 ,并且靠近 。它的 Rayleigh 商为
ρ=1+t2λ1+λ用这个值移位并解一次系统后,两个方向的系数比变成
tnew=tλ2−ρλ误差比例从 t 变成 −t3,这是二阶对称情形中局部三次加速的直接证据。它不是任意初值都迅速成功的保证:∣t∣=1 时仍可能来回循环;t=0 时已经是特征向量,应在求解奇异系统之前停止。
实验中先固定移位,查看同一份分解怎样被反复使用;然后改用当前 Rayleigh 商,比较分解次数与方向误差。把移位放在两个特征值中点,再精确放到某个特征值上,观察两种失败原因的区别。每次最终检查仍使用原来的 A。
QR 迭代:把整组谱留在矩阵里
如果需要一组特征值,逐个试移位并不总是合适。第 7 章的 QR 分解提供了另一种组织方式。记 A0=A,反复做
Ak=QkRk,A其中 Qk 是正交方阵。由于
QkTAkQk=Q每一步都是正交相似变换。
相似为什么保留特征值?若 Akv=λv,则
Ak+1(QkTv)=QQkTv 不会变成零,所以特征值保留下来。重数也不变,因为
det(λI−Ak+1)=det(Q只是坐标换了,特征向量的分量通常也跟着变。
对于主例,可以取
Q0=检查 Q0TQ0=I、Q0R 后,倒过来相乘:
A1=R0Q0=非对角元从 1 变成 3/5。迹仍为 4,行列式仍为 3;新的对角元 14/5,6/5 已经接近 3 和 1,但还不是精确特征值。

同一组 Q、R 按两种顺序相乘,得到正交相似的矩阵。右边的整体因子 1/5 作用于所有元素,因此非对角元实际为 3/5。
与幂法的联系,以及不能省掉的条件
累积正交变换
Zk=Q0Q1⋯Q便有 Ak=ZkTAZk。由 可得
AZk=Zk+1Rk.观察第一列,上三角矩阵的第一列只有首项,因此
A(Zke1)=r11(k累积基的第一列实际上沿着幂法更新,只是把归一化信息放进了 Rk。其余列同时保持正交,避免所有列都挤向同一个方向。
主例是对称二阶矩阵,第一列向主特征方向靠近时,第二列因正交性也向另一个特征方向靠近。因此 ZkTAZk 的非对角项趋于零。这解释了本例为何成功。一般高维问题还涉及嵌套不变子空间和更多收敛条件,不能从“每步保谱”直接推出“总会变成对角矩阵”。
比如
A=[0110]是正交矩阵。取 Q=A,R=I,交换因子后又得到 A,迭代根本没有前进。它的特征值是 1,−1,又一次遇到了等模问题。
移位必须加回来
带移位的一步写成
Ak−μkI=Qk这样仍有 Ak+1=QkTAkQ。漏掉最后的加回操作,会真的改变谱。
一种容易尝试的选择是末对角元 μk=(Ak)nn,但它也会停滞。对主例,μ,于是 恰好是刚才的交换矩阵;交换因子、再加回 ,仍然得到原矩阵。成熟算法会使用更细致的移位策略,例如参考末尾二阶块的特征值;不能把一个方便的启发式说成全局保证。
这里还有一个与反迭代不同的地方:移位矩阵奇异时,QR 分解本身仍然存在,只是 R 可能有零对角元。因为这一算法不解 Rx=b,零对角元不自动意味着失败。计算时必须能正确补足正交基,不能直接用除以零的方式构造它。
在实验里逐步查看 Q,R 和换序后的矩阵,核对迹、行列式与累积基。比较不移位、固定移位和末对角移位,尤其观察主例为何会被末对角移位卡住。矩阵图中的非对角色块变淡时,回到原矩阵的特征残差也应该随之减小。
结构、去耦与停止
对一个稠密大矩阵,每轮都完整做 QR 代价较高。常用准备步骤是通过左右配对的 Householder 反射,将它变成上 Hessenberg 矩阵:
H=ZTAZ,hij=0(i>j+这里只消去第一条次对角线以下的元素。左边做一次反射改变行,右边乘上同一反射保证相似性;不能只做左变换。后续反射避开已经处理的坐标,便可逐列保留先前的零。
上 Hessenberg 矩阵的 QR 消元每次只需处理相邻两行,重新相乘也保持这种结构,所以一次结构化 QR 步只需 O(n2) 运算;最初的稠密化简仍需 O(n3)。若原矩阵实对称,Hessenberg 形式同时对称,便只剩三条对角线。利用三对角结构计算特征值更省,但累积全部特征向量还会增加工作量。

上 Hessenberg 结构只要求第一条次对角线以下为零;再加上对称性,第一条超对角线以外的上方元素也必须为零。叉号表示可非零,并不要求一定非零。
以对称二阶块说明“去耦”:
B=[abbd].当 b 足够小时,将两个非对角元设成零,相当于增加
ΔB=[0−b−b0这个操作使两个坐标方向分开,每个对角元都可以作为一个特征值近似。若 B=ZTAZ,原坐标中的近似向量 Ze2 满足
A(Ze2)−d(Ze2)=Z(b,0)残差长度恰好为 ∣b∣。因此,消去小项要与容差和原矩阵尺度联系起来,而不是看图上“颜色差不多白了”就停止。
对一般实非对称矩阵,目标常是准上三角形式:实特征值对应一阶块,共轭复特征值对应二阶块。实数算法不能保证把含复特征值的矩阵变成实对角矩阵。这里已经足够解释 QR 的基本选择;隐式双移位、复杂去耦准则和大型稀疏谱算法不在本章的实现范围内。
练习:同时检查计算和结论
选择方法时,先弄清需要哪部分谱,以及矩阵允许什么运算。只需最大模方向、又能快速算 Ax 时,幂法是清楚的起点;稀疏乘法的工作量随非零元素数增长。只需某个位置附近的特征对、且能承担移位系统分解时,反迭代更有针对性。固定移位的稠密 LU 首次约需 O(n3),后续每次求解约需 O(n2);换移位通常要重做分解。需要稠密矩阵的一组谱时,QR 的整体变换更合适。实际大型稀疏问题常采用更丰富的子空间方法,这里学到的残差检查与谱间隔判断仍然适用。
题 1 对 A=diag(−4,2),从 x0=(1,1)T 出发,用无穷范数归一化做两轮幂法。单位向量是否会收敛到同一个朝向?方向误差的主导因子是多少?
第一轮 x1=(−1,1/2)T,第二轮 x2。一般 ,单位向量在接近 与 之间交替,不趋于同一个朝向;它们张成的直线趋于 方向。正交分量相对主分量的模为 ,因子是 。Rayleigh 商则趋于 ,不会因为归一化长度为正就变成 4。
题 2 对 diag(5,2,1),起点 (0,1,1)T 能否通过精确幂法找到 5?另取 diag(2,−2) 和起点 ,为什么用连续两轮 Rayleigh 商相等作为停止依据不可靠?
第一个起点没有 e1 分量,乘对角矩阵后该分量仍为零。方向会趋向 e2,找出 2。浮点扰动有时能重新引入缺失分量,但不能把它当成确定的算法步骤。
第二个例子交替得到两个方向 (1,1)T、,Rayleigh 商一直是零。单位化后残差长度一直为 2,零也不在真实谱中;读数不变并不代表找到了特征对。
题 3 令 A=diag(4,1),u=(3,1)T/10。求 ;使用残差界估计特征值误差,并给出相对 的角度界。若把 改成 ,哪些量不应改变?
加权平均给出 ρ=37/10,
r=10题 4 把正文聚集谱例子的起点改为 u=(3/2,1/2)T。证明残差仍可任意小,而它与 e 的夹角始终为 。
对 A=diag(1,1+δ),有
ρ=1题 5 对正文的 AM,u,取 M=1000。估计 Rayleigh 商、残差长度及最近特征值误差。说明后向解释为什么不与结果矛盾。
代入得 ρ≈2.999996,残差长度约 0.001999992,最近特征值 2 的误差约 0.999996。取 E=−ruT 后, 是 的精确特征值,且扰动长度只有约 。这说明该非对称问题对矩阵扰动敏感;并没有证明 接近原矩阵的谱。正文对称残差界所用的正交特征基,在此不具备。
题 6 令 A=diag(−2,1,5),μ=4,从 (1,1,1) 做一轮反迭代。它倾向哪个方向,主导比值是多少?将移位改成 3 或 5,又有什么变化?
线性系统的对角元为 −6,−3,1,所以归一化后仍为 (−1/6,−1/3,1)T。目标是特征值 5,次近是 1,主导比值为 1/3。
移位 3 到 1 和 5 等距,这两个方向的放大模相同,通常不会选出唯一方向。移位 5 使系数矩阵奇异;若当前还没有通过特征残差检查,就应报告求解问题,而非继续除法。
题 7 在特征基中,A=diag(4,1),当前方向为 (1,1/2)T。求 Rayleigh 商,用它移位求出下一轮方向,再核对三次关系。
当前 ρ=17/5。解
diag(3/5,−12/5)y=(1,1/2)T得到 。将首分量化成 1 后,新方向为 ,正好满足 。新的 Rayleigh 商为
题 8 对 A=[3111],验证
Q=10计算一次 QR 换序结果,并求原坐标中 Qe2 搭配新末对角元的残差长度。
两列正交且单位长,乘回 QR 得原矩阵。换序得到
RQ=101[34题 9 对 B=[2bb2],b>,证明每轮取末对角移位 2 会停滞。若 ,把它设为零时,两个特征值各产生多少误差?能否因此满足绝对误差 的要求?
移位后为 b[0110],可取 Q 为交换矩阵、。换序加回移位仍是 。
10一个单位向量的特征残差很小,就足以断定它接近最大模特征值对应的唯一方向。