c – 使用特征计算Cholesky分解

c – 使用特征计算Cholesky分解,第1张

概述我试图计算C中矩阵的Cholesky因子(对于给定的矩阵P find L,使得LL ^ T = P).我的目标不是求解线性系统P * x = b,因为这样的矩阵分解经常用于但实际获得矩阵L.(我正在计算“sigma点”,就像在无密码变换.) 图书馆Eigen据称计算Cholesky分解,但是我无法弄清楚如何让它给出矩阵L中的值.当我尝试以下代码行时 Eigen::MatrixXd P(3,3); 我试图计算C中矩阵的Cholesky因子(对于给定的矩阵P find L,使得LL ^ T = P).我的目标不是求解线性系统P * x = b,因为这样的矩阵分解经常用于但实际获得矩阵L.(我正在计算“sigma点”,就像在无密码变换.)

图书馆Eigen据称计算Cholesky分解,但是我无法弄清楚如何让它给出矩阵L中的值.当我尝试以下代码行时

Eigen::MatrixXd P(3,3);P << 6,4,7;std::cout << P.llt().matrixL().col(0) << std::endl;

我得到编译器错误

error: ‘Eigen::internal::LLT_Traits<Eigen::Matrix<double,-0x00000000000000001,-0x00000000000000001>,1>::MatrixL’ has no member named ‘col’

documentation表示LLT.matrixL()返回类型为Traits :: MatrixL.这是什么,如何获得L的价值?

解决方法 您可以查看LLT.h头文件中的特征.它的 TriangularView像文档说的.三角形视图没有col成员,这就是为什么你得到错误.将三角形视图复制成如下所示的密集矩阵:
Eigen::MatrixXd P(3,7;Eigen::MatrixXd L( P.llt().matrixL() );std::cout << L.col(0) << std::endl;

会得到你想要的东西

总结

以上是内存溢出为你收集整理的c – 使用特征计算Cholesky分解全部内容,希望文章能够帮你解决c – 使用特征计算Cholesky分解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1252471.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存