2017-10-04 9 views
1

簡略化の間に式a * (... + 1) - aが削除されない理由を理解できません。以下の例では、バグを示しています。私はSympy:基本式の簡略化が失敗する

expr = a * (b - c + 1) - a 

で式を変更してsimplify()を呼び出した場合、他の側では

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) 

を、私は期待した結果a * (b - c)を取得します。

sympyバージョンは1.1rc1です。

答えて

0

simplifyは、通常、限られた量の魔法を行うことができます。これは間違いなくもっと多くの場合がありますが、それが必要な場合は、機能要求を行う必要があります。どのような場合でも、SymPyにどのような変更を加えたいかを伝える方が良いでしょう。ここで

、以下はおそらくあなたを満足させる:

print(expr.factor()) # (2*a - b)*(b - c) 
関連する問題