数值分析 笔记 4
矩阵特征值的计算
特征值的概念
矩阵 A 的特征值是指满足:
Ax=λxx=0
的标量 λ
关于特征值有以下结论:
- det(A)=∏λi(A)
- λ(A)=λ(AT)
- 对于对角阵或三角阵,特征值为对角元
- 对于分块对角阵或对角块为方阵的分块三角阵,特征值为对角块特征值的并集
- 相似矩阵的特征值相等,即 λ(A)=λ(V−1AV)
- 对矩阵做运算可以直接对应到特征值上
定义:
代数重数为 λ 作为方程 det(λI−A)=0 的解的重数,几何重数代表 λ 对应的特征子空间的维数,可以证明 几何重数不大于代数重数
且不同 λ 对应的特征向量都是线性无关的,但是不一定能张成整个空间(即几何重数之和可能小于 n ),如果几何重数和几何重数恒定相等,这种矩阵称为 非亏损阵,反之为亏损阵,非亏损阵的 n 个特征向量一定是全空间的一组基
有如下定理:
∃Xs.t.X−1AX=Λ⇔A非亏损
其中 Λ 是对角阵
自然可以证明实对称矩阵一定是非亏损的,并且其特征值一定是实数,可正交对角化,即 X 是正交矩阵
通过重数,可以定义强有力但是我不会的 Jordan 分解:
A=XJX−1J=J1⋱JpJs=λs1λs⋱⋱1λs
其中每个 λ 对应几何重数个 Jordan 块,阶数之和为代数重数
特征值的分布
很多时候我们关心的是矩阵特征值的极值,例如谱半径是矩阵特征值绝对值的最大值,2-范数、2-条件数也与特征值有关
定义矩阵 A∈Cn×n 的 Gerschgorin 圆盘为:圆心为 aii,半径 ri=(j=1∑n∣aij∣)−∣aii∣,则有:
A 的特征值一定在 n 个圆盘的并集上
如果有 m 个圆盘组成了独立的连通支,则这 m 个圆盘中恰好有 m 个特征值
幂法与反幂法
幂法的作用是为了求主特征值与主特征向量,即模最大的特征值与其对应的向量
幂法的定义为:取几乎任意的非零向量 v0,通过以下方式计算向量序列:
vk=Avk−1
设主特征值为 λ1,其对应的特征向量为 x1,则有,当 A 有唯一主特征时:
k→∞limvk=λ1k→∞limvk−1=Cx1
我们针对非亏损阵 A 进行证明:
设 A 线性无关的特征向量为 x^1,⋯,x^n,v0=i=1∑nαix^i,其中 α1=0,这也是 几乎随机 的原因,则有:
vk=Akv0=i=1∑nαiλikx^i=λ1k[i=1∑sαix^i+i=s+1∑nαi(λ1λi)kx^i]
其中,s 为 λ1 的代数重数
由于 ∣λi/λ1∣<1,因此当 k 充分大的时候:
k→∞limvk≈λ1k(i=1∑sαix^i)
证毕
规格化
幂法的主要问题在于,当 k 很大的时候,可能在收敛之前就已经发生了溢出现象
解决溢出的一种方式为规格化,即在每一步计算完成之后除以向量的模最大的元素 max(vk),即:
ukvk+1=max(vk)vk=Auk
这样的话有:
k→∞limukk→∞lim∣∣vk∣∣∞=max(x1)x1=λ1
其中 x1 是某个主特征向量
幂法加速
-
原点位移:
幂法的收敛速度取决于次大特征值与最大值的模长之比,而特征值的运算是线性的,因此考虑 B=A−sI,则可以选取合适的 s,使得 λ1−s 仍然是 B 的主特征值,且:
λ1−sλ2(B)
尽可能小,其中 λ2(B) 代表模次大的特征值
-
Relay 商加速:
实对称矩阵 A 对应向量 x=0 的 Relay 商定义为:
R(x)=⟨x,x⟩⟨Ax,x⟩=xTxxTAx
可以证明:
λn≤R(x)≤λ1
其中 λ1,λn 为最大和最小特征值
可以证明规格化幂法满足:
R(uk)max(uk)=λ1+O((λ1λ2)2k)=λ1+O((λ1λ2)k−1)
因此 Relay 商可以比最大值更快收敛
反幂法
即通过求 A−1 模最小的特征值,取倒数后得到 A 的主特征值
QR 分解
Householder 变换
对于 w∈Rn, wTw=1,称 H(w)=I−2wwT 为 Householder 矩阵,Hx 被称为 Householder 变换
定义 v=wwTx=(wTx)w ,几何上来看 v 为 x 在 w 方向上的投影
显然 H 是正交矩阵,因此 Householder 变换不会改变向量的二范数,并且可以证明以下定理:
对于 x=y∈Rn, 且 ∣∣x∣∣2=∣∣y∣∣2,则存在 Householder 矩阵 H 使得 Hx=y
取 y=−σe1,其中 σ=sgn(x1)∣∣x∣∣2,则构造 H 时,满足 v=x+σe1,w=v/∣∣v∣∣2
这实际上和矩阵消元的过程是一样的,而且由于 H 是正交的,因此可以连续左乘 householder 矩阵,以达到正交三角化的效果
矩阵的 QR 分解
可以证明,任意实矩阵都一定存在 QR 分解,即 A=QR,其中 Q 为正交阵,如果 A 非奇异且 R 对角元全正,则分解唯一
下面利用 Householder 变换构造 QR 分解
令:
Hk⋯H2H1A=R
则
A=H1H2⋯HkR=QR
QR 分解的直接构造是简单的,大致思路为:
- 构造 H1 给第一列消元
- 考虑右下角的 (n−1)×(n−1) 阶子阵,构造H2′ 用于消除子阵第一列,对应原矩阵中的第二列,之后即有:
H2=[I100TH2′]
- 以此类推即可
可以使用算法构造每一个 H 对应的 v,需要的乘法次数为 O(mn2),可减少为 nm2−n3/3,如果生成 Q 则需要额外 O(mn2)
Givens 旋转变换
正交变换的另一种方式,通过旋转矩阵来做到
二维平面上的旋转矩阵为:
G=[cosθ−sinθsinθcosθ]
这代表顺时针旋转 θ 角
如果想旋转 n 维 空间中的两个元素xi,xj,则只需要将这个矩阵嵌入 I 的 {i,j}×{i,j} 这四个位置即可
如果取:
G=α1[x1−x2x2x1],x12+x22=α2
则
G[x1x2]=[α0]
这也就实现了消元,并且嵌入到 n 维之后仍然每次只影响两行,可以通过不断旋转第 (1,i) 两个元素来给向量消元,之后按照 QR 分解同样的算法可以构造另一种 QR
QR 分解的迭代算法
仍然是矩阵求特征值的问题,考虑我们已知 A 的一个特征向量 x,并且通过正交变换将其消元:Hx=σe1,则:
HAHTe1=HAσ1x=σ1Hλx=σλσe1=λe1
根据单位向量的特性,可以得到:
HAHT=[λ0rTA1]
于是我们只需要求 (n−1)×(n−1) 维矩阵的特征值即可,这种技术被称为 收缩技术
迭代算法
首先介绍实 Schur 分解:
对于任意实方阵 A,存在正交阵 Q,使得 QTAQ=S 为实 Schur 型,或称为拟上三角阵
实 Schur 型是指对角块为 1 阶或 2 阶 的分块上三角阵,并且满足 2 阶分块阵的特征值是 A 的两个共轭复特征值
则利用 QR 分解求特征值的一种迭代算法为:
AkAk+1=QkRk=RkQk
可以证明:若矩阵 A 的等模的特征值为实重特征值或复共轭特征值, 则QR迭代所得矩阵序列 {Ak} 基本收敛于拟上三角阵,而拟上三角阵是方便求特征值的
对于实对称阵,其迭代的极限也为对角阵
实用的 QR 算法
QR 算法的不足之处:
- 计算量很大(化简为上 Hessenberg 阵)
- 手链可能很慢(带原点位移的 QR)
上 Hessenberg 阵是指仅有上三角、主对角线旁边的副对角线有元素的矩阵,如下:
1526937864875
对于上 Hessenberg 型矩阵,可以应用 Givens 旋转的 QR 分解,每步的计算量为 O(n2),而普通矩阵 QR 分解的计算量为 O(n3),并且可以证明迭代过程中仍然是保持 Hessenberg 的
对于任意矩阵,都可以用 Householder 变换将其正交相似为上 Hessenberg 矩阵,思路是将矩阵二分块为 1×1 与 (n−1)×(n−1),这样只用将第一列第 2∼n 行进行消元,即得到了 hessenberg 的形式
具体来说:
用Householder变正交相似约化为上Hessenberg矩阵
而实对称阵的带原点位移迭代是指:
AkAk+1=QkRk−skI=RkQk+skI
如果是非对称阵,则可能有复特征值,因此需要做二维平面上的平移