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

原文链接: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);//得到对应特征向量



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值