### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.9 Reference Guide (DRAFT) »
- Optimization and root finding (`scipy.optimize`) »

# scipy.optimize.fsolve

`scipy.optimize.``fsolve`(func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=0.0, factor=100, diag=None)

  Find the roots of a function.

  Return the roots of the (non-linear) equations defined by `func(x) = 0` given a starting estimate.

  Parameters : | func : callable f(x, *args) A function that takes at least one (possibly vector) argument. x0 : ndarray The starting estimate for the roots of `func(x) = 0`. args : tuple Any extra arguments to func. fprime : callable(x) A function to compute the Jacobian of func with derivatives across the rows. By default, the Jacobian will be estimated. full_output : bool If True, return optional outputs. col_deriv : bool Specify whether the Jacobian function computes derivatives down the columns (faster, because there is no transpose operation).
  > Returns : | x : ndarray The solution (or the result of the last iteration for an unsuccessful call). infodict : dict A dictionary of optional outputs with the keys:
  >     * 'nfev': number of function calls
  >     * 'njev': number of Jacobian calls
  >     * 'fvec': function evaluated at the output
  >     * 'fjac': the orthogonal matrix, q, produced by the QR
  >               factorization of the final approximate Jacobian
  >               matrix, stored column wise
  >     * 'r': upper triangular matrix produced by QR factorization of same
  >            matrix
  >     * 'qtf': the vector (transpose(q) * fvec)
  ier : int An integer flag. Set to 1 if a solution was found, otherwise refer to mesg for more information. mesg : str If no solution is found, mesg details the cause of failure.
  Other Parameters:
  | xtol : float The calculation will terminate if the relative error between two consecutive iterates is at most xtol. maxfev : 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. band : tuple If set to a two-sequence containing the number of sub- and super-diagonals within the band of the Jacobi matrix, the Jacobi matrix is considered banded (only for `fprime=None`). epsfcn : float A suitable step length for the forward-difference approximation of the Jacobian (for `fprime=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 the interval `(0.1, 100)`. diag : sequence N positive entries that serve as a scale factors for the variables.

  Notes

  `fsolve` is a wrapper around MINPACK’s hybrd and hybrj algorithms.

### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.9 Reference Guide (DRAFT) »
- Optimization and root finding (`scipy.optimize`) »