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

Python numpy库问题将倒平方矩阵与原始矩阵相乘,python,numpy,matrix,Python,Numpy,Matrix,在我自己创建的矩阵类中使用numpy库时,我遇到了一个问题。我正在使用numpy.matmul()和numpy.linalg.inv()对矩阵进行乘法和逆变换,据我所知,在将矩阵与其逆变换的结果相乘时,应该返回一个单位/单位矩阵。所以我有这些功能: def matmul(matrixOne, matrixTwo): return np.matmul(matrixOne, matrixTwo) def invert(squaredMatrix): return np.linal

在我自己创建的矩阵类中使用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.0000000e+00][8.8817842e-16.1000000e+00]

是否有任何数据类型需要转换以使其正常工作,或者有什么问题?

这是由浮点错误引起的。值8.8817842e-16非常非常接近于0,但有时在浮点数上操作时,得到的值并不完全正确

另一个例子:0.1+0.2=0.300000000004