2009-07-20 80 views

回答

2

一种方法是使用LU分解:

LaVectorLongInt pivots(A.cols()); 

    LUFactorizeIP(A, pivots); 

    double detA = 1; 
    for (int i = 0; i < A.cols(); ++i) 
    detA *= A(i, i); 

警告,一个会发生变化,所以制作一份拷贝大概建议。

0

我不知道lapack ++,但我确定没有标准的lapack,check。据我所知,lapack ++没有实现本身的操作,而是使用别人的操作,实际上你可以在其中的几个(atlas,mkl(intel数学内核库)等等)之间切换。因此,我的假设是,在lapack ++中也有任何决定性操作。计算行列式

+0

Lapack ++包含所有BLAS操作。 BLAS中没有行列式功能,但可能有其他方法可用于获取行列式。 – 2009-07-20 11:30:41

+0

对不起,我误解了你的问题。我应得的恶业:-)。 – 2009-07-20 16:06:08