二维高斯函数的部分积分

时间:2015-07-27 22:02:27

标签: python integration sympy

我想对四个变量(xyalphabeta)的二维高斯函数进行以下部分积分,尊重仅限xy,如下所示。最后,我希望答案只能是alphabeta的函数。

enter image description here

我在python中编写了以下代码来执行上面提到的积分。

from sympy import Symbol
from sympy import integrate
from math import e
alpha = Symbol('alpha')
beta = Symbol('beta')
x = Symbol('x')
y = Symbol('y')
n = 2
value = integrate( e**( -(x - alpha)**n - (y - beta)**n  ), (x, -1, 1), (y, -1, 1) )

但是我收到以下错误:

sympy.polys.polyerrors.DomainError: there is no ring associated with RR

上面提到的积分函数适用于n = 1。但是它会因n> 1而崩溃。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

欢迎来到SO!

有趣的是,当您将alphabeta替换为整数边界时,它会起作用。尝试:

from IPython.display import display
import sympy as sy

sy.init_printing()  # LaTeX like pretty printing forIPython

alpha, beta, x, y = sy.symbols("alpha, beta, x, y", real=True)

f = sy.exp(-x**2 - y**2)  # sy.exp() is better than the numeric constant
val = sy.integrate(f,  (x, -1+alpha, 1+alpha), (y, -1+beta, 1+beta))
display(val)