如何使用特征库计算矩阵幂
How to calculate matrix power using Eigen library?
我需要计算某个矩阵的幂,然后得到它的特征向量。我知道有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
。
我忘了提一下,原始矩阵和幂矩阵的特征向量是相同的,比如这里。
相关文章:
- 在计算中使用二的幂有多有利可图
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 计算用户使用循环输入的整数数量
- 如何转换一个普通的makefile以创建可以在另一台计算机上使用的静态可执行文件
- 如何在MACOS上的C 计算中使用双AMD FirePro D300的GPU
- 在当前计算机上使用主机名
- 通过给定输出,程序计算中使用了多少个项
- 我如何使用函数来计算并使用void函数显示
- 尝试在旧计算机上使用新的LibstDC 会导致错误
- 如何计算和使用CVMAT平均值
- 在计算中使用布尔值以避免分支
- 如何编译C++项目(使用g++)以便在其他计算机上使用
- 如何在计算中使用英尺和英寸C++计算 BMI
- 在编译时间计算中使用GMP
- 在超级计算机上使用OpenMP
- 在计算中使用空指针
- 如何对接口的引用执行延迟计算(尝试使用bind)