0
我尝试使用Eigen使用QR分解,但从以下两种方法得到的结果不同,请帮我找出错误! 谢谢。本征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();
感谢您的解释,那我该如何得到矩阵R? 我尝试使用: Rr = qr.matrixR()* qr.colsPermutation(); 但它似乎不正确 – zhaolewen
您可以计算'qr.matrixR()* qr.colsPermutation()。inverse()',但结果不再是三角形。我不知道你的用例是什么,但在大多数情况下,你可以用它来明确地处理额外的排列。 – ggael