我最近開始使用Sympy,並從一開始就表現出奇怪的從我的觀點。Sympy簡化邏輯
考慮兩個多項式,fx和tn_shifted的一個變量。我從另一箇中減去一個來得到多項式p2。然後我執行它的簡化,並得到一個完全不同的表達式,如下所示。
import sympy as spy
from sympy import Symbol
x = Symbol('x')
a, b = 1, 3
n = 3
tn = lambda x: x**3 - 3*x
fx = spy.simplify(x**3 - 2*x**2 + x + 1)
tn_shifted = (b - a)**n/(2**(2*n - 1)) * tn((2*x - (b + a))/(b - a))
tn_shifted = spy.simplify(tn_shifted)
p2_ethalon = fx - tn_shifted
print(fx - p2_ethalon - tn_shifted)
p2_simplified = spy.simplify(fx - tn_shifted)
print(fx - p2_simplified - tn_shifted)
p2_expanded = spy.expand(fx - tn_shifted)
print(fx - p2_expanded - tn_shifted)
print(p2_ethalon - p2_simplified)
這裏是一個輸出:
0
0.25*x**3 - 1.5*x**2 + 3.0*x - 0.25*(x - 2)**3 - 2.0
0.25*x**3 - 1.5*x**2 + 3.0*x - 0.25*(x - 2)**3 - 2.0
0.25*x**3 - 1.5*x**2 + 3.0*x - 0.25*(x - 2)**3 - 2.0
Sympy帶有蟒蛇爲Python 3.5下運行OS X Yosemite 這裏是pip show sympy
信息
Name: sympy
Version: 0.7.6.1
Summary: Computer algebra system (CAS) in Python
Home-page: http://sympy.org
Author: SymPy development team
Author-email: [email protected]
License: BSD
Location: /Users/cnst/anaconda/lib/python3.5/site-packages
那麼,有沒有錯誤或Sympy在簡化表達式時有一些不平凡的邏輯嗎?