我不明白为什么在简化时没有删除表达式a * (... + 1) - a
。以下示例显示了错误:
import sympy as sy
a,b,c = sy.symbols('a b c')
expr = a * (b - c + 1) - a + (b - c) * (a - b)
print expr # printed: a*(b - c + 1) - a + (a - b)*(b - c)
print expr.simplify() # printed: a*(b - c + 1) - a + (a - b)*(b - c)
另一方面,如果我改变表达式
expr = a * (b - c + 1) - a
并致电simplify()
,我将获得预期结果a * (b - c)
。
Sympy版本是1.1rc1。
答案 0 :(得分:0)
simplify
通常只能做有限的魔法。在这种情况下可能会更多,但如果你想要,你需要提出一个功能请求。在任何情况下,最好告诉SymPy您想要进行哪些具体的修改。
在这里,以下内容可能会让您满意:
print(expr.factor()) # (2*a - b)*(b - c)