简化删除 Sympy 中的关系项?

Simplify removes relational term in Sympy?

我正在尝试使用 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

这是我不期望的 - 我应该期望这种行为吗?如果是,有什么方法可以防止 simplify 删除关系项?

谢谢。

不能将逻辑和算术运算组合起来进行此类运算。

假设:

from sympy import *
x, y, z = symbols('x y z')
f = symbols('f', cls=Function)

算术运算:

xeqy = Piecewise((1,Eq(x,y)),(0,True)) # {1 for x = y, 0 otherwise}
f = z * xeqy                           # {z for x = y, 0 otherwise}
simplify(f)

逻辑运算:

f = And(z,Eq(x,y))                     # z ∧ (x = y)
simplify(f)