【发布时间】:2022-11-27 15:01:34
【问题描述】:
我想拟合一些天文数据(主要由数据组成),在一条线上使用高斯函数。我在 x 轴上取了高斯+线函数的残差,所以我只需要拟合高斯。这是我定义它的方式:
def gaussian_only(x, amp, mean, std):
curve = amp*np.exp(-(x-mean)**2 /( 2*std**2 ) ) * np.sqrt(std)/np.sqrt(std) * np.sqrt(amp)/np.sqrt(amp) * np.sqrt(mean)/np.sqrt(mean)
return curve
当曲线拟合(在另一个函数中定义)返回标准差、均值和振幅的负值时,我将这些值乘以并除以平方根。所以这种迫使它只返回正值。 这是功能:
def gaussian_only_fit(arr, curve_residual, initial_guess):
amp, mean, std = initial_guess
fit = scipy.optimize.curve_fit(gaussian_only, arr[0], curve_residual, [amp,mean,std])
return fit
我的所作所为有什么“错误”或“不好”的地方吗?
【问题讨论】:
标签: python scipy curve-fitting