The number of iterations in an optimization depends on a solver's stopping criteria. These criteria include several tolerances you can set. Generally, a tolerance is a threshold which, if crossed, stops the iterations of a solver.
Set tolerances and other criteria using optimoptions
as
explained in Set and Change Options.
Tip
Generally set tolerances such as |
You can find the default tolerances in the Optimization App. Some default tolerances differ for different algorithms, so set both the solver and the algorithm.
optimoptions
displays default
tolerances. For example,
options = optimoptions('fmincon')
You can also find the default tolerances in the options section of the solver function reference page.
TolX
is a lower bound on the size
of a step, meaning the norm of (xi – xi+1).
If the solver attempts to take a step that is smaller than TolX
,
the iterations end. TolX
is sometimes used as a relative bound,
meaning iterations end when |(xi – xi+1)| < TolX
*(1
+ |xi|),
or a similar relative measure.
For some algorithms, TolFun
is
a lower bound on the change in the value of the objective function
during a step. For those algorithms, if |f(xi) – f(xi+1)| < TolFun
,
the iterations end. TolFun
is sometimes used as
a relative bound, meaning iterations end when |f(xi) – f(xi+1)| < TolFun
*(1
+ |f(xi)|),
or a similar relative measure.
Note:
|
TolCon
is an upper bound on the
magnitude of any constraint functions. If a solver returns a point x with c(x) > TolCon
or |ceq(x)| > TolCon
,
the solver reports that the constraints are violated at x. TolCon
can
also be a relative bound.
Note:
|
MaxIter
is a bound on the number
of solver iterations. MaxFunEvals
is a bound on
the number of function evaluations. Iterations and function evaluations
are discussed in Iterations and Function Counts.
There are two other tolerances that apply to particular solvers: TolPCG
and MaxPCGIter
.
These relate to preconditioned conjugate gradient steps. For more
information, see Preconditioned Conjugate Gradient Method.
There are several tolerances that apply only to the fmincon
interior-point
algorithm. For more information, see Interior-Point
Algorithm in fmincon
options
.
There are several tolerances that apply only to intlinprog
.
See Some "Integer" Solutions Are Not Integers and Branch and Bound.