#c #math #linear-algebra #eigen
Вопрос:
Я хочу решить симметричную положительно определенную матрицу с помощью решателя LLT, для этого я написал это (для проверки):
Eigen::SparseMatrix<float> bijection(vert_count, vert_count);
Eigen::LLT<Eigen::SparseMatrix<Scalar>> llt_mat(bijection);
Это не удается скомпилировать с ошибкой:
error: ‘Eigen::SparseMatrixBase<Eigen::Block<Eigen::SparseMatrix<float, 0, int>, -1, 1, true> >::FixedSegmentReturnType<-1>::Type’ {aka ‘class Eigen::VectorBlock<Eigen::Block<Eigen::SparseMatrix<float, 0, int>, -1, 1, true>, -1>’} has no member named ‘lpNorm’
448 | abs_col_sum = m_matrix.col(col).tail(size - col).template lpNorm<1>() m_matrix.row(col).head(col).template lpNorm<1>();
Я не совсем уверен, как мне следует решать систему с помощью встроенного решателя LLT.
Комментарии:
1. Вам нужно использовать один из разреженных решателей: eigen.tuxfamily.org/dox/group__TopicSparseSystems.html
2. это работает, спасибо