2017-02-13 30 views
0

對於上下文:我在python 2.7中使用sympy。我的項目的一部分涉及簡化的數學表達式,但我用sympy時遇到了一個問題:sympy中的語句返回false時,它不應該是

from sympy import * 
x = symbols ("x") 
(-x*exp(-x) + exp(-x)) == (1-x)*(exp(-x)) 

上面的代碼返回我

False 

兩個我自己的數學和WolframAlpha的並不同意這種看法 - 做我輸入了錯誤的東西,或者這是我還沒意識到的sympy的一些缺點?

回答

1

從文檔頁面: http://docs.sympy.org/dev/gotchas.html

如果你想測試象徵性的平等,一個方法是從其他減去一個表達,並通過功能運行likeexpand(),簡化了(),和如果你想創建一個象徵性的平等trigsimp(),看看公式降低爲0。

0

,使用Eq

In [1]: Eq((-x*exp(-x) + exp(-x)), (1-x)*(exp(-x))) 
Out[1]: 
    -x -x    -x 
- x⋅ℯ + ℯ = (-x + 1)⋅ℯ 

==運算符必須立即返回一個布爾表達式,這是一個Python標準。因此,==運算符與表達式的粗魯結構匹配,而不執行任何數學變換(除了在表達式構造中發生的以前的次要自動變換之外)。

相關問題