# 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 : Returns : 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). 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. 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.

#### Previous topic

scipy.optimize.fixed_point

#### Next topic

scipy.optimize.broyden1