用矩阵的形式表示就好,有线代知识的话看例子会很容易明白:
import sympy as sp
x0 = sp.symbols('x0')
x = sp.symarray('x', (3, 1))
A = sp.Matrix([[x0**2, x0, 1], [2*x0, 1, 0], [10000, 100, 1]])
B = sp.Matrix([[60], [60/x0], [100]])
sol = sp.solve(A*x-B, tuple(x[:, 0]))
注意几个坑:
-
x = sp.symarray('x', (3, 1))不能写成x = sp.symarray('x', 3)否则返回的不是矩阵,A*x-B会报错。 -
sol = sp.solve(A*x-B, tuple(x[:, 0]))必须指定变量,否则x_0也会被当作变量解。 -
sol = sp.solve(A*x-B, tuple(x[:, 0]))不能写成sol = sp.solve(A*x-B, x)因为变量不接受array。









网友评论