求解 A x = 0 的 Lapack 例程
Lapack routines for solving A x = 0
我正在寻找一个 LAPACK 例程,它可以找到以下方程的非平凡解:
A x = 0
前提是A是一个n×n方奇异非对称带状矩阵。
实际上 A 矩阵可能不是完全奇异的,因为它基于某些参数,我使用求根算法找到此参数(需要 det(A) = 0,其中行列式是用 DGBTRF 和对角线元素的乘法找到的)。
到目前为止我想到的唯一解决方案是考虑 A 一个密集矩阵矩阵,使用 DGEEV 找到它的特征值和特征向量并取最接近零的特征值的特征向量。但是,我认为这是非常次优的方法。谁能推荐一个更好的?
最好的方法可能是 Inverse Iteration。
Lapack 确实为上 Hessenber 矩阵 (DHSEIN) 实现了这一点,并且还具有计算一般矩阵 (PxGEHRD) 的上 Hessenber 形式的例程。
由于您只需要一个特征向量,因此仅对原始矩阵使用逆迭代可能会更快,特别是如果您可以对解给出一个很好的初始猜测。由于这很容易实现,您可以尝试两者,看看哪个更快。
(这里假设还有一些特征值接近于0,如果误差太大,需要重新计算特征值。)
我正在寻找一个 LAPACK 例程,它可以找到以下方程的非平凡解:
A x = 0
前提是A是一个n×n方奇异非对称带状矩阵。
实际上 A 矩阵可能不是完全奇异的,因为它基于某些参数,我使用求根算法找到此参数(需要 det(A) = 0,其中行列式是用 DGBTRF 和对角线元素的乘法找到的)。
到目前为止我想到的唯一解决方案是考虑 A 一个密集矩阵矩阵,使用 DGEEV 找到它的特征值和特征向量并取最接近零的特征值的特征向量。但是,我认为这是非常次优的方法。谁能推荐一个更好的?
最好的方法可能是 Inverse Iteration。
Lapack 确实为上 Hessenber 矩阵 (DHSEIN) 实现了这一点,并且还具有计算一般矩阵 (PxGEHRD) 的上 Hessenber 形式的例程。
由于您只需要一个特征向量,因此仅对原始矩阵使用逆迭代可能会更快,特别是如果您可以对解给出一个很好的初始猜测。由于这很容易实现,您可以尝试两者,看看哪个更快。
(这里假设还有一些特征值接近于0,如果误差太大,需要重新计算特征值。)