Sympy 解含参数的线性方程组

2020-01-06  本文已影响0人  寂风如雪

用矩阵的形式表示就好,有线代知识的话看例子会很容易明白:

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]))

注意几个坑:

  1. x = sp.symarray('x', (3, 1))不能写成x = sp.symarray('x', 3)否则返回的不是矩阵,A*x-B会报错。
  2. sol = sp.solve(A*x-B, tuple(x[:, 0]))必须指定变量,否则x_0也会被当作变量解。
  3. sol = sp.solve(A*x-B, tuple(x[:, 0]))不能写成sol = sp.solve(A*x-B, x)因为变量不接受array
上一篇 下一篇

猜你喜欢

热点阅读