我想用python来解方程x+6y−z=0,x+2y−2z=1,−5x+2z=8。 我试着用不同的乘法运算来乘法矩阵,当使用不同的乘法运算时,答案是不同的。我想知道原因。在
import numpy as np
a= np.array([[2,6,-1],[1,2,-2],[-5,0,2]])
b= np.array([0,1,8])
a_inv= np.linalg.inv(a)
#case1
c= np.dot(a_inv,b)
print(c.shape)
#case2
print((a_inv@b).shape)
#case3
print((a_inv*b).shape)
case1和case2给出了正确的输出,但是case3没有。 输出: 案例1: (3,) 案例2: (3,) 案例3: (3,3)
numpy中的
*
运算符不同于矩阵乘法。当您执行a_inv * b
(在您的例子中),您将创建一个3x3数组,如下所示:从
^{pr2}$dot
开始,您可以用np.matmul(a_inv, b)
进行矩阵乘法,也可以使用np.matrix
显式地告诉numpy您的数组是矩阵:相关问题 更多 >
编程相关推荐