Parameter(name='line_off', value=0.0)] sigma = 0.021 # estimate of data error (for all data points) myfit = Minimizer(residual, pfit, fcn_args=(x,), fcn_kws={'sigma':sigma, 'data':data}, scale_covar=True) myfit.prepare_fit() init = residual(myfit.params, x) if HASPYLAB: pylab.plot(x, init, 'b--') myfit.leastsq() print(' Nfev = ', myfit.nfev) print( myfit.chisqr, myfit.redchi, myfit.nfree) report_errors(myfit.params) fit = residual(myfit.params, x) if HASPYLAB: pylab.plot(x, fit, 'k-') pylab.show()
xmin = 0. xmax = 250.0 random.seed(0) noise = random.normal(scale=2.80, size=n) x = linspace(xmin, xmax, n) data = residual(p_true, x) + noise fit_params = Parameters() fit_params.add('amp', value=13.0, max=20, min=0.0) fit_params.add('period', value=2, max=10) fit_params.add('shift', value=0.0, max=pi/2., min=-pi/2.) fit_params.add('decay', value=0.02, max=0.10, min=0.00) out = minimize(residual, fit_params, args=(x,), kws={'data':data}) fit = residual(fit_params, x) print '# N_func_evals, N_free = ', out.nfev, out.nfree print '# chi-square, reduced chi-square = % .7g, % .7g' % (out.chisqr, out.redchi) report_errors(fit_params, show_correl=True, modelpars=p_true) print 'Raw (unordered, unscaled) Covariance Matrix:' print out.covar if HASPYLAB: pylab.plot(x, data, 'ro') pylab.plot(x, fit, 'b') pylab.show()