【发布时间】:2015-04-16 12:04:59
【问题描述】:
我正在尝试使用 sympy 简化表达式,但关系术语似乎消失了。一个玩具示例如下:
import sympy
from sympy import *
x = Symbol('x')
y = Symbol('y')
z = Symbol('z')
如果我跑:
z * Eq(x, y)
那么输出是:
z*(x == y)
但如果我尝试使用以下方法简化此操作:
simplify(z * Eq(x, y))
那么输出是:
z
我没想到 - 我应该期待这种行为吗?如果是,有什么方法可以防止简化删除关系术语?
谢谢。
【问题讨论】:
-
你用这个等式是什么意思?
-
也许您正在尝试逻辑操作,例如:
And(z,Eq(x,y)),在这种情况下simplify可以完美运行。 -
我希望 sympy 将 Eq(x,y) 解释为 1 或 0,具体取决于它是真还是假
-
那么你应该使用:
f = Piecewise((1,Eq(x,y)),(0,True))然后:simplify(z*f) -
当你确认这是你想要的,我会把它作为答案发布