# Jacobian Options

The Jacobian section allows you to control which methods for computing Jacobians the software uses.

## Analytic (`analytic`

)

Analytic Jacobians can only be used for specific Problem Definition Files. Currently the supported formats are cutest and NIST. The only option is:

`default`

- use the analytic derivative provided by a supported format.

Default is `default`

```
[JACOBIAN]
analytic: default
```

## SciPy (`scipy`

)

Calculates the Jacobian using the numerical Jacobian in
SciPy, this uses `scipy.optimize._numdiff.approx_derivative`

. The supported
options are:

`2-point`

- use the first order accuracy forward or backward difference.`3-point`

- use central difference in interior points and the second order accuracy forward or backward difference near the boundary.`cs`

- use a complex-step finite difference scheme. This assumes that the user function is real-valued and can be analytically continued to the complex plane. Otherwise, produces bogus results.

Default is `2-point`

**Licence** SciPy is available under a 3-clause BSD Licence. Individual packages may have their own (compatible) licences, as listed here.

```
[JACOBIAN]
scipy: 2-point
```

## Solver Default Jacobian (`default`

)

This uses the approximation of the Jacobian that is used by default in the minimizer, and will vary between solvers. If the minimizer requires the user to pass a Jacobian, a warning will be printed to the screen and the SciPy (scipy) 2-point approximation will be used. The only option is:

`default`

- use the default derivative approximation provided by the software.

Default is `default`

```
[JACOBIAN]
default: default
```

## Numdifftools (`numdifftools`

)

Calculates the Jacobian using the python package `numdifftools`

.
We allow the user to change the method used, but other options
(e.g, the step size generator and the order of the approximation) are set the defaults.
The supported options are:

`central`

- central differencing. Almost as accurate as complex, but with no restriction on the type of function.`forward`

- forward differencing.`backward`

- backward differencing.`complex`

- based on the complex-step derivative method of Lyness and Moler. Usually the most accurate, provided the function is analytic.`multicomplex`

- extends complex method using multicomplex numbers. (see, e.g., Lantoine, Russell, Dargent (2012)).

Default is `central`

.

**Licence** `numdifftools`

is available under a 3-clause BSD Licence.

```
[JACOBIAN]
numdifftools: central
```