在PnL方法求相机位姿,Point—to—Line方法的点云匹配问题中,会将其中某一个参数的求解建模成求一个多项式的根。如下式所示:

                                         (1)

那么求解这样的一个多项式的根应该怎么做呢?参考文献1告诉我们可以利用矩阵特征值方法来求解,下面就简单的记录一下这个方法。

             (2)

而矩阵特征值的定义为:

                                                           (3)

要将矩阵A的特征值和多项式P(x) 的根联系起来,我们可以假设此时多项式P(x)的根就是矩阵 A阵的特征值,因此有:

                                                          (4)

也就是说应该要有一个合理的矩阵A和特征向量y 能将(2)式等价为(4)式。

此时如果令:,就很容易得到矩阵A了。

           (5)

那么接下来就用简单的代码验证下。

#include <iostream>
#include <Eigen/Core>
#include <Eigen/Geometry>
#include <Eigen/Dense>
#include<unsupported/Eigen/Polynomials>
using namespace std;int main()
{//setting coefficient of polynomial // 9x^4+ 34x^3 + x^2 -100x +201 =0Eigen::VectorXf coeffs(5);coeffs(4) = 9;coeffs(3) = 34;coeffs(2) = 0;coeffs(1) = 0;coeffs(0) = 9;Eigen::Matrix4f A;A << -coeffs(3)/coeffs(4),-coeffs(2)/coeffs(4),-coeffs(1)/coeffs(4),-coeffs(0)/coeffs(4),1,                    0,                    0,                 0,0,                    1,                    0,                 0,0,                    0,                    1,                 0;// SloveEigen::EigenSolver<Eigen::MatrixXf> ES(A);std::cout << "Roots:\n" << ES.eigenvalues().transpose() << std::endl;// // Check resultsEigen::PolynomialSolver<float,4> solve;solve.compute(coeffs);cout << "Eigen Method:\n" << solve.roots().transpose() << endl;return 0;
}

结果如下:

同步更新在:

https://zhuanlan.zhihu.com/p/363946630

利用矩阵特征值求解多项式的根相关推荐

  1. matlab根据根求多项式,matlab求解多项式的根

    因此牛顿法也称切线法,是非线性方程求根方法中收敛最快的方 法. 2. matlab 中方程求解的基本命令 roots(p):求多项式方程的根,其中 p 是多项式系数按降幂排列所形成的向量. solve ...

  2. 矩阵乘法求解多项式递推问题

    博客主页: https://blog.csdn.net/qq_50285142 欢迎点赞

  3. 十个利用矩阵乘法解决的经典题目

    出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.     不要以为数学 ...

  4. 十个利用矩阵解决的经典题目

    借鉴做题: 经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转     这里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转( ...

  5. QR分解求矩阵特征值、特征向量 C语言

    最近在看一个高光谱图像压缩算法,其中涉及到正交变换,计算正交变换时,需要对普通矩阵求其特征向量.想要在网上找一个现成的程序,可能是我百度的能力不强吧,居然真的没找见.好了废话不多说,下面进入正题. 计 ...

  6. 如何用计算机求特征值特征向量,利用QR算法求解矩阵的特征值和特征向量

    利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...

  7. 利用QR算法求解矩阵的特征值和特征向量

    利用QR算法求解矩阵的特征值和特征向量 为了求解一般矩阵(不是那种幼稚到shi的2 x 2矩阵)的特征值. 根据定义的话,很可能需要求解高阶方程... 这明显是个坑...高阶方程你肿么破... 折腾了 ...

  8. 2021-03-01 Matlab 多项式的根求解

    Matlab 多项式的根求解 分享一下通过多种不同的方法计算多项式的根. 数值根 使用代换法求根 特定区间内的根 符号根 数值根 roots 函数用于计算系数向量表示的单变量多项式的根. 例如,创建一 ...

  9. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

  10. 使用MTL库求解矩阵特征值和特征向量

    关于矩阵的特征值和特征向量求解,大部分的数学运算库都进行了提供,下面是使用MTL库的接口进行封装. #include <mtl/matrix.h> #include <mtl/mtl ...

最新文章

  1. 批量新建文件夹并命名_dos命令实现批量新建文件夹
  2. R假设检验之Jarque-Bera检验(Jarque-Bera Test)
  3. [生活化技术]组合模式 vs. 理发店价格表
  4. 【Java】5.4 隐藏和封装
  5. 大数据处理架构Hadoop
  6. 致:WWF技术博客领跑者WXWINTER--兰竹梅菊.春夏秋冬
  7. jersey客户端_每个客户使用Jersey处理的Cookie
  8. h5封装去底部_Appium—Native+H5混合APP的自动化
  9. ffmpeg实战教程(十二)为视频添加/更换背景音乐
  10. 通信设计院,到底是干啥的?
  11. Bootstrap 表格内容水平、垂直居中
  12. matlab使用switch结构判断学生成绩的等级
  13. java调用shell脚本,解决传参和权限问题
  14. 开启Digilent提供的Linux内核的NFS支持
  15. 2009年的人民币1000元购买力,相当于30年前人民币多少钱?
  16. 【原创】迅驰2平台(Montevina)含义解释及其处理器参数规格一览(导购1)
  17. 《概率论与数理统计》-第二章 随机变量及其分布-第一节 离散型随机变量及其分布-笔记
  18. 谈谈大三下学期找实习的经历(宇视科技 亚信联创 网新恒天 虹软)
  19. 怎么看xp系统的服务器名称,绿茶Ghostxp系统如何查看本机dns服务器地址[图文]
  20. 03.输出保留三位小数的浮点数

热门文章

  1. Word空格自动加下划线
  2. axure 折线图部件_在Axure中怎么做柱状图、折线图啊?
  3. 51nod 牛奶 bfs深度优先搜索
  4. 宁波大学数学系好老师推荐
  5. 本地微信公众号授权登录获取code步骤
  6. 技术开发、产品开发和平台开发的区别
  7. 面试官的技巧---如何高效地面试
  8. Matlab在线运行网址
  9. Java相关技术文档汇总
  10. 怎么锁定excel部分单元格不被修改