我用sympy来计算一些积分,如下所示。
#Calculate Calculus
import sympy
x = sympy.Symbol('x')
f = (6-x*x)**(1.5)
f.integrate()
这将失败并抛出例如:
ValueError: gamma function pole
如果我只使用整数作为幂数
,它可以正常工作f = (6-x*x)**(2)
#result: x**5/5 - 4*x**3 + 36*x
答案 0 :(得分:7)
我的猜测是1.5
表达式被视为浮点,这是不精确的。您需要一个符号(精确)表示。 (我猜你是否在计算积分之后浮点可能没问题,一般来说,因为支持计算积分的数学库通常会使用积分近似方法来计算积分。)如果你需要做任意的理性指数,考虑使用sympy.Rational
。 Here's StackOverflow上的相关答案似乎支持这一点。我认为sympy.Rational
的文档是here。
您可以尝试修改后的代码here:
#Calculate Calculus
import sympy
frac = sympy.Rational
x = sympy.Symbol('x')
f = (6-x*x)**(frac('1.5'))
f.integrate()
答案 1 :(得分:2)
之前的答案是对的,我只是在这里发布我的最终结果
import sympy
frac = sympy.Rational
x = sympy.symbols('x')
f1 = (x+3)/(6-x**2)**(frac('1.5'))
f1.integrate()