C ++で行列のコレスキー因子を計算しようとしています(与えられた行列Pに対して、LL ^ T = PとなるようなLを見つけます)。私の目的は、線形システムP * x = bを解くことではなく、そのような行列分解がよく使用されるため、実際に行列Lを取得することです(無香変換で行われるように「シグマポイント」を計算しようとしています)。 。)
ライブラリEigenはおそらくコレスキー分解を計算しますが、行列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の値を取得するにはどうすればよいですか?