我正在尝试计算 C++ 中矩阵的 Cholesky 因子(对于给定的矩阵 P,找到 L 使得 LL^T=P)。我的目标不是解决线性系统 P*x=b,因为这种矩阵分解通常用于,而是实际获得矩阵 L。(我正在尝试计算“sigma 点”,就像在无味变换中所做的那样.)
库Eigen应该计算 Cholesky 分解,但我不知道如何让它给我矩阵 L 中的值。当我尝试以下代码行时
Eigen::MatrixXd P(3,3);
P << 6, 0, 0, 0, 4, 0, 0, 0, 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’
文档说 LLT.matrixL() 返回类型 Traits::MatrixL 。那是什么,我如何获得 L 的值?