SciPy

root(method=’lm’)

scipy.optimize.root(fun, x0, args=(), method='lm', jac=None, tol=None, callback=None, options={'col_deriv': 0, 'diag': None, 'factor': 100, 'gtol': 0.0, 'eps': 0.0, 'func': None, 'maxiter': 0, 'xtol': 1.49012e-08, 'ftol': 1.49012e-08})

Solve for least squares with Levenberg-Marquardt

See also

For documentation for the rest of the parameters, see scipy.optimize.root

Options:

col_deriv : bool

non-zero to specify that the Jacobian function computes derivatives down the columns (faster, because there is no transpose operation).

ftol : float

Relative error desired in the sum of squares.

xtol : float

Relative error desired in the approximate solution.

gtol : float

Orthogonality desired between the function vector and the columns of the Jacobian.

maxiter : int

The maximum number of calls to the function. If zero, then 100*(N+1) is the maximum where N is the number of elements in x0.

epsfcn : float

A suitable step length for the forward-difference approximation of the Jacobian (for Dfun=None). If epsfcn is less than the machine precision, it is assumed that the relative errors in the functions are of the order of the machine precision.

factor : float

A parameter determining the initial step bound (factor * || diag * x||). Should be in interval (0.1, 100).

diag : sequence

N positive entries that serve as a scale factors for the variables.