具有最大重叠的特征向量

计算科学 线性代数 算法 矩阵 特征值 本征系统
2021-12-21 19:37:05

给定一个矩阵M和一个向量v,有没有一种有效的方法来找到归一化的特征向量M最接近v,因为它具有最大的重叠。更明确地说,一个向量v可以这样分解

v=jαjuj,
在哪里uj是的特征向量M. 我希望找到它的子集αj=vuj是最大的,没有解决完整的特征问题。

特别是我对 Hermitian 矩阵感兴趣,通常是对称的并且通常是稀疏的。高效我的意思是我应该能够找到R<N的特征向量N×N与对角化整个矩阵然后排序相比,具有最大重叠的矩阵具有更好的缩放比例。

我认为这是一个有趣的问题,因为所有算法(至少我知道)都是通过利用主要特征值的属性来工作的 - 矩阵的多个应用程序投影到具有该特征值的特征向量上。通过移位/反转,可以选择哪个应该是主要的特征值。因此,似乎这些算法从根本上不能只挑选出特定的特征向量,而只能挑选出特征值。我想知道是否甚至可以选择特定的特征向量。

请注意,三年前在数学 stackexchange 上和两年前在这个 stackexchange 上提出了这个问题,但没有答案:

https://math.stackexchange.com/questions/692468/find-the-eigenvector-with-maximum-overlap ,

计算给定向量的特征向量分量

解决方案(2019 年 1 月 31 日添加)------------------------------------------- ------------------

感谢 demaregee 指点我这篇论文

https://journals.aps.org/prb/abstract/10.1103/PhysRevB.66.245104

它使用 Jacobi-Davidson alogirthm 的变体为该问题提供了一个很好的解决方案。

基本思想是考虑投影的特征问题

VMVc=θc,
在哪里V是一个N×K矩阵,其中列是跨越“测试空间”的正交向量,以及u=Vc是向量的近似值。那么问题是如何选择和更新测试空间,直到 u 收敛到正确的特征向量。

u成为我们目前最好的解决方案和V我们的测试空间。然后我们求解校正方程

(MθI)z=r,r=(1VV)(MθI)u,
对于校正向量z, 在哪里θ是我们当前对特征值的近似值,并且u目标向量的当前近似值。然后我们正交化zV,归一化,然后扩展测试空间V[Vz].

然后我们解决投影的特征问题并采取解决方案uj=Vcjv作为下一个近似值u并更新对应的特征值θ. 我们从作为单个向量的测试空间开始V=v,我们要定位的向量,整个过程不断重复,直到(MθI)u<ϵ,其中是我们选择的准确度。ϵ

通过添加限制测试空间中向量数量的重新启动,可以使算法更加复杂。我们还可以通过从问题中投影出所有收敛向量来定位多个特征向量。

1个回答

以下论文表明,Jacobi-Davidson 方法可用于基于“可以从特征向量计算的任何属性”来定位特征向量,这似乎包括与给定向量的重叠。

https://journals.aps.org/prb/abstract/10.1103/PhysRevB.66.245104

根据该论文,关键只是在 Jacobi-Davidson 算法的每次迭代期间根据您想要的属性而不是通过接近目标特征值来重新排序 QR 分解。因此,这似乎是对现有 Jacobi-Davidson 代码的最小修改。

我不知道有任何代码支持这种内置的定位,但会对实现/测试一个非常感兴趣。