method

Set the minimization method.

**Syntax: method**`<algorithm>[<# of trials/evaluations>
[<critical delta>] [<method-specific options>]]`

where `<algorithm>` is the method in use and the other arguments are
control values for the minimization. Their meanings are explained under the
individual methods. The `migrad` and `simplex` methods are taken
from the CERN Minuit2 package, with documentation located at

http://seal.web.cern.ch/seal/MathLibs/Minuit2/html/index.html. If either of
these are used, then the error command will use the Minuit2 minos
method to find the confidence regions.

**method** `leven [<# of eval>[<crit delta>]
[<crit beta>]] [delay |nodelay]`

The default XSPEC minimization method using the modified Levenberg-Marquardt
algorithm based on the CURFIT routine from Bevington. `<# of eval>` is
the number of trial vectors before the user is prompted to say whether
they want to continue fitting. `<crit delta>` is the convergence
criterion, which is the (absolute, not fractional) difference in fit
statistic between successive iterations, less than which the fit is
determined to have converged.

`<crit beta>` refers to the |beta|/N value reported
during a fit. This is the norm of the vector of derivatives of the
statistic with respect to the parameters divided by the number of parameters.
At the best fit this should be zero, and so provides another measure of
how well the fit is converging. When this is set to a positive value, it
will provide another fit stopping criterion in addition to that
of the `<crit delta>` setting.

Including the string `delay` as an argument turns on delayed
gratification. It is turned off by `nodelay`. Delayed gratification
modifies the way the damping parameter is set and has been shown in many
cases to speed up convergence. The default is `nodelay`.

`<# of eval>`, `<crit delta>`, `<crit beta>`, `delay`,
and `nodelay` may also be set through the fit command.

This method requires an estimate of the second derivative of the statistic
with respect to the parameters. By default, XSPEC calculates these using
an analytic expression which assumes that partial 2nd derivatives of the
model with respect to its parameters may be ignored. This may be changed
by setting the USE_NUMERICAL_DIFFERENTIATION flag to ``true'' in the user's
startup `Xspec.init` initialization file. XSPEC will then calculate
all second derivatives numerically, which can be noticeably slower.

**method** `migrad [<# of eval>]`

The Minuit2 migrad method. `<# of eval>` is the number of function
evaluations to perform before giving up. Migrad uses an internal
convergence criterion.

The current version of Minuit2 included is that from ROOT v5.34. Documentation on Minuit2 can be found at http://seal.web.cern.ch/seal/MathLibs/Minuit2/html/.

If migrad is not working well try experimenting with different hard and soft limits on parameters.

**method** `simplex [<# of evaluations>]`

The Minuit2 simplex method. <# of evaluations>is the number of function evaluations to perform before giving up. Simplex uses an internal convergence criterion. This method is included for historical interest and is almost always outperformed by migrad.