Sympy:基本表达式的简化失败

时间:2017-10-04 11:56:35

标签: python-2.7 sympy

我不明白为什么在简化时没有删除表达式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。

1 个答案:

答案 0 :(得分:0)

simplify通常只能做有限的魔法。在这种情况下可能会更多,但如果你想要,你需要提出一个功能请求。在任何情况下,最好告诉SymPy您想要进行哪些具体的修改。

在这里,以下内容可能会让您满意:

print(expr.factor()) # (2*a - b)*(b - c)