2013-02-27 122 views
4

我对lapack有一个相当不寻常的挑战,我花了数小时寻找解决方案。使用预定的特征值计算lapack中的特征向量?

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

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

任何人都有这个黑客?

+0

你想要计算矩阵A-xE的空间(aka.kernel),但我不知道LAPACK(或BLAS?)例程。 – MvG 2013-02-27 21:18:10

回答

3

鉴于广义本征值问题

(A - Y B)x = 0时

和特征值炔:

(A - ŸÑ B)X Ñ = 0

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

C^Ñ = A - ýÑ

ÇÑ X Ñ = 0

可以用任何线性代数求解器分别为每个特征值解决这个问题。按照LAPACK docs on linear equations,对于一般的矩阵,双精度,你可以使用DGETRS

编辑简并征值:

矩阵的零空间道道就是我们解决了这里(如MVG评论)。如果

ÇÑ J = 0和
ÇÑ K = 0

(即简并的e-瓦尔斯)然后给予ĴŤ K = 0(均仍是AB的特征向量系统),我们可以说

呼叫的çñ一个行r:

RK = RK - J 牛逼 .k =(r-j T)。ķ

从而形成了矩阵Ĵ,它的行各自是ĴŤ(必须有这样的名称,但不知道它):

(C Ñ - J)K = 0

定义

d NJ = C ñ - J

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

+0

我会试试这个,但是如果效率很高,时间会显示。在我的头顶,你提出的方法面临的巨大挑战将是退化的特征值。 – Smidstrup 2013-06-06 13:44:01

+0

我会在帖子中回复以确保清晰度和符号。 – 2013-06-07 10:48:24

相关问题