特征QR分解结果与两种方法不同

时间:2017-01-13 14:50:23

标签: sparse-matrix eigen qr-decomposition

我尝试使用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();

1 个答案:

答案 0 :(得分:1)

这是因为SparseQR执行列重新排序以减少填充并实现几乎等级显示的分解,类似于ColPivHouseholderQR。更确切地说,HouseholderQR计算:A = Q*R,而SparseQR计算:A*P = Q*R。因此,预计两个R三角因子是不同的。