我有兴趣优化一个函数,它是两个函数的卷积。主要的问题是,我得到的函数是完全的比例函数,我不理解np.卷积实际上做了什么。
我写了一个小脚本,将两个高斯卷积起来,但得到的高斯比输入函数大得多:
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
import numpy as np
# https://stackoverflow.com/questions/18088918/combining-two-gaussians-into-another-guassian
def gauss(x, p): # p[0]==mean, p[1]==stdev, p[2]==heightg, p[3]==baseline
a = p[2]
mu = p[0]
sig = p[1]
#base = p[3]
return a * np.exp(-1.0 * ((x - mu)**2.0) / (2.0 * sig**2.0)) #+ base
p0 = [0, 0.3, 1] # Inital guess is a normal distribution
p02 = [0, 0.2, 0.5]
xp = np.linspace(-4, 4, 2000)
convolved = np.convolve(gauss(xp, p0),gauss(xp, p02), mode="same")
fig = plt.figure()
plt.subplot(2, 1, 1)
plt.plot(xp, gauss(xp, p0), lw=3, al