线性方程组求解、最小二乘法、特征值/特征向量求解是(数值)线性代数的主要研究内容。
在力学、气象学、电磁学、金融等学科中,许多问题最终都归结为特征值、特征向量的求解。
ARPACK使用IRAM(Implicit Restarted Arnoldi Method)求解大规模稀疏矩阵的部分特征值与特征向量。了解或者熟悉IRAM算法,必定有助于更好地使用ARPACK中相关特征值求解函数。
本文拟就ARPACK中特征值求解的IRAM算法进行分析,希望对从事相关研究的朋友们有所帮助。
注1:限于研究水平,分析难免不当,欢迎批评指正。
零、预修
对于n阶级复矩阵,若存在n阶向量
与标量
,满足
,则称
是矩阵
的特征值,
是对应的特征向量。
更一般地,若对于n阶级复矩阵、
,若存在n阶向量
与标量
,满足
,则称
是矩阵
的广义特征值,
是对应的广义特征向量。
若,满足
,则称
为酉矩阵。
定义Hessenberg矩阵,
Schur分解定理:设,则存在酉矩阵
,使得
其中,是上三角阵。
实Schur分解:设,则存在正交矩阵
,使得
其中,是实数,或者是一个具有一对复共轭特征值的2阶仿真。
为了叙述方便,本文就标准特征值问题进行叙述,而不讨论广义特征值问题。
Gram-Schmidt正交化:
一、大型稀疏矩阵特征值算法
1.1 Projection Method
投影法在较小的线性空间内寻找满足精度要求的近似解,也即在某个线性空间内寻找真解的投影。这其实就是投影法得名的原因。
对于广义特征值问题,
,
,
首先,构造列满秩矩阵与
,其中
;然后,设真解
在线性空间
的投影为
,即
,令其满足Petrov-Galerkin条件,即
,均有
。
称为搜索空间,
称为约束空间。
若时,则有
。
Ref. from SLEPc Users Manual
Most eigensolvers provided by slepc perform a Rayleigh-Ritz projec tion for extracting the spectral approximations, that is, they project the problem onto a low dimensional subspace that is built appropriately.
Starting from this general idea, eigensolvers differ from each other in which subspace is used, how it is built and other technicalities aimed at improving convergence, reducing storage re quirements, etc.
1.2 Power Method
1.3 Lancos Method
1.4 Arnoldi Method
Arnoldi在1951年发表的文章中提出了一种获取大型稀疏矩阵的部分特征值、特征向量的方法。在这种方法中,通过Ritz\Galerkin余量法,将矩阵约化为低阶Hessenberg矩阵,进而求解该Hessenberg矩阵的特征值与特征向量,用以近似原矩阵
部分特征值、特征向量,即
上式也可以写作
其中,,
,
,
,
,
。
对于, 设
其中,
,
,
,
,则有
若取,则有
,
另外可以看出,即
是Krylov子空间
的一组标准正交基。
在实际数值计算过程中,由于计算精度等问题,通常很难保证,也就是说在矩阵
逐列计算过程中,存在正交性丢失的问题。
针对此问题,Sorensen在1992的论文中提出了一种称之IRAM(Implicit Restarted Arnoldi Method)的算法。Sorensen认为误差实际上是初始向量
的函数,可以通过不断选取新的初始向量
,迭代Arnoldi过程
次来强迫
,并且给出了收敛性证明。
对于得到的,需要施加
次带偏移的QR分解,以剔除不想要的特征值/特征向量。这实际上就是ARPACK使用的IRAM(Implicit Restarted Arnoldi Method)算法。
ARPACK中,采用了统一的特征值表述,
对于实特征值问题提供了5种计算模式,而对复特征值问题提供了3种计算模式,
Real | Mode | Formulation | Eigenvalue | Description | Applications |
Mode 1 | |
| |||
Mode 2 | |
| |||
Mode 3 Shift-and-Invert mode | | |
| Mode Analysis Mode Solver | |
Mode 4 Buckling mode | | |
| Buckling Analysis | |
Mode 5 Cayley transformed mode | | |
| ||
Complex | Mode 1 | | |||
Mode 2 | | ||||
Mode 3 shift-and-invert mode | | | Mode Analysis Mode Solver |
1.4.1 Mode 3
对于ARPACK中的Mode 3, 即有
整理可得,
若针对上式得到的特征值为,即
,则有
。
1.4.2 Mode 4
对于ARPACK中的Mode 4, 即有
整理上式,则有
若针对上式得到的特征值为,即
,则有
。
以上推导,可由ARPACK/SRC/dseupd.f代码可以得到,
if (type .eq. 'SHIFTI') then
do 40 k=1, ncv
workl(ihd+k-1) = one / workl(ihd+k-1) + sigma
40 continue
else if (type .eq. 'BUCKLE') then
do 50 k=1, ncv
workl(ihd+k-1) = sigma * workl(ihd+k-1) /
& (workl(ihd+k-1) - one)
50 continue
else if (type .eq. 'CAYLEY') then
do 60 k=1, ncv
workl(ihd+k-1) = sigma * (workl(ihd+k-1) + one) /
& (workl(ihd+k-1) - one)
60 continue
end if
1.4.3 Mode 4*
可以看到,Mode 4需要满足,实际应用不太方便,可以考虑Mode 3来计算Mode 4问题,
若针对上式得到的特征值为,即
,则有
。
更近一步,若,则有
。
参考书籍
Golub G H , Loan C F V .Matrix Computations.Johns Hopkins University Press,1996.
Ford W .Numerical Linear Algebra with Applications using MATLAB. 2014.
徐树方. 数值线性代数(第二版). 北京大学出版社, 2010.
参考文献
Golub,G.H.a Eigenvalue Computation in the 20thcentury.J.Comput. Appl.Math.,123(1-2):35-65.
Lanczos C .An Iteration Method for the solution of the Eigenvalue Problem of Linear Differential and Integral Operators.Journal of research of the National Bureau of Standards, 1950, 45(4).
Arnoldi W E .The principle of minimized iterations in the solution of the matrix eigenvalue problem.Quarterly of Applied Mathematics, 1951, 9(1).
Lehoucq R B , Sorensen D C , Yang C .ARPACK Users' Guide: Solution of Large Scale Eigenvalue Problems with Implicitly Restarted Arnoldi Methods.
D,C,Sorensen.Implicit Application of Polynomial Filters in a k-Step Arnoldi Method.Siam Journal on Matrix Analysis & Applications, 1992.
Burrus C S , Cox S J , Radke R J .A Matlab Implementation of the Implicitly Restarted Arnoldi Method for Solving Large-Scale Eigenvalue Problems[J]. 2000.
R.B. Lehoucq, Analysis and Implementation of an Implicitly Restarted Arnoldi Iteration, Rice University Technical Report TR95-13, Department of Computational and Applied Mathematics.
Hernandez V. SLEPc: A scalable and flexible toolkit for the solution of eigenvalue problems. ACM Transactions on Mathematical Software, 2005, 31(3):351-362.
Jose E. Roman. SLEPc Users Manual Scalable Library for Eigenvalue Problem Computations. 2025.
Zhang Hong. CS 595 - Advanced Scientific Computing.
网络资料
ARPACKhttps://github.com/opencollab/arpack-ng
SLEPchttps://slepc.upv.es/
PRIMMEhttps://www.cs.wm.edu/~andreas/software/