我想用 sympy 解决一个我知道Mathematica可以解决的定积分 . 在Mathematica中,以下行

Integrate[z^2 (BesselI[0, z^2] - BesselI[1, z^2]) Exp[-z^2], {z, 0, x}]

产量

1/3 x^3 HypergeometricPFQ[{1/2,3/2},{1,5/2},-2 x^2]-1/10 x^5 HypergeometricPFQ[{3/2,5/2},{3,7/2},-2 x^2]

它更喜欢使用 pythonsympy ,我尝试使用以下代码

import sympy;
x, z = sympy.var('x z');
sympy.integrate( z**2*(sympy.besseli(0,z**2)-sympy.besseli(1,z**2))*sympy.exp(-z**2) ,(z,0,x));

不幸的是,计算只是挂起 . 我等了约30-40分钟后放弃了 . 在Mathematica中,它只需不到一秒钟 . 如果我改变了被积函数,那么我可以得到 sympy 来解决它 . 如

sympy.integrate( z**2*sympy.besseli(0,z**2) ,(z,0,x));

产量

x**3*gamma(3/4)*hyper((3/4,), (1, 7/4), -x**4/4)/(4*gamma(7/4))

我是Mathematica的长期用户,对如何解决棘手的积分非常了解 . 作为一个新的 sympy 用户,我缺乏这种经验 .

  • 我可以添加任何标志吗?

  • sympy 还有其他方法可以解决这个问题吗?

  • 如果使用 sympy 无法获得此积分,有没有办法了解sympy的局限性?比如 sympy 如何与Mathematica进行整合 .