2015-09-03 21 views
0

我希望這不是一個壞問題,但是我計算對稱矩陣的特徵向量和特徵值,我們稱之爲A.Python |對應於它們的原始行和列的特徵向量組件

A是說10x10。

我想獲得對應於其第二大特徵值的特徵向量。我做

[D, V] = scipy.sparse.linalg.eigs(L, 2) 
s = V[:, 0] # this is the 2nd eigenvecotr 

現在,我想做一些計算基於比較's'中的某些元素到其他數字。例如:

for i in range(0, len(s)): 
if s[0] > some number: 
do something with the first column/row (if this was a graph, the first node) in A 

我的問題是:

  1. 是否scipy.sparse.linalg.eigsh它的問題,如果我使用scipy.sparse.linalg.eigs,還是?我在網上看到了這兩種文檔,但無法辨別其差異。
  2. 特徵向量中的元素是否對應於它們的原始行/列?例如,s [0]對應於A的第一列/行的特徵向量。

回答

0

docs是上行/列的問題很明顯:

的V列[:, i]爲相應於本徵值W [I]

的本徵向量eigs和eigsh之間的區別在於後者假設對稱/埃爾米特矩陣。

最後,對於一個10x10的矩陣,你不需要任何稀疏的東西,最好使用scipy.linalg的函數。

+0

我知道每個特徵向量對應於該特徵值。我的意思是,特徵向量中的每個條目是否與原始矩陣中的特定行/列相對應。 如果原始矩陣表示一個圖,那麼v [i](eigenvector ith entry)是否對應於第i個節點? – ajl123

+0

是的,它們滿足特徵值方程A.dot(v [:,j])= w [j] * v [:,j]。 –