为什么sympy不能计算像(6x*x)**(1.5)这样的分数幂公式?

2024-04-26 20:20:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我用sympy计算了一些积分,如下所示。在

#Calculate Calculus
import sympy
x = sympy.Symbol('x')
f = (6-x*x)**(1.5)
f.integrate()

这将失败并抛出如下异常:

^{pr2}$

如果我只用一个整数作为幂数就可以了

f = (6-x*x)**(2)
#result: x**5/5 - 4*x**3 + 36*x

Tags: import整数resultsymbolintegratecalculatesympycalculus
2条回答

前面的答案是正确的,我只是在这里公布我的最终结果

import sympy
frac = sympy.Rational
x = sympy.symbols('x')
f1 = (x+3)/(6-x**2)**(frac('1.5'))
f1.integrate()

我的猜测是1.5表达式被视为浮点,这是不精确的。你需要一个符号化的(精确的)表示。(我想,如果你在计算积分之后,浮点可能是可以的,因为支持计算积分的数学库通常会使用积分近似方法来计算积分。)如果你需要计算任意有理指数,可以考虑使用sympy.RationalHere'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() 

相关问题 更多 >