矩形上两个变量的二次型指数的数值积分

计算科学 一体化
2021-12-07 03:38:43

f(x,y)=exp(12ax212cy2+bxy)

在哪里a,b,c0. 我想以数字方式积分:

x0x1dxy0y1dyf(x,y)xnym

在哪里<x0<x1<,<y0<y1<, 和n,m{0,1,2}.

一种天真的方法在达到峰值时会出现问题f(x,y)远离积分矩形。

有没有我可以使用的方法?

1个回答

scipy.integrate我刚刚尝试了双积分( )附带的积分算法,dblquad它似乎对您的问题很有效

from __future__ import division, print_function 
import numpy as np
from scipy.integrate import dblquad

a = 2
b = 2
c = 1
fun = lambda x, y: np.exp(-a/2*x**2 - b/2*y**2 + c*x*y)*x**3
inte2 = dblquad(fun, 1, 4, lambda y: -5, lambda y: 8)
print(inte2)

并返回

(0.5814009878561697, 8.012117719083942e-09)

第一个值是积分,第二个是对积分误差的估计。