numpy库的问题将倒平方矩阵与原始矩阵相乘

在我自己创建的矩阵类中使用 numpy 库时,我遇到了一个问题。我正在使用 numpy.matmul() 和 numpy.linalg.inv() 对矩阵进行乘法和求逆,据我所知,在将矩阵与其求逆结果相乘时,您应该返回一个单位/单位矩阵。所以我有这些功能:


def matmul(matrixOne, matrixTwo):

    return np.matmul(matrixOne, matrixTwo)


def invert(squaredMatrix): 

    return np.linalg.inv(squaredMatrix) 

它们在单独使用时按预期工作,但当我测试它是否返回单位矩阵时,我这样做:


original = [[1,2], [3,4]]


print("here is result",str(matmul(original,invert(original))))

我应该得到一个像这样的矩阵:[[1.0, 0.0], [0.0, 1.0]] 在印刷品中,但我得到的是:[[1.0000000e+00 0.0000000e+00] [8.8817842e-16 1.0000000e+00]] 是否有任何我应该转换的数据类型以使其工作或有什么问题?


BIG阳
浏览 68回答 1
1回答

偶然的你

这是由浮点错误引起的。值 8.8817842e-16 非常非常接近 0,但有时在对浮点数进行操作时,您获得的值并不完全正确。另一个例子:0.1 + 0.2 = 0.30000000000000004
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python