Pyt*_*ner 5 python sympy mathematical-expressions
我用sympy来计算一些积分,如下所示.
#Calculate Calculus
import sympy
x = sympy.Symbol('x')
f = (6-x*x)**(1.5)
f.integrate()
Run Code Online (Sandbox Code Playgroud)
这将失败,并抛出例外:
ValueError: gamma function pole
Run Code Online (Sandbox Code Playgroud)
如果我只使用整数作为功率num,它工作正常
f = (6-x*x)**(2)
#result: x**5/5 - 4*x**3 + 36*x
Run Code Online (Sandbox Code Playgroud)
我的猜测是1.5表达式被视为浮点,这是不精确的.您需要一个符号(精确)表示.(我猜你是否在计算积分之后浮点可能没问题,一般来说,因为支持计算积分的数学库通常会使用积分近似方法来计算积分.)如果你需要做任意理性指数,考虑使用sympy.Rational. 这是 StackOverflow的相关答案,似乎支持这一点.我认为文档sympy.Rational就在这里.您可以在此处尝试此修改后的代码:
#Calculate Calculus
import sympy
frac = sympy.Rational
x = sympy.Symbol('x')
f = (6-x*x)**(frac('1.5'))
f.integrate()
Run Code Online (Sandbox Code Playgroud)