Matrix 矩阵逆的行列式

Matrix 矩阵逆的行列式,matrix,linear-algebra,Matrix,Linear Algebra,如何使用Cholesky分解计算矩阵逆的行列式。我发现直接计算矩阵的行列式不是一个好主意。那么有人能提供一些见解吗?如果你已经有了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))

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

如果你已经有了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)。

det(A)=乘积(特征值(A))=乘积(对角线(系数分解(A))^2


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

转到math.stackexchange.com我认为海报所指的是平方运算(2的幂),而不是平方根运算。sqr()是“平方”(或2的幂),而不是“平方根”的sqrt()