matlab – 计算矩阵行列式的问题

我试图计算矩阵的逆的行列式.存在矩阵的逆矩阵.但是,当我尝试计算逆的行列式时,它给出了matlab中的Inf值.这背后的原因是什么? 最佳答案 简答:给定A = inv(B),则det(A)== Inf可能有两种解释:

>在行列式的数值计算过程中溢出,
> A中的一个或多个无限元素

在第一种情况下,您的矩阵被严重缩放,因此det(B)可能下溢并且det(A)溢出.请记住det(a * B)== a ^ N * det(B)其中a是标量,B是N倍N矩阵.

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

PS:

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

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

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

点赞