2012-05-03 69 views
0

如何使用Cholesky分解來計算矩陣的逆的行列式。我發現,直接計算矩陣的行列式並不是一個好主意。所以任何人都可以提供一些見解矩陣的逆的行列式

+2

轉到math.stackexchange.com – leonbloy

回答

4

如果已經有Cholesky分解(A = L * L_t),那麼你就必須

det(A) = det(L) * det(L_t) = sqr(det(L)) 

L矩陣是下三角所以其行列式是對角元素的乘積。 Cholesky分解需要O(n^3)運算,L的對角元素的乘積只有O(n)。高斯消除法(將A轉換成三角矩陣)將花費O(n^3),並且會遭受可能的數值問題。

最後,det(inv(A))= 1/det(A)。

0

det(A) = product(eigenvalues(A)) = product(diagonal(choleskyFactorization(A)))^2

例如,爲了計算矩陣A的行列式在Matlab /倍頻程可以使用prod(diag(chol(A)))^2,其是在Matlab語法上述公式的右手側。