2

コレスキー分解を使用して、行列の逆行列式を計算するにはどうすればよいですか。行列式を直接計算するのは良い考えではないことがわかりました。それで、誰かがいくつかの洞察を提供できますか?

4

2 に答える 2

8

コレスキー分解(A = L * L_t)がすでにある場合は、次のようになります。

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

L行列は下三角行列であるため、その行列式は対角要素の積です。

コレスキー分解はO(n ^ 3)演算を取り、Lの対角要素の積はO(n)のみです。ガウスの消去法(Aを三角行列に変換)はO(n ^ 3)を取り、数値的な問題が発生する可能性があります。

最後に、det(inv(A))= 1 / det(A)。

于 2012-05-03T17:34:26.007 に答える
1

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

たとえば、AMatlab / Octaveで行列式を計算するには、を使用できますprod(diag(chol(A)))^2。これは、Matlab構文の上記の方程式の右辺です。

于 2013-06-02T21:59:18.313 に答える