与两个拟退化特征值相关的特征向量

计算科学 matlab 特征值 本征系统
2021-12-10 07:52:01

我需要找到一个稀疏矩阵的最小特征值和对应的特征向量M谁的维度是104.

在 Matlab 环境中,我使用命令

[Evec, Eval]= eigs(M,1,'sa');

我得到的特征值,λ0, 很合理,但我怀疑对应的特征向量,v0, 是错的。我也怀疑这个可能错误的特征向量来自矩阵M是这样的,它的光谱的较低部分是准退化的,即

λ0λ1λ2
请注意,光谱是简并的,而不是简并的,这意味着,在任何情况下,都有λ0<λ1<λ2<.

1)我的嫌疑人合理吗?

2)这是计算科学中的一个众所周知的问题吗?

3)有没有办法绕过它,即获得确切的特征向量v0与最小特征值相关λ0矩阵的M谁的频谱的下半部分是准退化的?

附加信息:矩阵M表示一个量子哈密顿量。它是对称的,但既不是正定的也不是负定的。尽管如此,我只对它频谱的较低部分感兴趣,即最负的特征值。

1个回答

作为第一条评论,我会提到您确实在离散化(尽管不是在空间上)您的微分方程。当您选择基础时会发生这种情况,您可以选择更多或更少的元素和不同类型的基础。

关于,你的问题我加倍检查了 Matlab 的文档,它似乎使用的是 Lanczos 算法。所以,我会首先增加你的 Krylov 子空间的大小,看看这是否会改善你的特征向量。然后,我会尝试迭代次数和容差。

这是文档中建议的内容:

如果 eigs 无法针对给定矩阵收敛,则通过增加 'SubspaceDimension' 的值来增加 Lanczos 基向量的数量。作为次要选项,调整最大迭代次数“MaxIterations”和收敛容差“Tolerance”也有助于收敛行为。