Eigen库求取最大特征值和特征向量

    xiaoxiao2021-04-12  70

    原文链接:http://blog.csdn.net/wcsgzc/article/details/53946345

    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);//得到对应特征向量

    转载请注明原文地址: https://ju.6miu.com/read-667705.html

    最新回复(0)