如何使用特征库计算矩阵幂



我需要计算某个矩阵的幂,然后得到它的特征向量。我知道有pow()方法,但我不清楚如何使用它

目前,我的代码是:

Eigen::Matrix3d mat2 = mat1.pow(0.5);
return getEigenvalues(mat2);

方法getEigenvalues()采用Eigen::Matrix类型,而不是pow()返回的类型。

这是错误的操作顺序。首先计算特征值,然后对其进行幂运算。

原因是幂矩阵的特征值等于原始矩阵的幂特征值。EDIT:假设原始矩阵的特征值存在。

例如,为了得到矩阵mat2的特征值,你写:

Eigen::VectorXd ev = getEigenvalues(mat1).unaryExpr([](double d) {return std::pow(d, 0.5);});

在指数为二分之一的情况下,也可以更好地使用std::sqrt


我忘了提一下,原始矩阵和幂矩阵的特征向量是相同的,比如这里。

最新更新