符号集成 returns 垃圾

Symbolic Integration returns garbage

我有以下积分,这是我通过其他来源计算出来的,以匹配给定的解决方案。然而,SymPy returns 的东西似乎是垃圾。为什么会这样?我是否没有明确建立 Mathematica 和 Integral Calculator 假设的东西?

from sympy import symbols, integrate, oo
x, z = symbols('x,z')
expr = 1/((x**2 + z**2)**(3/2))
integrate(expr, (x,-oo,oo))

给出以下结果:

我知道结果是:2/(z^2)

由于我不知道如何(或者甚至可能)在这里输入 LaTeX,下面是尝试的操作和期望的结果

你有 **(3 / 2),这是 float。这是 SymPy 一直在努力解决的问题,也是 Gotchas and Pitfalls. I found this from the GitHub page integrate((x-t)**(-1/2)*t,(t,0,x)) raises ValueError 下提到的问题之一。

您需要确保您的指数是有理数。有几种方法可以做到这一点。下面,我们使用 S (sympify):

from sympy import symbols, integrate, oo, S
x, z = symbols('x,z')
expr = 1/((x**2 + z**2)**(S(3)/2))
integrate(expr, (x,-oo,oo))

这给出了所需的输出。