问题描述
我在理解 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 (将#修改为@)