scipy Routines¶
Fitter¶
lsqfit uses routines from the open-source scipy Python module
provided it is installed. These routines are used in place of GSL routines
if the latter are not installed. There is one fitter available for use by
lsqfit.nonlinear_fit.
-
class
lsqfit.scipy_least_squares(x0, n, f, tol=(1e-08, 1e-08, 1e-08), maxit=1000, **extra_args)¶ scipyfitter for nonlinear least-squares multidimensional fits.scipy_least_squaresis a function-class whose constructor does a least-squares fit by minimizingsum_i f_i(x)**2as a function of vectorx.scipy_least_squaresis a wrapper for thescipy.optimize.least_squares.- Parameters
x0 (array of floats) – Starting point for minimization.
n (positive int) – Length of vector returned by the fit function
f(x).f (array-valued function) –
sum_i f_i(x)**2is minimized by varying parametersx. The parameters are a 1-dnumpyarray of either numbers orgvar.GVars.tol (float or tuple) –
Assigning
tol=(xtol, gtol, ftol)causes the fit to stop searching for a minimum when any ofxtol >=relative change in parameters between iterationsgtol >=relative size of gradient ofchi**2ftol >=relative change inchi**2between iterationsis statisfied. See the
scipy.optimize.least_squaresdocumentation detailed definitions of the stopping conditions. Typically one setsxtol=1/10**dwheredis the number of digits of precision desired in the result, whilegtol<<1andftol<<1. Settingtol=epswhereepsis a number is equivalent to settingtol=(eps,1e-10,1e-10). Settingtol=(eps1,eps2)is equivlent to settingtol=(eps1,eps2,1e-10). Default istol=1e-5.method (str or None) –
Minimization algorithm. Options include:
'trf'Trusted Region Reflective algorithm (default). Best choice with bounded parameters.
'dogbox'dogleg algorithm adapted for bounded parameters.
'lm'Levenberg-Marquardt algorithm as implemented in MINPACK. Best for smaller problems. Does not work with bounded parameters (bounds are ignored).
Setting
method=Noneimplies the default'trf'.maxit (int) – Maximum number of function evaluations in search for minimum; default is 1000.
Other arguments include:
x_jac,loss,tr_solver,f_scale,tr_options,bounds. See the documentation forscipy.optimize.least_squaresfor information about these and other options.lsqfit.scipy_least_squaresobjects have the following attributes.-
x¶ Location of the most recently computed (best) fit point.
- Type
array
-
cov¶ Covariance matrix at the minimum point.
- Type
array
-
description¶ Short description of internal fitter settings.
- Type
str
-
f¶ Fit function value
f(x)at the minimum in the most recent fit.- Type
array
-
J¶ Gradient
J_ij = df_i/dx[j]for most recent fit.- Type
array
-
nit¶ Number of function evaluations used in last fit to find the minimum.
- Type
int
-
stopping_criterion¶ Criterion used to stop fit:
didn’t converge
xtol >=relative change in parameters between iterationsgtol >=relative size of gradient ofchi**2ftol >=relative change inchi**2between iterations
- Type
int
-
error¶ Noneif fit successful; an error message otherwise.- Type
str or None
-
results¶ Results returned by
scipy.optimize.least_squares.- Type
dict
Minimizer¶
The lsqfit.empbayes_fit() uses a minimizer from the scipy
module to minimize logGBF.
-
class
lsqfit.scipy_multiminex(x0, f, tol=1e-4, maxit=1000, step=1, alg='nmsimplex2', analyzer=None)¶ scipyminimizer for multidimensional functions.scipy_multiminexis a function-class whose constructor minimizes a multidimensional functionf(x)by varying vectorx. This routine does not use user-supplied information about the gradient off(x).scipy_multiminexis a wrapper for theminimizescipyfunction. It gives access to only part of that function.- Parameters
x0 (array of floats) – Starting point for minimization search.
f – Function
f(x)to be minimized by varying vectorx.tol (float) – Minimization stops when
xhas converged to with tolerancetol; default is1e-4.maxit (positive int) – Maximum number of iterations in search for minimum; default is 1000.
analyzer (function) – Optional function of the current
x. This can be used to inspect intermediate steps in the minimization, if needed.
lsqfit.scipy_multiminexobjects have the following attributes.-
x¶ Location of the minimum.
- Type
array
-
f¶ Value of function
f(x)at the minimum.- Type
float
-
nit¶ Number of iterations required to find the minimum.
- Type
int
-
error¶ Noneif fit successful; an error message otherwise.- Type
Noe or str