我有以下等式:
Eq(5*Abs(4*x+2)+6,56).
我要做的是为数学问题x = -3
求解5 |4x+2|+6=56
,但我一直在
“绝对值不能在复杂域中反转”
同情中的错误。
有解决方法吗?
答案 0 :(得分:3)
您必须指定x
是实值变量。您可以在定义变量时执行以下操作。
import sympy as sp
x = sp.symbols('x', real = True)
eq = sp.Eq(5*sp.Abs(4*x+2)+6,56)
sol = sp.solve(eq, x)
print(sol)
[-3, 2]
编辑:可以使用sympy.solveset
函数代替sympy.solve
。在这种情况下,您需要明确声明您正在解决实数域。通过这样做,您不必将变量定义为真实。
import sympy as sp
x = sp.symbols('x') # implies that x is complex
eq = sp.Eq(5*sp.Abs(4*x+2)+6,56)
sol = sp.solveset(eq, x, domain=sp.S.Reals)
print(sol)
{-3, 2}