Sympy Piecewise 和 refine
Sympy Piecewise and refine
我尝试使用 refine
简化这个 Piecewise
表达式,但没有成功。我使用 sympy 版本 1.8.
import sympy as sp
x,y = sp.symbols('x,y', real=True, positive=True)
expr = sp.Piecewise((1, x>=y),(0, True))
expr变量包含
⎧1 for x ≥ y
⎨
⎩0 otherwise
现在我尝试获得 1 假设 x>y
sp.refine(expr, sp.Q.gt(x,y))
但我得到了相同的表达式
⎧1 for x ≥ y
⎨
⎩0 otherwise
有什么想法可以强制进行这种简化吗?
感谢您的帮助
如果您给 expr
一个满足要求的 x
值,它将评估:
>>> eps = Symbol('eps', positive=True)
>>> expr.subs(x, y + eps).simplify()
1
我尝试使用 refine
简化这个 Piecewise
表达式,但没有成功。我使用 sympy 版本 1.8.
import sympy as sp
x,y = sp.symbols('x,y', real=True, positive=True)
expr = sp.Piecewise((1, x>=y),(0, True))
expr变量包含
⎧1 for x ≥ y
⎨
⎩0 otherwise
现在我尝试获得 1 假设 x>y
sp.refine(expr, sp.Q.gt(x,y))
但我得到了相同的表达式
⎧1 for x ≥ y
⎨
⎩0 otherwise
有什么想法可以强制进行这种简化吗?
感谢您的帮助
如果您给 expr
一个满足要求的 x
值,它将评估:
>>> eps = Symbol('eps', positive=True)
>>> expr.subs(x, y + eps).simplify()
1