寻找特征值重排序算法的基准问题

计算科学 特征值 本征系统 拉帕克 数字 斯卡拉包
2021-12-12 04:40:02

每个实矩阵A可以简化为真正的 Schur 形式T=UTAU使用正交相似变换U. 这里的矩阵T是准三角形,主对角线上有 1 x 1 或 2 x 2 块。每个 1×1 块对应一个实特征值A并且每个 2×2 块对应于一对复共轭特征值A.

特征值重排序问题包括找到一个正交相似变换V这样用户选择的特征值A沿着左上角的对角线出现S=VTTV.

在 LAPACK 中,相关的双精度例程称为 DTRSEN。Daniel Kressner 编写了一个名为 BDTRSEN 的屏蔽版本。ScaLAPACK 例程是 PDTRSEN。

我正在寻找在解决特征值重排序问题方面取得进展会带来真正好处的应用程序和算法。

我们可以很容易地生成准三角形形式的测试矩阵,但是我们很难确定用户选择特征值的实际分布的形状。

从我的角度来看,带有 Ritz 加速的子空间迭代是测试重新排序算法改进的理想算法。它需要(稀疏)矩阵向量乘法、高 QR 算法和重新排序算法。

然而,我很难找到现实生活中的问题,其中很明显一组特定的特征对在物理上很有趣。

我们可以使用共享内存机器对维度为 40,000 的密集矩阵进行特征值重新排序。当用户选择所有特征值的大约 50% 时,可以获得最佳性能。

2个回答

这个问题很老了,但我可以在这里给出一个有意义的答案。

求解代数 Riccati 方程的最常用算法之一ATX+XA+Q=XGX(Schur 方法)如下:

  1. 计算哈密顿矩阵的舒尔分解H=[AGQAT]
  2. 重新排序,使左半平面中的特征值(正好是其中的 50%)排在第一位
  3. 拿第一个n重新排序的正交矩阵的列U.

因此,您可以对代数 Riccati 方程和控制理论问题(例如CAREXOberwolfach )进行基准问题,并制定相关的重新排序问题。

我敢肯定,我并不完全欣赏特征值重新排序算法的实用性,但是对于您问题的这一部分,我想到了许多答案:

然而,我很难找到现实生活中的问题,其中很明显一组特定的特征对在物理上很有趣。

例如,在某些流体动力学稳定性问题中,您将拥有与诸如开尔文-亥姆霍兹模式或托尔米恩-施利希廷波等物理现象相关的独特特征值。在流固耦合问题中,共振模式可能与扑动不稳定性有关。

这是否符合您正在寻找的内容?如果是这样,我相信其他人会用他们领域的例子来唧唧喳喳;如果没有,你能提高这个问题吗?