Я пытаюсь вычислить фактор Холецкого матрицы в С++ (для данной матрицы P найдем L такой, что LL ^ T = P). Моя цель состоит не в том, чтобы решить линейную систему P * x = b, так как такие матричные разложения часто используются, но для того, чтобы фактически получить матрицу L. (я пытаюсь вычислить "сигма-точки", как это делается в нечувствительном преобразовании.)
Библиотека 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?