Eigen中矩阵的特征值求解函数eigenvectors()和pseudoEigenvectors()的区别

这两个函数都能计算矩阵的特征向量,后者似乎不易理解。解释如下:
(假设输入矩阵是A,其特征值构成的对角阵是D,返回的特征列向量构成的矩阵是V)

1. eigenvectors()

V满足表达式(1)
V的第k个列向量是对应第D中第k个特征值的特征向量(eigenvector)

2. pseudoEigenvectors()

V满足表达式(2)

V的第k个列向量是对应第D中第k个特征值的伪特征向量(eigenvector),也称为广义特征向量。这就是这两个函数的区别。

要点

显然,当A可逆时,以上两个函数的返回值是一样的,因为它们分别满足的表达式可以互相转换。A不可逆时,只有pseudoEigenvectors()可以得到正确结果。

你可能感兴趣的:(c++,线性代数,线性代数,Eigen)