gpt4 book ai didi

c++ - 如何使用 Eigen 库计算矩阵幂?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:08:26 33 4
gpt4 key购买 nike

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

现在,我的代码是:

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

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

最佳答案

这是错误的操作顺序。您首先计算特征值,然后对它们取幂。

原因是指数矩阵的特征值等于原始矩阵的指数特征值。编辑:假设原始矩阵的特征值存在。

因此,例如,要获取矩阵 mat2 的特征值,您可以编写:

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

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


我忘了提到原始矩阵和指数矩阵的特征向量是相同的,参见 here例如。

关于c++ - 如何使用 Eigen 库计算矩阵幂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648744/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com