使用sympy或numpy解决以下方程式的实际解决方案吗?到目前为止,我已经尝试过numpy和sympy。
from sympy import *
from sympy.solvers.solveset import linsolve
sig = symbols(['sig'])
result = linsolve([(sig * -3) + ((1 - sig) * 1) == (sig * 2) + ((1 - sig) * 0)], sig)
此代码返回错误:
TypeError: unsupported operand type(s) for -: 'int' and 'list'
答案 0 :(得分:1)
我认为您为linsolve使用的语法错误:
sig = symbols(['sig'])
result = linsolve([(sig * -3) + ((1 - sig) * 1) - (sig * 2) - ((1 - sig) * 0)], sig)
答案 1 :(得分:0)
假设您只对使用sympy或numpy求解方程式感兴趣,而不必将自己限制为linsolve,那么这就是工作代码。
from sympy import *
sig = symbols('sig')
eq = Eq((sig * (-3)) + ((1 - sig) * 1), (sig * 2) + ((1 - sig) * 0))
solveset(eq, sig)
您的代码存在一个问题,即symbol(['sig'])的返回值不是Sympy符号对象,而是包含一个此类对象的python list ,因此您不能使用它来构建Sympy表达式。