如何在 sympy 中求解这个涉及绝对项的方程式?
How to solve this equation involving an absolute term in sympy?
from sympy import *
x = symbols('x', real=True)
solve(Abs(2 + 36/(x - 2)) - 6)
我已经设置了real=True
,但它仍然显示solving Abs(2 + 36/(x - 2)) when the argument is not real or imaginary.
不过,解决Abs(36/(x - 2)) - 6
就可以了。
有什么问题?
有时,处理 Abs
会带来“惊喜”时刻,就像您所经历的那样。对于您的特定情况,使其起作用的一种可能方法是操纵表达式。特别是,使 abs(x / y) = abs(x) / abs(y)
:
from sympy import *
x = symbols('x', real=True)
expr = Abs(2 + 36/(x - 2)) - 6
expr = expr.simplify()
def repl_Abs(t):
num, den = fraction(t)
return Abs(num) / Abs(den)
solve(expr.replace(Abs, repl_Abs))
# out: [-5/2, 11]
from sympy import *
x = symbols('x', real=True)
solve(Abs(2 + 36/(x - 2)) - 6)
我已经设置了real=True
,但它仍然显示solving Abs(2 + 36/(x - 2)) when the argument is not real or imaginary.
不过,解决Abs(36/(x - 2)) - 6
就可以了。
有什么问题?
有时,处理 Abs
会带来“惊喜”时刻,就像您所经历的那样。对于您的特定情况,使其起作用的一种可能方法是操纵表达式。特别是,使 abs(x / y) = abs(x) / abs(y)
:
from sympy import *
x = symbols('x', real=True)
expr = Abs(2 + 36/(x - 2)) - 6
expr = expr.simplify()
def repl_Abs(t):
num, den = fraction(t)
return Abs(num) / Abs(den)
solve(expr.replace(Abs, repl_Abs))
# out: [-5/2, 11]