>我有以下等式:
Eq(5*Abs(4*x+2)+6,56).
我想做的是解决x = -3
数学问题5 |4x+2|+6=56
,但我不断得到
"绝对值不能在复杂域中反转"
符号中的错误。
有没有办法解决这个问题?
必须指定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}