2015-12-03 408 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的第一特征值特征向量和值。