Ich versuche, den Cholesky-Faktor einer Matrix in C++ zu berechnen (für eine gegebene Matrix P finde L, so dass LL^T = P). Mein Ziel ist NICHT, ein lineares System P * x = b zu lösen, da solche Matrixzerlegungen oft verwendet werden, sondern um tatsächlich die Matrix L zu erhalten. (Ich versuche "Sigma-Punkte" zu berechnen, wie es in der unscented Transformation gemacht wird .)Berechne Cholesky-Zerlegung unter Verwendung von Eigen
Die Bibliothek Eigen berechnet angeblich Cholesky Zersetzungen, aber ich kann nicht herausfinden, wie es mir die Werte in der Matrix L. zu geben, wenn ich die folgenden Zeilen Code
Eigen::MatrixXd P(3,3);
P << 6, 0, 0, 0, 4, 0, 0, 0, 7;
std::cout << P.llt().matrixL().col(0) << std::endl;
ich versuche, Fehler beim Compiler erhalten
error: ‘Eigen::internal::LLT_Traits<Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>, 1>::MatrixL’ has no member named ‘col’
Die documentation besagt, dass LLT.matrixL() Typ Traits :: MatrixL zurückgibt. Was ist das und wie bekomme ich die Werte von L?