首页 > 解决方案 > Sympy Linsolve 出乎意料的结果

问题描述

我正在尝试用 Linsolve 求解方程组,但显然一定是误解了一些东西,因为我不断得到意想不到的结果。假设我想解决以下两个方程:

a + b = 0
a - b + c = 0

我希望结果:

b = 0.5*c

相反,Sympy 返回空集。使用 nonlinsolve 我得到 (-a),这也没有多大意义:

>>> import sympy
>>> a, b, c = sympy.symbols('a b c')
>>> Eqns = [a + b, a - b + c]
>>>sympy.linsolve(Eqns, b)
()
>>>sympy.nonlinsolve(Eqns, b)
(-a)

我想我要疯了,请帮助:)

标签: pythonmathsympy

解决方案


您还需要传递另一个变量。所以传递和方程一样多的变量,否则它是不可解的,就像手动一样。

import sympy as sp
a, b, c = sp.symbols('a b c')
Eqns = [a + b, a - b + c]
sp.solve(Eqns, b, a)

推荐阅读