Python scipy卷积结果取决于基础x的离散化

Python scipy卷积结果取决于基础x的离散化,python,scipy,convolution,Python,Scipy,Convolution,我在理解scipy的卷积如何工作时遇到了一些问题。只是为了尝试如何工作,我把一条高斯曲线和它自己卷积起来。对卷积的结果进行积分应该得到1,但我得到的结果取决于我在离散x时选择的点数。 我不明白为什么会这样。稍后,我想在其他情况下使用卷积,在这些情况下,这是至关重要的,因此我需要了解如何避免这个问题 import numpy as np import scipy as sc import scipy.signal import matplotlib.pyplot as plt def Gauss

我在理解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, sigma), Gaussian(x, sigma), mode='same')
convolution_integrated = np.trapz(convolution, x)
print(gauss_integrated)
print(convolution_integrated)

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