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