使用Sympy实现Python中的符号集成

使用Sympy实现Python中的符号集成,python,math,symbols,sympy,Python,Math,Symbols,Sympy,我想使用Symphy库在python中集成exp(-(x^2+y^2))。 我可以找到exp(-(x^2))的积分 但是当我想尝试积分exp(-(x^2+y^2)) 没有输出,python不能接受积分 symphy并不总是能识别每一种形式,因此有时您必须给它一些帮助: >>> import sympy >>> alpha1, r1_x, r1_y = sympy.var("alpha1 r1_x r1_y") >>> B1 = sympy.e

我想使用Symphy库在python中集成exp(-(x^2+y^2))。 我可以找到exp(-(x^2))的积分

但是当我想尝试积分exp(-(x^2+y^2))


没有输出,python不能接受积分

symphy
并不总是能识别每一种形式,因此有时您必须给它一些帮助:

>>> import sympy
>>> alpha1, r1_x, r1_y = sympy.var("alpha1 r1_x r1_y")
>>> B1 = sympy.exp(-alpha1 * (r1_x**2 + r1_y**2))
>>> B1.integrate(r1_x)
Integral(exp(-alpha1*(r1_x**2 + r1_y**2)), r1_x)
>>> B1.expand(alpha1)
exp(-alpha1*r1_x**2)*exp(-alpha1*r1_y**2)
>>> B1.expand(alpha1).integrate(r1_x)
sqrt(pi)*exp(-alpha1*r1_y**2)*erf(sqrt(alpha1)*r1_x)/(2*sqrt(alpha1))
(我是Symphy的首席开发者)

DSM是正确的,您可以通过调用expand来实现这一点,并且没有通用的方法来实现这一点(因为在一般情况下,积分没有闭合形式)


我只是想指出,如果Syry不能做一个有闭形式的积分,我们认为这是一个bug,你可以自由地报告它。

一般来说,这个积分没有封闭形式的解。谢谢,有没有一般的方法?既然这里的方程很简单,我该怎么处理微妙的方程呢;并做好实验的准备。很抱歉给你带来坏消息
B1.expand(alpha1)
应该是
B1.expand()
。expand的参数只是提示。实际上我试着用python、matlab和mathematica进行求解,我感觉这些软件有不同的算法来计算积分。无论如何,我更喜欢使用Python,因为我想从我的C++程序中调用它。
>>> B1 = sympy.exp(-alpha1 * (r1_x**2 + r1_y**2))
>>> p = integrate(B1,r1_x)
>>> p
Integral(exp(-alpha1*(r1_x**2 + r1_y**2)), r1_x)
>>> import sympy
>>> alpha1, r1_x, r1_y = sympy.var("alpha1 r1_x r1_y")
>>> B1 = sympy.exp(-alpha1 * (r1_x**2 + r1_y**2))
>>> B1.integrate(r1_x)
Integral(exp(-alpha1*(r1_x**2 + r1_y**2)), r1_x)
>>> B1.expand(alpha1)
exp(-alpha1*r1_x**2)*exp(-alpha1*r1_y**2)
>>> B1.expand(alpha1).integrate(r1_x)
sqrt(pi)*exp(-alpha1*r1_y**2)*erf(sqrt(alpha1)*r1_x)/(2*sqrt(alpha1))