#### Previous topic

root(method=’hybr’)

#### Next topic

root(method=’broyden1’)

# 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.