最大的特征向量是否按绝对特征值排序?

Are the largest eigenvectors sorted by absolute eigenvalue?

假设我有一个实对称矩阵,我想使用 eig.

提取 k 个最大的特征向量

我知道我可以使用 eigs 代替,但这不是我的问题的重点。 我读到他们使用 different algorithms, and the documentation for eigs states explicitly "largest magnitude", which seems to imply that the eigenvalues would be sorted in absolute value, especially because apparently the sign of the eigenvector/values does not matter.

但是我也看到ordering the eigenvectors应该根据特征值的排序来做,sort(diag(D));这里没有绝对值(也没有关于矩阵正性的假设)。

  1. 我认为要么后者post是错误的,要么Matlab对eigs的文档在使用"largest magnitude"这个词时是错误的或误导的,是吗?或者他们都是对的,我误解了什么?

  2. 为了澄清,"largest"特征向量应该根据绝对特征值排序,对吗?

  1. 您提到的后一个问题正在讨论 eig,它使用用于一般密集矩阵的直接方法;您正在讨论 eigs,它使用用于一般稀疏矩阵的迭代方法。

    eig 将 return 特征值按直接法找到的顺序排列。一般来说,这意味着随机排序。对于实对称矩阵,直接方法的排序似乎生成从最负到最正的特征值。

    eigs 将 return k 特征值和向量与 largest/smallest magnitude/real part/imaginary 部分(用户指定)。但是,as noted,“eigs 并不总是 return 对特征值和特征向量进行排序。在输出特征值和特征向量的顺序很重要的情况下,使用 sort 对输出特征值和特征向量进行显式排序。”

  2. 通常,是的,最大(绝对)星等。尽管 sort 可用于将特征值置换为任何所需的顺序。