12
我正在用Python編寫一個程序,它可以將Gaussian和Lorentzian形狀適用於某些給定的共振數據。我最初開始使用scipy.optimize.leastsq
,但在難以從協方差矩陣中檢索優化參數中的誤差之後,開始使用optimize.curve_fit
。使用scipy.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
?
非常感謝!完美工作 – 2012-04-20 17:26:45