numpy inverse不适用于特定值

2024-10-03 06:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

a矩阵的逆检查结果为false。它适用于形状相同的随机矩阵

import numpy as np

def invCheck(mat):
    matInv = np.linalg.pinv(mat)
    Ident = matInv * mat
    print(np.allclose(Ident,np.eye(6)))

if __name__ == '__main__':
    x = np.matrix(np.random.rand(7,6))
    xTrans = np.transpose(x)
    mat = xTrans * x
    invCheck(mat = mat)
    a=np.matrix([[1., -1., -0.4, 0.5, 0.08,  0.4,]
                ,[1., -2., -1.2, 2.,  0.72,  2.4,]
                ,[1., -1., -1.2, 0.5, 0.72,  1.2,]
                ,[1.,  2., -1.2, 2.,  0.72, -2.4,]
                ,[1.,  1., -1.2, 0.5, 0.72, -1.2,]
                ,[1., -1., -2.,  0.5, 2.,    2.,]
                ,[1., -1.,  2.,  0.5, 2.,   -2.,]])
    aTrans = np.transpose(a)
    mat = np.dot(aTrans,a)

    invCheck(mat = mat)

Tags: importnumpyfalseasnp矩阵matrix形状