You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Numpy矩阵与自身逆矩阵相乘结果偏离单位矩阵的疑问

为什么矩阵乘逆矩阵得到的结果不是精确的单位矩阵?

嘿,这个问题其实超常见的,完全不用不好意思提问!

你看到的8.8817842e-16这个值,本质是浮点数精度误差导致的,这是计算机处理小数运算时的正常现象:

  • 计算机用二进制浮点数存储和计算数值,但并不是所有十进制小数都能被二进制精确表示——比如部分分数在二进制里是无限循环的,运算过程中会产生微小的舍入误差。
  • 虽然理论上矩阵a和它的逆矩阵相乘应该得到完美的单位矩阵,但实际浮点数计算中,这些微小误差会累积,最终表现为这种接近0的极小值(这个值和0的差距已经小到完全可以忽略不计了)。

如果你想验证这个结果是否“近似等于单位矩阵”,可以用numpy的np.allclose()函数来判断:

import numpy as np
from numpy.linalg import inv

a = np.matrix('1,2;3,4')
print(np.allclose(a.dot(inv(a)), np.eye(2)))  # 会输出True

这个函数会自动考虑浮点数的精度范围,只要两个矩阵的对应元素差距在可接受的精度内,就会认为它们是相等的。

内容的提问来源于stack exchange,提问作者g_p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:28:15