我编写了一个代码来求解一组包含 3 个变量的 3 个线性方程。
方程式为:
x+y+3z = 6; 2x+3y-4z=6;3x+2y+7z=0
我写的代码是:
import numpy as np
A=np.matrix([1,1,3],[2,3,-4],[3,2,7])
B=np.matrix([6],[6],[0])
Ainverse=np.linalg.inv(A)
X=Ainverse*B
print (X)
但这显示了错误:
TypeError: Field elements must be 2- or 3-tuples, got '2'
我似乎不明白那是什么。请帮忙
您错过了
[]
中的 matrix(...)
括号:
A=np.matrix([[1,1,3],[2,3,-4],[3,2,7]])
B=np.matrix([[6],[6],[0]])
请参考这个。
用
numpy.linalg
包解决
import numpy as np
from numpy.linalg import solve
A=np.array([[1,1,3],[2,3,-4],[3,2,7]])
b=np.array([[6],[6],[0]])
x= solve(A,b)
print (x.flatten())
print('\n'.join(["x" + str(i[0]) + " = "+str(format(i[1], '.2f')) + ", " for i in enumerate(x)]))