Issues with calculating the determinant of a matrix

I am trying to calculate the determinant of the inverse of a matrix. The inverse of the matrix exists. However, when I try to calculate the determinant of the inverse, it gives me Inf value in matlab. What is the reason behind this?

Answers


Short answer: given A = inv(B), then det(A)==Inf may have two explanations:

  1. an overflow during the numerical computation of the determinant,
  2. one or more infinite elements in A.

In the first case your matrix is badly scaled so that det(B) may underflow and det(A) overflow. Remember that det(a*B) == a^N * det(B) where a is a scalar and B is a N times N matrix.

In the second case (i.e. nnz(A==inf)>0) matrix B may be "singular to working precision".

PS:

A matrix is nearly singular if it has a large condition number. (A small determinant has nothing to do with singularity, since the magnitude of the determinant itself is affected by scaling.).

A matrix is singular to working precision if it has a zero pivot in the Gaussian elimination: when computing the inverse, matlab has to calculate 1/0 which returns Inf.

In fact in Matlab overflow and zero-division exceptions are not caught, so that, according to IEEE 754, an Inf value is propagated.


Need Your Help

notification from eBay when a product has been sold

api product ebay

I have an ecommerce and eBay store, in my ecommerce-DB there are the same products of the store, classic solution, but i want to know if there is a way to know, in real time, when a product has bee...