Próbuję obliczyć współczynnik Cholesky matrycy w C++ (dla danej macierzy P znaleźć L takie, że LL^T = P). Moim celem NIE jest rozwiązywanie układu liniowego P * x = b, ponieważ takie dekompozycje macierzy są często używane, ale aby faktycznie uzyskać macierz L. (próbuję obliczyć "punkty sigma", jak to się dzieje w bezzapachowej transformacji .)Oblicz Cholesky Rozkład za pomocą Eigen
biblioteka Eigen rzekomo oblicza dekompozycji Cholesky, ale nie mogę dowiedzieć się, jak dostać to, aby dać mi wartości w macierzy L. Gdy próbuję następujące linie kodu
Eigen::MatrixXd P(3,3);
P << 6, 0, 0, 0, 4, 0, 0, 0, 7;
std::cout << P.llt().matrixL().col(0) << std::endl;
I błąd kompilatora:
error: ‘Eigen::internal::LLT_Traits<Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>, 1>::MatrixL’ has no member named ‘col’
documentation mówi, że LLT.matrixL() zwraca typ Cechy :: MatrixL. Co to jest i jak mogę uzyskać wartości L?