矩阵逆的行列式



如何使用Cholesky分解计算矩阵逆的行列式。我发现直接计算矩阵的行列式不是一个好主意。那么任何人都可以提供一些见解吗?

如果你已经有了乔列斯基分解(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(。

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

例如,要计算 Matlab/Octave 中矩阵A的行列式,您可以使用 prod(diag(chol(A)))^2 ,这是 Matlab 语法中上述方程的右侧。

相关内容

  • 没有找到相关文章

最新更新