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