4

我对 lapack 有一个相当不寻常的挑战,我花了几个小时寻找解决方案。

我有一个传统形式的广义特征值问题(A - x B = 0)。通常我会使用例如 ?hegvx 或 ?hegvd 来计算特征值和特征向量。

但是我现在面临的挑战是,现在我已经从问题的构造中知道了特征值,因此我需要一个有效的lapack 例程来仅计算特征向量?

有人对此有破解吗?

4

1 回答 1

3

给定广义特征值问题

(A - y B) x = 0

和一个特征值 yn:

(A - y n B) x n = 0

我们知道 A、B 和 yn,所以我们可以形成一个新的矩阵 Cn

C n = A - y n B

C n x n = 0

您可以使用任何线性代数求解器为每个特征值单独求解。根据LAPACK docs on linear equations,对于一般矩阵,双精度,您可以使用 DGETRS

编辑退化特征值:

矩阵 Cn 的零空间是我们在这里解决的问题(正如 MvG 评论的那样)。如果

C n j = 0 和
C n k = 0

(即退化的 e-vals)然后给定 j T k = 0 (两者仍然是 AB 系统的特征向量)我们可以说

调用一行 C n r:

rk = rk - j T .k = (rj T ).k

从而形成一个矩阵 J ,其行是每个 j T(必须有一个名称,但我不知道):

(C n - J) k = 0

定义

D nj = C n - J

现在求解新矩阵 D nj。通过构造,这将是具有相同退化特征值的原始矩阵的新正交特征向量。

于 2013-06-05T12:49:48.533 回答