Я пытаюсь использовать QR-декомпозицию с использованием Eigen, но результаты получают следующие методы буксировки, пожалуйста, помогите мне узнать об ошибке! Спасибо.Результаты декомпозиции Eigen QR отличаются от двух методов:
// Initialize the sparse matrix
A.setFromTriplets(triplets.begin(), triplets.end());
A.makeCompressed();
//Dense matrix method
MatrixXd MatrixA = A;
HouseholderQR<MatrixXd> qr(MatrixA);
MatrixXd Rr = qr.matrixQR().triangularView<Upper>();
//Sparse matrix method
SparseQR < SparseMatrix <double>, COLAMDOrdering<int> > qr;
qr.compute(A);
SparseMatrix<double, RowMajor> Rr = qr.matrixR();
Спасибо за ваше объяснение, тогда как мне получить матрицу? Я пытаюсь использовать: Rr = qr.matrixR() * qr.colsPermutation(); Но это кажется неправильным – zhaolewen
Вы можете вычислить 'qr.matrixR() * qr.colsPermutation(). Inverse()', но результат больше не будет треугольным. Я не знаю, каков ваш прецедент, но в большинстве случаев вы его адаптируете для явного рассмотрения дополнительной перестановки. – ggael