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

使用Numpy执行矩阵运算得到错误结果,求问题排查方法

矩阵乘法结果错误的原因及解决方法

你遇到的问题和浮点数处理无关,核心是用错了乘法函数:

  • np.multiply(arr1, arr2) 执行的是逐元素相乘,也就是两个矩阵对应位置的元素直接相乘,这不是线性代数中定义的矩阵乘法。
  • 要实现标准矩阵乘法,你需要用以下三种方式之一:

正确代码示例

import numpy as np
np.set_printoptions(formatter={'float': lambda x: "{0:0.2f}".format(x)})

# deltaT
arr1 = np.array([[0, 0.01, 0, 0.1],
                 [0, -0.05, 0, 0],
                 [0.05, 0, -0.01, 0],
                 [0, 0, 0, 0]])

# T1inv
arr2 = np.array([[0., 1., 0., -5],
                 [0, 0, 1, -2],
                 [1, 0, 0, -8],
                 [0, 0, 0, 1]])

# 标准矩阵乘法(三种选其一即可)
arr3 = arr1 @ arr2  # 推荐用这个运算符,直观简洁
# arr3 = np.dot(arr1, arr2)
# arr3 = np.matmul(arr1, arr2)

print(arr3)

运行后输出的结果会和在线矩阵求解器的结果一致,比如第一行结果为 [0.00 0.00 0.01 0.08],完全符合线性代数矩阵乘法的计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:35:55