2015-12-03 410 views
1

我想找到矩陣U的最小量值特徵值的相應特徵向量。什麼是最簡單的方法來做到這一點?找到與最小特徵值對應的特徵向量

目前我使用的算法

[evecs, D] = eigs(U); 
evals = diag(D); 
smallesteig = inf; 
for k = 1:length(evals) 
    if (evals(k) < smallesteig) 
     smallesteig = evals(k); 
     vec = evecs(:, k); 
    end 
end 

是否有這樣做的更有效的方法?

回答

4

有一個非常簡單的速記:[V,D] = eigs(U,1,'SM')

如果你看一下eigs文檔,它指出:

EIGS(A,K,SIGMA) and EIGS(A,B,K,SIGMA) return K eigenvalues. If SIGMA is: 
    'LM' or 'SM' - Largest or Smallest Magnitude 
For real symmetric problems, SIGMA may also be: 
    'LA' or 'SA' - Largest or Smallest Algebraic 
    'BE' - Both Ends, one more from high end if K is odd 
For nonsymmetric or complex problems, SIGMA may also be: 
    'LR' or 'SR' - Largest or Smallest Real part 
    'LI' or 'SI' - Largest or Smallest Imaginary part 

所以,當小號 mallest 中號 agnitude分類[V,D] = eigs(U,1,'SM')返回U的第一特徵值特徵向量和值。