# 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
```