我正在使用Python编写一个程序,用于将高斯和洛伦兹形状拟合到一些给定的共振数据上。起初我使用了scipy.optimize.leastsq
,但在从协方差矩阵中检索优化参数的误差时遇到了困难,之后改用了optimize.curve_fit
。
我已经定义了一个函数来拟合高斯和洛伦兹的总和:
def mix(x,*p):
ng = numg
p1 = p[:3*ng]
p2 = p[3*ng:]
a = sumarray(gaussian(x,p1),lorentzian(x,p2))
return a
在这里,p
是拟合参数的初始猜测数组。以下是使用curve_fit
调用的实例:
leastsq,covar = opt.curve_fit(mix,energy,intensity,inputtot)
目前,numg
(高斯形状的数量)是一个全局变量。是否有任何方法可以将其作为额外参数纳入到curve_fit
中,就像使用leastsq
一样?