1. 引言
广义特征值问题作为科学计算领域的核心课题之一,在结构动力学分析、量子化学计算以及电磁场模拟等科学与工程领域具有重要应用价值。广义特征值问题目的是寻找一个矩阵的特征值和对应的特征向量,这些特征值和特征向量满足广义特征值方程:
,
,
,
其中,A和B分别是已知的
实数或复数矩阵,
是特征值,
是n维列向量,是对应的特征向量。
当涉及对称广义特征值问题时(即A、B均为对称矩阵且B正定),其典型应用场景如大型结构振动模态分析或电子能带计算中,系数矩阵往往呈现高维度、强稀疏性等特性。在此情形下,QR分解、QZ算法等传统数值方法往往面临计算效率瓶颈:一方面,算法复杂度随矩阵维度呈三次方增长;另一方面,矩阵稀疏性在正交变换过程中会遭到破坏,导致存储需求显著增加。
近三十年来,针对对称广义特征值问题的数值解法研究取得了显著进展。当前主流方法主要采用投影技术框架,其数学本质在于构建适当的低维子空间
,将原始问题投影为
的降维广义特征值问题,进而通过求解子空间特征系统获得原问题的近似解。投影方法的计算效能与子空间构造策略密切相关,在众多子空间选择方案中,基于Krylov子空间的方法因其优异的收敛特性备受关注。其中经典的Lanczos算法通过将原问题投影至Krylov子空间:
,
其中,
,x是某个初始向量,Lanczos算法构造了
的基
,然后计算投影问题
的特征对
,特征值
称为Ritz值,并被视为特征方程
的近似特征值,其对应的近似特征向量
,称为Ritz向量。
Lanczos算法中,在构造
时,并不需要显式形成
。它的收敛性得到了广泛的研究,该方法可以很好地逼近分离良好的极端特征对。然而,当极端特征值没有很好地分离时,Ritz值的收敛速度通常相当差。为了提高收敛速度,需要使用预条件来对原问题进行优化使其特征值更加聚拢[1],可以将Lanczos算法应用在
上,其中
是特定选取的,然后将
转换为特征方程
的特征值,这种预条件策略有很快的收敛速度,但是这样做需要在每次迭代中求解与原问题大小相同的线性系统。由于问题规模的大小,若通过直接方法如LU分解法求解预条件的线性系统是不可行的。在这种情况下,可以使用迭代方法来计算近似解。然而,由于Lanczos算法对扰动非常敏感,尤其是在迭代的早期阶段,因此这种嵌套了线性系统的求解方法对每步线性系统的解有非常高的精度要求,这限制了此方法的实用性。
JDQZ方法[2],也利用了预条件策略,它对预条件线性系统的近似解的精确度要求低很多。这种方法对所需的特征对进行初始近似,并依次求解校正方程来扩展搜索子空间。它有助于校正方程选择“右”向量进行扩展,从而以最佳方式细化特征对的近似值。在这里,预条件策略适用于逼近校正方程的解,但是这种方法仍需确定不精确解的程度,从而获得更精确的特征对。另外使用GMRES或BiCG等Krylov子空间方法的预处理策略已被广泛研究[3] [4]。
另一方面,可以使用梯度类方法,例如最速下降法来找到最小的特征值。这种方法不需要任何形式的求
的运算,但是,当极端特征值没有很好地分离时,它们收敛性通常很差。一些已经研究了的梯度方法包括LOBPCG方法[5]、DACG方法[6]和逆迭代的变体,称为预条件逆迭代[7]。在这里,不是应用之前的预条件策略,而是使用一种不同类型的预处理策略来加速迭代。通常,选择适用于用矩阵
求解线性系统的前提条件并将其应用于原特征方程解的迭代中。尽管在许多情况下这些方法结果很好,但预处理策略在加速特征方程中的作用尚不清楚。
Golub和Ye提出并分析了一种不需要逆运算的Krylov子空间方法来计算对称广义特征方程
的极端特征值[8]。与梯度类型方法一样,该算法不需要随时计算
,但与许多梯度方法不同,该算法利用了Krylov子空间提供更好的近似解,此外,还有用一种预处理策略来加速算法收敛到极值特征值的方法[8]。然而,由于向量迭代的性质,逆自由Krylov子空间算法在存在多个紧密聚类的特征值的情况下收敛较差。Quillen在Golub和Ye的工作基础上开发上一方法的块泛化,该方法具有相似的收敛特性[9]。
Alimisis和Saad在2023年提出了一种用于计算近似不变子空间的子空间迭代算法的变体,他们重新审视标准子空间迭代方法,并开发了利用梯度类型算法结合了Grassmann流形的新变体[10]。该算法有时优于标准的基于切比雪夫的子空间迭代,而且不需要估计最优参数。
Zhang和Shen在2018年将经典的特征值问题Lanczos方法扩展到了信赖域子问题[11]。由于子空间的维数对于良态的信赖域子问题影响通常较小,但对于病态问题影响则可能很大。会导致计算成本、内存需求和数值稳定性方面的数值困难。他们提出了一种高效的嵌套重启策略的Lanczos方法,解决了这一数值难题,并进行了收敛性分析。
本文提出了一种基于嵌套Lanczos算法与残差驱动子空间扩展的稀疏广义特征值问题求解方法。通过嵌套迭代动态生成多维子空间,在初始化阶段以初始向量构建基向量,后续通过Lanczos过程逐步扩展子空间,并结合优化算法更新当前解。每次迭代中,计算残差并对其进行正交化处理以保持子空间多样性,将正交化后的残差向量作为新增基向量,形成高维搜索空间以增强全局优化能力。在子空间内部通过增广拉格朗日半光滑牛顿算法求解投影后的问题,该算法显著提升了大规模稀疏问题的收敛效率与解的精度。
2. 预备知识
2.1. 广义特征值问题
设
是n阶实对称矩阵,
是n阶实对称正定矩阵,使得
,
有非零解向量
,则称
是矩阵A相对于矩阵B的特征值,且x是属于
的特征向量,当
时,该问题为广义特征值问题。
定义1 如果一个函数
满足
,其中x为非零向量,A,B是n阶Hermitan矩阵,且B是正定矩阵,则称这样的函数为广义Rayleigh商。
2.2. Krylov子空间方法
Krylov子空间方法是特殊的Rayleigh-Ritz方法,其主要思想是在一个维数较小的子空间
中寻找近似解。这类方法也被看作是一种投影方法,即寻找真解在某个子空间中的投影,可以是正交投影,也可以是斜投影。近似解的计算是通过迭代递归地找残差向量,第n个残差向量
可通过A的某个多项式与初始残差向量
相乘得到,即:
。
Krylov子空间方法有两个特征:1) 极小残差性,来保证收敛速度。2) 每一步迭代的计算量和储存量较小,保证计算的高效。
定义2 令
,由
生成的子空间,称为由A和v生成的m维Krylov子空间,记作
,即:
。
性质1
是一个Krylov子空间,则:
1) Krylov子空间是嵌套的,即:
;
2)
的维数不超过m;
3)
。
定义3 对于方程
,若
是一个Krylov子空间,要求残量
满足m个正交性条件,即:
。其中,
是近似解,
是另一个m维子空间,不同的
对应不同的投影方法当
时,我们称为正交投影法,否则称为斜投影法。将
称为约束空间,
称为搜索空间。
下面给出投影方法的数学描述,给定初值
,
为初始残量,
其中,
,
分别是
和
的一组基。近似解
存在的唯一条件是矩阵
非奇异。
定理2 若
满足下面条件之一:
(1) A正定,且
;
(2) A非奇异,且
,
则
非奇异。
若
非奇异,可解得
,因此
下面我们介绍如何通过Arnoldi过程和Lanczos过程找到搜索空间
的一组正交基。
2.3. Arnoldi过程
Arnoldi过程是求解非对称矩阵的一种正交投影方法,其主要思想就是通过对一个非对称矩阵A,产生Krylov子空间的一组标准正交基的方法。
算法1:基于Gram-Schmidt正交化的Arnoldi过程 |
1 给定非零向量r,计算
|
2 当
执行 |
3
; |
4 当
执行 |
5
; |
6
; |
7
; |
8 若
,则 |
9 停止; |
10
。 |
令
设
,
,即
是由
的前m行组成的Hessenberg矩阵。则:
,
。
定理3 如果到第
步时有
,则算法将提前终止。此时
必定可由
线性表出。则有:
,即
是A的一个不变子空间。
定理4 如果
,
,则向量
构成
的一组标准正交基,其中
。
2.4. Lanczos过程
对于方程
,若A是对称的,由Arnoldi过程的性质
可知
也是对称的,而
又是上Hessenberg矩阵,故
是一个对称三对角矩阵,记为
,记
,
,则:
与Arnoldi过程类似,Lanczos过程具有如下性质:
(1)
。
考察关系式(1)两边的第j列,有:
,
其中,
,
,
,基于这个三项递推公式,Anoldi过程简化为Lanczos过程:
算法2:Lanczos过程 |
1 给定非零向量r,令
,
; |
2 令
|
3 当
执行 |
4
; |
5
; |
6
; |
7
; |
8 若
,则 |
9 停止; |
10
。 |
2.5. 邻近算子
定义4 (邻近算子[12])对于一个凸函数
定义它的邻近算子为:
。
邻近算子的目的是求解一个据x不算太远的点,并使函数值
也相对较小,上述问题的解是唯一的,也就是对于凸函数,它的邻近算子是唯一的,下面定理给出此问题的解的存在唯一性。
定理6 (邻近算子与次梯度的关系)若
是适当闭凸函数,则
。
Proof. (
)若
,则由最优性条件得
,因此
。
(
)若
,由次梯度的定义可得到:
,
,
两边同时加上
,即有:
因此我们得到
。◻
邻近算子的计算可以看成是次梯度算法的隐式格式,对于非光滑情景,由于次梯度不唯一,显示迭代格式就不唯一,而隐式格式能得到唯一解,在步长选择上面,隐式格式也优于显示格式。
2.6. 近似点梯度法(PGA)
考虑如下复合优化问题:
,
其中,函数f为可微函数,定义域
,函数h是凸函数,可以是非光滑的。
近似点梯度法的思想是对目标函数
的两部分,对一部分
做梯度下降,对非光滑部分使用邻近算子,则近似点梯度法[12] [13]的迭代公式为:
,
其中,
为每次迭代的步长,它可以是常数或者由线搜索得出。注意到,当
时,迭代公式变为梯度下降法:
;
当
时,
是指示函数,则迭代公式变为投影梯度法:
。
下面给出近似点梯度法的算法:
算法3 邻近点梯度法 |
1 输入:函数
,
,初始点
,初始化
; |
2 当未达到收敛准则 执行 |
3
; |
4
。 |
当我们根据邻近算子的定义,把迭代公式展开:
可以发现,近似点梯度法的实质就是将问题的光滑部分线性展开再加上二次项并保留非光滑部分,然后求极小作为每一步的估计。
此外根据定理6,还可以将近似点梯度法写成
,
,
其本质是对光滑部分做显式梯度下降,非光滑部分做隐式梯度下降。在固定步长
的情况下,迭代点
处的函数值
以
的速率收敛到
。
对于近似点梯度法,它的优点是:1) 简单易实现:近似点梯度法相对于其他复杂的优化算法而言,实现起来相对简单;2) 适用性广泛:近似点梯度法可以应用于各种类型的优化问题,包括凸优化和非凸优化问题;3) 收敛性保证:在某些条件下,近似点梯度法可以保证收敛到优化问题的局部最优解。
3. 稀疏广义特征值问题的嵌套子空间方法
3.1. 求解稀疏广义特征值问题的子空间
对于广义特征值问题
。
其中,A是对称矩阵,B为正定对称矩阵,为了计算该问题最小特征值,将问题转化为带非光滑正则项和等式约束的优化问题:
(2)
我们的想法是通过Lanczos算法嵌套的迭代生成一个子空间
,在子空间中求解问题(2),具体而言,子空间的生成过程如下:
初始化子空间:在嵌套迭代的初始阶段,子空间的生成开始,将初始向量作为子空间的第一个基向量,初始向量可以是一个随机生成向量,通常服从标准正态分布或均匀分布。在后续的迭代过程中,根据Lanczos算法,逐步生成子空间的附加基向量,在每次迭代中,通过优化算法得到当前解
。计算当前解
与上一次迭代的解
之间的差值,即残差
。
对残差
进行正交化操作,以保持子空间的多样性。在正交化过程中,将
与子空间中的已有基向量进行正交化,确保
与子空间中的基向量线性无关,保证新基向量不重复已有方向,避免子空间退化。将正交化后的
加入到之前生成的子空间中,得到新的子空间。通过不断地迭代优化过程,每次生成的残差
都会加入到子空间中,从而形成一个多维子空间,这个多维子空间能够提供更多的搜索方向,帮助算法更好地搜索最优解。同时,通过正交化操作,保持了子空间的多样性,避免了子空间退化为低维空间的情况。这样,算法可以更有效地在高维空间中进行搜索,提高了收敛速度和全局搜索能力。
在嵌套Lanczos算法中的外部迭代过程中,每次迭代通过PGA算法求解如下子问题,以找到更优的更新方向
。
其中
,令
,则问题转换为
给出上述问题的增广拉格朗日函数:
则
,
更新公式如下:
,
。
于是有
。
通过以上子空间生成过程,嵌套迭代能够生成一个逐步优化的子空间,用于求解稀疏最小广义特征值问题。子空间的生成是嵌套迭代的核心部分,为算法提供了一种高效的方式来近似求解问题的最优解。
3.2. 算法投影分析
在本节中我们分析投影到子空间后的小问题:
其中,
是求解问题所在的子空间,
是
中的一组正交基,则下一次迭代值可以表示为
。
进而优化函数可表示为:
。
约束条件可以转化为:
令
,则上式约束条件可以转化为:
。
由于
,优化函数可以进一步转变:
。
令
,
,
通过上述投影变换,将原问题转换成如下优化问题:
(3)
3.3. 增广拉格朗日法求解投影问题
对于问题(3),令
,得到:
其中,
,这是一个带约束的流形优化问题,可以采用流形上的增广拉格朗日法,将问题转换成如下形式:
其增广拉格朗日函数为:
其中,
是对应线性约束
的拉格朗日乘子,我们需要求解如下问题:
(4)
下面给出增广拉格朗日算法解决上述问题:
算法4:增广拉格朗日法求解投影问题 |
1 输入:
; |
3 当
执行 |
4
; |
5
; |
8 若达到收敛准则,则 |
9 停止; |
10 增加
|
下面分析增广拉格朗日子问题如何求解。
3.4. 半光滑牛顿法求解子问题(4)
在这一小节中,我们用半光滑牛顿法解决子问题(4),对
同时最小化等价于:
。
其中,
是Moreau-Yosida正则化,
,此函数是连续可微的:
(5)
公式(5)与计算对应函数的近似点映射
是等价的,故:
(6)
令
(7)
其中
,则
因此我们得到如下命题来描述问题(4)的一阶必要条件。
命题1 给定
,对任意
满足公式(6)和
,则
除此之外对于适当的足够大的
,存在很小的
,使得
命题2 令
为
的Clark广义Jacbbi,则
其中,
。
下面给出半光滑牛顿法具体算法:
算法5:半光滑牛顿法求解子问题(4) |
1 输入:初始点
,
,
,
,
|
续表
2 当达到收敛准则 执行 |
3 选择
; |
4 解d通过求解广义牛顿方程:
; |
5 令
; |
6 若
执行 |
7
; |
8 更新
且
,
|
半光滑牛顿法子问题,可以直接调用黎曼流形上的信赖域方法求解,根据
计算可以得到
,进而能求出对应的特征值。下面给出半光滑牛顿法的收敛性分析。
定义7 如果F在x点所B-微分的元素
都是非奇异的,那么称F在x点是BD-正则的。
引理6 ([14])若
是半光滑的和BD-正则的,则存在常数
,
和一个小邻域
使得对于任意的
和
,下面的结论成立:
1)
是一个孤立解;
2) J是非奇异的并且
;
3) 局部误差界条件对于
在邻域
上成立,也就是说
。
定理9 若
是半光滑的且BD-正则的,并且z是优化问题(4)的最优解。那么z的迭代是良定义的,且存在一个小邻域
,使得对于任意的k有
,迭代是超线性收敛的。如果
是强半光滑的,迭代是二次收敛的。
Proof. 根据引理6,迭代是良定义的。我们可以简单地推出
其中最后一个等式来源于
的半光滑性。如果
是强半光滑的,则其可以改为
。
4. 数值实验
4.1. 实验
在本节中,我们评估了本文算法在解决对称稀疏广义特征值问题时的性能。在Matlab (R2017a)中编码,并在运行Windows 10 (64位)系统、配备Intel (R) Core (TM) i5-10210U CPU @1.60 GHz和8 GB内存的PC上进行评估。
对于函数
,我们选用
范数进行测试,并将算法与邻近梯度法进行对比实验。
范数
,
函数的邻近算子为
函数的广义雅可比函数为
4.2. 实验结果
参数设置:Krylov子空间
维度m = (10, 20),Krylov子空间
维度m = 1,外层最大子空间维度50,收敛容忍度1e-5,稀疏度1e-3。
Krylov子空间
维度m = 10的nested ALM实验结果见表1,Krylov子空间
维度m = 20的nested ALM实验结果见表2,PGA实验结果见表3。
Table 1. Nested ALM experimental results (m = 10)
表1. 嵌套子空间的增广拉格朗日法实验结果(m = 10)
n |
CPU时间 |
残差 |
外层迭代步数 |
目标函数值 |
1000 |
3.1051 |
1.4287 |
295 |
−0.0879 |
1500 |
7.8445 |
1.4308 |
457 |
−0.0723 |
2000 |
26.5017 |
1.3940 |
906 |
−0.0627 |
2500 |
28.7841 |
1.4191 |
766 |
−0.0564 |
3000 |
67.3727 |
1.3800 |
1228 |
−0.0514 |
Table 2. Nested ALM experimental results (m = 20)
表2. 嵌套子空间的增广拉格朗日法实验结果(m = 20)
n |
CPU时间 |
残差 |
外层迭代步数 |
目标函数值 |
1000 |
2.6639 |
1.3963 |
247 |
−0.0879 |
1500 |
11.3557 |
1.3356 |
603 |
−0.0723 |
2000 |
25.6663 |
1.3885 |
855 |
−0.0627 |
2500 |
33.2940 |
1.4138 |
872 |
−0.0564 |
3000 |
63.5617 |
1.4169 |
1126 |
−0.0514 |
Table 3. PGA experimental results
表3. 邻近梯度法实验结果
n |
CPU时间 |
残差 |
迭代步数 |
目标函数值 |
1000 |
7.7420 |
1.4298 |
1369 |
−0.0879 |
1500 |
8.3456 |
1.4003 |
800 |
−0.0723 |
2000 |
37.8297 |
1.3911 |
1934 |
−0.0627 |
2500 |
39.7651 |
1.4258 |
1529 |
−0.0564 |
3000 |
79.2420 |
1.4543 |
2044 |
−0.0514 |
由实验结果可以看出,本文提出嵌套子空间的增广拉格朗日法,当子空间维数
维度为20时的时间优于维度为10的时候,但残差略逊于子空间维度取10时,在实际应用中可以根据具体问题适当调整参数,可以根据残差下降速率自适应调整维度。例如,若残差下降缓慢,则增加维度以提升搜索能力。无论子空间维度取何值本文算法在CPU时间上都明显优于PGA,说明本算法对求解对称稀疏广义特征值问题具有较高的求解效率和稳定性。
5. 结论
本文实现了一种解决对称稀疏广义特征值问题的算法,该算法结合了嵌套结构和增广拉格朗日算法的思想,用于该问题的迭代求解。算法的核心是使用PGA算法来确定搜索方向并将其加入到子空间中,并使用子空间的信息进行进一步优化,整个算法动态地生成子空间,嵌套结构的引入可以进一步提高算法的性能,使其在复杂问题中寻找较好的解。并且实验结果表明,本算法对求解对称稀疏广义特征值问题具有较高的求解效率和稳定性,为了取得更好的性能,在实际应用中可以根据具体问题和数据适当调整算法参数。