scipy 卷积结果取决于底层 x 的离散化

问题描述

我在理解 scipy 的卷积如何工作时遇到了一些问题。只是为了尝试事情是如何工作的,我正在将高斯曲线与其自身进行卷积。对卷积结果进行积分应该得到 1,但我得到的结果取决于在 x 的离散化中选择的点数。 我不明白为什么会这样。稍后我想在其他情况下使用卷积,因为这种情况不会发生,所以我需要了解如何避免这个问题。

import numpy as np
import scipy as sc
import scipy.signal
import matplotlib.pyplot as plt

def Gaussian(x,sigma):
    return 1/(sigma*(2*np.pi)**0.5)*np.exp(-0.5*(x/sigma)**2)

x = np.linspace(-1,1,1000)
sigma = 0.01
gauss_integrated = np.trapz(Gaussian(x,sigma),x)
convolution = sc.signal.convolve(Gaussian(x,Gaussian(x,mode='same')
convolution_integrated = np.trapz(convolution,x)
print(gauss_integrated)
print(convolution_integrated)

plt.plot(x,sigma))
plt.plot(x,convolution)
plt.show()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)