提问人:meisel 提问时间:11/7/2023 更新时间:11/7/2023 访问量:36
如何检测矩阵是否由于浮点误差而看起来非奇异,但实际上是奇异的?
How can I detect if a matrix looks non-singular due to floating-point error but is actually singular?
问:
我正在创建一个公共 API,用于对矩阵执行一些操作,包括矩阵反转。我尝试过的一些矩阵是通过一系列浮点运算创建的,因此我知道它们不应该是可逆的,但对于它返回一个矩阵(一个具有非常大值的矩阵,例如 2.1e16)。我读到过,有很多方法可以检测矩阵实际上是奇异的,并且由于浮点误差而看起来是非奇异的,例如查看条件数是否高(多高?),任何特征值是否接近 0(多接近?),或者行列式是否接近 0(多接近?)。有了所有这些选择,我试图理解确定矩阵是否可能是奇异的理想算法可能是什么样子,以及它的细节会是什么样子(例如,我们是否测试条件数是否大于矩阵元素的平均值?我需要一些可以用于此 API 的自动化功能,而不是由人类查看结果并做出判断的东西。numpy.linalg.inv(matrix)
答: 暂无答案
评论