用稀疏对称不定质量矩阵计算小特征值

计算科学 线性代数 矩阵 Python 特征值 scipy
2021-12-17 13:19:43

我想要以下广义特征值问题的特征值: 其中

Av=λMv

  • ARn×n是稀疏的、对称的、半正定的

  • MRn×n是稀疏的、对称的和不定的(即既不是正定也不是负定)

我想要具有最小绝对值最接近于零。λ|λ|

我的问题是我正在使用scipy,特别是scipy.sparse.linalg.eigsh. (请注意,我必须使用 Python,但不一定scipy,如果有人知道更好的库。)在这种情况下,eigsh迫使我使用该buckling选项,因为是不确定的。然而, 模式排序基于通过以下变换的特征值: 其中是用户定义的常数。不幸的是,我无法弄清楚如何从中获得最小幅度的特征值。如果我选择大,然后要求最小的量级(即 option ),它太慢了。稍微好一点的是使用该选项Mbuckling

λ~=λλσ
σσeigshSMBE,它返回频谱两端的值,其中一个小的接近于零。但是,没有理由相信最小的特征值在正负之间是均匀分布的。σ

有没有人有任何建议来处理从质量矩阵不定的广义对称特征值问题中获取最小幅度特征值?


(作为单独的说明,我必须将添加到,然后在末尾),以便它从正半定到正定,根据要求模式。我知道这不是对广义特征问题的精确修正,因为它适用于更简单的情况,但到目前为止我找不到更好的替代方案,而且这似乎不是一个大问题。我已经在这里问了一个相关的问题,具体到这个方面。)ξIAξλξbuckling


编辑(091018):我需要一些初步结果,看起来像以下作品,但在速度方面肯定可能不是最佳的。简单地解决而不是使用. 使其快速的诀窍是使用预分解(即稀疏逻辑单元)来快速计算我很想知道更多关于可能更好的方法来做到这一点!M1Av=λveigsM1AA1M

0个回答
没有发现任何回复~