Python / Scipy - implementing optimize.curve_fit 's sigma into optimize.leastsq
I just found that it is possible to combine the best of both worlds, and to have the full leastsq() output also from curve_fit(), using the option full_output:
popt, pcov, infodict, errmsg, ier = curve_fit(func, xdata, ydata, sigma = SD, full_output = True)
This gives me infodict that I can use to calculate all my Goodness of Fit stuff, and lets me use curve_fit's sigma option at the same time...
Assuming your data are in arrays x
, y
with yerr
, and the model is f(p, x)
, just define the error function to be minimized as (y-f(p,x))/yerr
.