对于具有复特征值的 3x3 矩阵,Matlab [evecs, evals] = eig(A) 是否总是在第一列中返回实际特征值?

For a 3x3 matrix with complex eigenvalues, does Matlab [evecs, evals] = eig(A) always return the real eigenvalue in the first column?

提问人:Oscar Alvarez 提问时间:10/20/2023 最后编辑:Cris LuengoOscar Alvarez 更新时间:10/20/2023 访问量:45

问:

我将只处理实数的 3x3 矩阵。我需要使用 Matlab 找到特征值。我知道我可以使用该函数来查找特征值和特征向量。我将为其找到特征值的矩阵将产生实数和/或复数特征值。Aeig(A)

问:
当矩阵产生虚特征值并且我在 Matlab 中使用该函数时,实特征值是否总是在第一列? (记住是一个 3x3 矩阵)
[evecs, evals] = eig(A)A

我之所以问这个问题,是因为在我找到的每个示例中,它总是在第一列中显示实际特征值。但是,没有明确说明对于 3x3 矩阵将首先返回实际特征值。eig()

到目前为止,它一直在这个假设下工作,但我将处理大量数据,如果不是这种情况,那么它可能会使数据变得无用。此外,我可以添加几行来确定哪个特征值是真实的特征值,但这需要计算时间,在我的情况下,每次执行会增加额外的分钟数。

如果情况是它首先返回实际特征值(对于 3x3 矩阵),那么这将节省大量时间。

MATLAB 矩阵 线性代数 复数 特征值

评论

4赞 Cris Luengo 10/20/2023
eig不承诺其输出中的任何类型的顺序。当前用于 3x3 实矩阵的算法可能总是将实特征值放在首位,如果是这样,只要您不更新 MATLAB 安装,您就可以依赖它。但是我不会依赖它来开发通用软件,因为你不能控制它运行的人和位置。
0赞 Oscar Alvarez 10/20/2023
谢谢你的建议。在这种情况下,我将不得不在我的代码中添加几行。谢谢。

答: 暂无答案