有效计算依赖于 2D 卷积的 1D 函数

计算科学 Python 积分方程 卷积
2021-12-20 14:33:58

高斯函数(即)和X=[0,1]hxX,h(x)=ex2pL2(X2)

我想用数字计算以下函数:

xX,f(x)=X2p(s1,s2)h(s1x)h(s2x)d(s1,s2)

这意味着我有一个 X 的离散网格(的网格)上评估值的矩阵,我想在网格的每个点我已经做了:XpX2f

  • 积分的数值离散化
  • 计算矩阵的外积(在网格上评估)之间的 2D 卷积。确实在某种意义上(这只是形式计算,请原谅这种恐怖!)所以取计算的 2D 卷积的对角线给了我在网格上评估phf(x)=(phh)(x,x)f

我的问题如下:您是否知道要执行的操作不是为了计算整个卷积矩阵而只计算它的对角线?你有其他想法来计算这个函数吗?

我指定我在 Python 上编码,并且我希望能够使用已经实现的库,所以如果你有使用 SciPy 函数的想法,那就太好了!

1个回答

我没有找到合适的对角线公式。但是做列的卷积然后行的卷积对我来说是足够的计算时间增益

h_vec = gaussienne(X)
convol_row = scipy.signal.convolve(p, h_vec, 'same').T
adj = np.diag(scipy.signal.convolve(convol_row, h_vec, 'same'))