c – 使用特征计算Cholesky分解
发布时间:2020-12-16 03:01:05 所属栏目:百科 来源:网络整理
导读:我试图计算C中矩阵的Cholesky因子(对于给定的矩阵P find L,使得LL ^ T = P).我的目标不是求解线性系统P * x = b,因为这样的矩阵分解经常用于但实际获得矩阵L.(我正在计算“sigma点”,就像在无密码变换.) 图书馆Eigen据称计算Cholesky分解,但是我无法弄清楚如
我试图计算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; 会得到你想要的东西 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |