Передача дополнительных аргументов с помощью scipy.optimize.curve_fit?

Я пишу программу на 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?

15
задан Shep 20 April 2012 в 17:56
поделиться