2009-07-20 137 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