我想找到矩阵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
有更有效的方法吗?
这有一个非常简单的简写:[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
因此,当按照S mallest M agnitude 排序时,[V,D] = eigs(U,1,'SM')
返回U 的第一特征值的特征向量和值.