Fitting Options

Options that control the benchmarking process are set here.

Software (software)

Software is used to select the fitting software to benchmark, this should be a newline-separated list. Available options are:

Default are bumps, dfo, minuit, scipy, and scipy_ls

[FITTING]
software: bumps
          dfo
          minuit
          scipy
          scipy_ls

Warning

Software must be listed to be here to be run. Any minimizers set in Minimizer Options will not be run if the software is not also present in this list.

Number of minimizer runs (num_runs)

Sets the number of runs to average each fit over.

Default is 5

[FITTING]
num_runs: 5

Algorithm type (algorithm_type)

This is used to select what type of algorithm is used within a specific software. The options are:

  • all - all minimizers
  • ls - least-squares fitting algorithms
  • deriv_free - derivative free algorithms (these are algorithms that do not require an information about derivatives. For example, the Simplex method in Mantid does not require derivative information but lm-scipy-no-jac in scipy_ls does but the derivative is handle internally within the software package)
  • general - minimizers which solve a generic min f(x)

Default is all

[FITTING]
algorithm_type: all

Warning

Choosing an option other than all may deselect certain minimizers set in the options file

Use errors (use_errors)

This will switch between weighted and unweighted least squares. If use_errors=True, and no errors are supplied, then e[i] will be set to sqrt(abs(y[i])). Errors below 1.0e-8 will be clipped to that value.

Default is True (yes/no can also be used)

[FITTING]
use_errors: yes

Jacobian method (jac_method)

This sets the Jacobian used. Current Jacobian methods are:

  • SciPyFD - denotes the use of SciPy’s finite difference Jacobian approximations

Default is SciPyFD

[FITTING]
jac_method: SciPyFD

Numerical method (num_method)

Sets the numerical method used in conjunction with the Jacobian method. Currently scipy.optimize._numdiff.approx_derivative are the only methods implemented to calculate finite difference Jacobians. Scipy options are given as below:

  • 2point - use the first order accuracy forward or backward difference.
  • 3point - 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 2point

[FITTING]
num_method: 2point