MATLAB:按排序顺序从' eigs '中获得小特征值



例如,eigs(A,k,'sm')返回k个最小大小的特征值。然而,eigs不处理符号。编辑:eigs(A,k,'sr')照顾它。

A为500 × 500稀疏矩阵。没有得到所有的特征值像eig,如何得到最小的3个特征值(不是大小)和相应的特征向量为eigs在一个有序的方式有效?

这可以通过排序获得eig中的所有特征值来轻松完成,但由于某些原因,我不能使用eig,因为它需要很长时间和巨大的内存来转换为完整矩阵并计算所有特征值。

编辑:这也可以由eigs(A,k,'sr')完成,并自己进行排序。但是在eigs中是否有更快的方法或选项来做到这一点?

它不应该这样做,除非有语法错误或您的矩阵具有正实部的所有特征值。这给出了R2016a上正确的负号最小实部(我猜这就是你所说的小)特征值。注意,最小的卵是复共轭,其中一对仅由其负虚部给出。

A = sprand(100,100,0.5);
[V,D] = eigs(A,3,'sr')

最新更新