如何解决符号中的"Absolute values cannot be inverted in the complex domain"错误



>我有以下等式:

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}

相关内容

最新更新