4
我正在寻找一种方法来使用numpy trapz或从scipy栈中的类似函数对采样数据执行双重集成。与函数和采样数据的双重积分Python
特别地,我想计算功能:
其中f(x',y')
是采样阵列和F(x, y)
是相同的尺寸的阵列。
这是我的尝试,这会产生不正确的结果:
def integrate_2D(f, x, y):
def integral(f, x, y, x0, y0):
F_i = np.trapz(np.trapz(np.arcsinh(1/np.sqrt((x-x0+0.01)**2+(y-y0+0.01)**2)) * f, x), y)
return F_i
sigma = 1.0
F = [[integral(f, x, y, x0, y0) for x0 in x] for y0 in y]
return F
xlin = np.linspace(0, 10, 100)
ylin = np.linspace(0, 10, 100)
X,Y = np.meshgrid(xlin, ylin)
f = 1.0 * np.exp(-((X - 8.)**2 + (Y - 8)**2)/(8.0))
f += 0.5 * np.exp(-((X - 1)**2 + (Y - 9)**2)/(10.0))
F = integrate_2D(f, xlin, ylin)
输出数组似乎朝着对角线造成电网被定向,同时更应返回一个数组,看起来像模糊输入数组。
是的!而已。我希望我可以添加一些图像,以显示它的样子! – Gregzor