sympy 集成的错误结果

Wrong result of sympy integration

这个表达式 returns 为零,但它不应该。
P = x^6-14x^4+49x^2-36
整合(1/P,(x,1/3,1/2))
我也用expand on expression,没有任何结果。 我做错了什么还是这是一个错误?

这个有效:

from sympy import *

x = symbols('x')
P = x**6-14*x**4+49*x**2-36
I = integrate(1/expand(P), (x, S.One/3, S.One/2))

我得到结果:

In [5]: I
Out[5]: -3*log(3)/80 - log(7)/48 - log(2)/48 - log(8)/240 + log(10)/240 + log(4)/48 + 3*log(5)/80

In [6]: I.n()
Out[6]: -0.00601350282195297

或者,您可以 运行 命令 isympy -i,这将 运行 一个转换所有 Python 整数的 SymPy 提示符在 SymPy 解析器评估输入之前转换为 SymPy 整数。

Python整数除法Python2和Python3不同,第一个returns是整数,第二个returns是浮点数.这两个版本都不同于 SymPy 整数除法,它是 returns 分数。要使用 SymPy 除法,您需要确保被除数和除数中至少有一个是 SymPy 对象。