NMath provides classes for minimizing univariate functions using golden section search and Brent's method. Minimization is the process of finding the value of the variable x within some interval where f(x) takes on a minimum value. (To maximize a function f, simply minimize -f.)
All NMath minimization classes derive from the abstract base class MinimizerBase, which provides Tolerance and MaxIterations properties. In general, minimization stops when either the decrease in function value is less than the tolerance, or the maximum number of iterations is reached. Setting the error tolerance to less than zero ensures that the maximum number of iterations is always reached. After minimization, the following properties on MinimizerBase can be useful for gathering more information about the minimum just computed:
● Error gets the error associated with the mimimum just computed.
● ToleranceMet returns a boolean value indicating whether the minimum just computed stopped because the error tolerance was reached.
● MaxIterationsMet returns a boolean value indicating whether the minimum just computed stopped because the maximum number of iterations was reached.
The univariate minimization classes also implement one of the following interfaces:
● Classes that implement the IOneVariableMinimizer interface require only function evaluations to minimize a function.
● Classes that implement the IOneVariableDMinimizer interface also require evaluations of the derivative of a function.
This chapter describes how to use the univariate minimizer classes.