给定一个大矩阵带有特征值,我只想确定这些值的一个子集,比如说和. 有没有一种算法可以做到这一点,或者找到前 19 个特征值是可以做到的最好的?
寻找一世i- 矩阵的最大特征值
计算科学
特征值
svd
2021-12-17 11:09:12
1个回答
不,据我所知,没有任何东西,除非您大致知道这些特征值的位置。至于可以计算矩阵谱子集的方法,我只知道可以产生的方法:
- 来自“频谱极值”的特征值,例如具有最大绝对值或具有最大负实部/虚部的特征值。例如 Arnoldi / 子空间迭代(适当移位)。
- 最接近复平面中一个给定点的特征值,例如,模中最小的特征值(最接近于零)。例如(有理)移位和反转 Arnoldi 或逆幂迭代。
- 例如,平面特定区域的特征值. 我认为 FEAST 类型的方法可以做到这一点,但我对它们知之甚少。
据我了解,使用 FEAST 类型的方法,您还可以计算复平面的指定区域中的特征值数量(通过轮廓积分),因此如果您需要从光谱中间指定的特征值,例如第 300 个,您可以运行一种二等分搜索:假设(移动和缩放)矩阵的频谱在(为简单起见,这是真实的)。计算特征值最靠近. 计算特征值的数量. 如果大于 300,则寻找最接近中点的特征值,否则对于最接近中点的特征值. 重复。
如果你用 19 替换 300,我认为这些东西都不会与香草LA
Arnoldi 竞争,就像你的例子一样。甚至可能没有300。