我是靠谱客的博主 平常耳机,最近开发中收集的这篇文章主要介绍Eigen库求取最大特征值和特征向量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Eigen库中有求取矩阵特征值和特征向量的函数EigenSolver,用起来很方便。
但是官网说明文档里,求取特征向量后仅仅是输出来表示,如何使用求得的这些参数,我花了一点时间琢磨出来。
举例如下:

    Matrix<double, 4, 4>K= MatrixXd::Random(4,4);
    EigenSolver<Matrix<double, 4, 4>> es(K);
    MatrixXcd evecs = es.eigenvectors();//获取矩阵特征向量4*4,这里定义的MatrixXcd必须有c,表示获得的是complex复数矩阵
    MatrixXcd evals = es.eigenvalues();//获取矩阵特征值 4*1
    MatrixXd evalsReal;//注意这里定义的MatrixXd里没有c
    evalsReal=evals.real();//获取特征值实数部分
    MatrixXf::Index evalsMax;
    evalsReal.rowwise().sum().maxCoeff(&evalsMax);//得到最大特征值的位置
    Vector4d q;
    q << evecs.real()(0, evalsMax), evecs.real()(1, evalsMax), evecs.real()(2, evalsMax), evecs.real()(3, evalsMax);//得到对应特征向量

最后

以上就是平常耳机为你收集整理的Eigen库求取最大特征值和特征向量的全部内容,希望文章能够帮你解决Eigen库求取最大特征值和特征向量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部