使用预定的特征值计算lapack中的特征向量?
我对lapack有一个相当不寻常的挑战,我花了数小时寻找解决方案。使用预定的特征值计算lapack中的特征向量?
我有一个传统形式(A - x B = 0)的广义特征值问题。通常我会使用例如hegvx或hegvd来计算特征值和特征向量。
但是我现在面临的挑战是,现在我已经知道问题构造的特征值,因此我只需要一个有效的程序来计算特征向量?
任何人都有这个黑客?
鉴于广义本征值问题
(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。通过构造,这将是具有相同退化特征值的原始矩阵的新的正交特征向量。
我会试试这个,但是如果效率很高,时间会显示。在我的头顶,你提出的方法面临的巨大挑战将是退化的特征值。 – Smidstrup 2013-06-06 13:44:01
我会在帖子中回复以确保清晰度和符号。 – 2013-06-07 10:48:24
你想要计算矩阵A-xE的空间(aka.kernel),但我不知道LAPACK(或BLAS?)例程。 – MvG 2013-02-27 21:18:10