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)[source]

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.

See also

root
Interface to root finding algorithms for multivariate functions. See the ‘hybr’ method in particular.

Notes

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

Previous topic

scipy.optimize.root

Next topic

scipy.optimize.broyden1