我對lapack有一個相當不尋常的挑戰,我花了數小時尋找解決方案。使用預定的特徵值計算lapack中的特徵向量?
我有一個傳統形式(A - x B = 0)的廣義特徵值問題。通常我會使用例如hegvx或hegvd來計算特徵值和特徵向量。
但是我現在面臨的挑戰是,現在我已經知道問題構造的特徵值,因此我只需要一個有效的程序來計算特徵向量?
任何人都有這個黑客?
我對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