You need to enable JavaScript to run this app. Python NumPy与Excel MINVERSE矩阵逆结果不一致,以哪个为准?
优惠活动
大模型
产品
解决方案
定价
更多

Python NumPy与Excel MINVERSE矩阵逆结果不一致,以哪个为准?

矩阵逆计算结果差异的原因与判定方法

矩阵2的理论精确逆

你测试的两个矩阵都是下三角结构,矩阵2的精确逆可以通过线性代数规则直接推导,结果为:

[[ 1,          0,          0        ],
 [-0.8,        0.2,        0        ],
 [-0.06666667, -0.17777778, 0.11111111]]

下三角矩阵的逆一定也是下三角矩阵——也就是所有行号小于列号的位置,元素理论值必须为0。

NumPy输出中微小值的本质

你看到的-6.16790569e-18、1.23358114e-17这类数值,完全是浮点数计算的正常舍入误差:

  • 这些位置属于下三角逆矩阵的上三角区域,理论值本来就该是0
  • NumPy调用的是LAPACK工业级线性代数库,计算过程中会产生量级在1e-16级别的机器精度误差,这个量级的数和0没有实际区别,完全可以忽略
  • 去掉这些微小误差后,NumPy的输出和理论精确逆完全匹配

与Excel结果产生差异的常见原因

矩阵1的计算结果两者一致,说明Excel的MINVERSE函数本身没有问题,矩阵2出现差异大概率是以下两类情况:

  • 输入矩阵2时的单元格位置错位:比如把某行的元素放错列、把行和列的方向搞反,导致Excel计算的根本不是你想要求逆的那个矩阵
  • 两者的浮点数处理逻辑不同:Excel对计算结果的截断规则和LAPACK有差异,可能会把本该是0的微小误差输出成有明显大小的数值

可靠结果的判定方法

不需要凭工具的权威性做判断,直接做矩阵乘法验证即可:

将原矩阵和待验证的逆矩阵做矩阵乘法,计算结果越接近单位矩阵,说明这个逆矩阵的计算越准确
可直接运行以下NumPy代码做验证:

# 计算原矩阵与NumPy输出逆的乘积
print(B @ Binv)

输出结果中,非对角线元素的误差都是1e-16量级,完全符合数值计算的精度要求。如果Excel计算出的逆矩阵乘原矩阵的误差远大于这个量级,那Excel的结果一定是错的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 12:06:09