使用sympy和Mathematica对修改的贝塞尔函数进行符号积分

时间:2016-09-28 16:53:51

标签: python wolfram-mathematica sympy symbolic-math

我想用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如何与Mathematica进行整合。

0 个答案:

没有答案