寻找一世i- 矩阵的最大特征值

计算科学 特征值 svd
2021-12-17 11:09:12

给定一个大矩阵A带有特征值σ1σ2,我只想确定这些值的一个子集,比如说σ5,σ8σ19. 有没有一种算法可以做到这一点,或者找到前 19 个特征值是可以做到的最好的?

1个回答

不,据我所知,没有任何东西,除非您大致知道这些特征值的位置。至于可以计算矩阵谱子集的方法,我只知道可以产生的方法:

  • 来自“频谱极值”的特征值,例如具有最大绝对值或具有最大负实部/虚部的特征值。例如 Arnoldi / 子空间迭代(适当移位)。
  • 最接近复平面中一个给定点的特征值,例如,模中最小的特征值(最接近于零)。例如(有理)移位和反转 Arnoldi 或逆幂迭代。
  • 例如,平面特定区域的特征值[1,1]×[1,1]. 我认为 FEAST 类型的方法可以做到这一点,但我对它们知之甚少。

据我了解,使用 FEAST 类型的方法,您还可以计算复平面的指定区域中的特征值数量(通过轮廓积分),因此如果您需要从光谱中间指定的特征值,例如第 300 个,您可以运行一种二等分搜索:假设(移动和缩放)矩阵的频谱在[1,1](为简单起见,这是真实的)。计算特征值μ最靠近12. 计算特征值的数量[12,1]. 如果大于 300,则寻找最接近中点的特征值[μ,1],否则对于最接近中点的特征值[1,μ]. 重复。

如果你用 19 替换 300,我认为这些东西都不会与香草LAArnoldi 竞争,就像你的例子一样。甚至可能没有300。