计算矩阵行列式的问题

时间:2012-05-01 21:22:04

标签: matlab linear-algebra matrix-inverse

我试图计算矩阵的逆的行列式。存在矩阵的逆矩阵。但是,当我尝试计算逆的行列式时,它给出了matlab中的Inf值。这背后的原因是什么?

1 个答案:

答案 0 :(得分:2)

简短回答:给定A = inv(B),然后det(A)==Inf可能有两种解释:

  1. 在行列式的数值计算过程中出现溢出,
  2. A中的一个或多个无限元素。
  3. 在第一种情况下,您的矩阵会严重缩放,因此det(B)可能会下溢并det(A)溢出。请注意det(a*B) == a^N * det(B)其中a是标量而BNN矩阵。

    在第二种情况下(即nnz(A==inf)>0)矩阵B可能是“单一工作精度”。

    PS:

    如果矩阵具有较大的条件数,则矩阵几乎是单数。 (一个小的行列式与奇点无关,因为行列式本身的大小受到缩放的影响。)。

    如果矩阵在高斯消元中具有零枢轴,则矩阵对于工作精度是单数的:当计算逆时,matlab必须计算返回1/0的{​​{1}}。

    事实上,在Matlab溢出和零分割异常没有被捕获,因此,根据IEEE 754,传播Inf值。