微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。