Minimizes a multivariate function using a quasi-Newton method.

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.0.0

Syntax

C#
[SerializableAttribute]
public class MinUnconMultiVar
Visual Basic (Declaration)
<SerializableAttribute> _
Public Class MinUnconMultiVar
Visual C++
[SerializableAttribute]
public ref class MinUnconMultiVar

Remarks

Class MinUnconMultivar uses a quasi-Newton method to find the minimum of a function f(x) of n variables. The problem is stated as follows:

\mathop {\min }\limits_{x\; \in \;R^n } f\left
            ( x \right)

Given a starting point x_c, the search direction is computed according to the formula

d = -B^{-1} g_c

where B is a positive definite approximation of the Hessian, and g_c is the gradient evaluated at x_c
            . A line search is then used to find a new point

 x_n  = \,x_c  + \lambda d,\lambda  > 0

such that

f\left( {x_n } \right) \le f\left( {x_c } 
            \right) + \alpha g^T d,\,\,\,\, \alpha  \in \left( {0,\,0.5} \right)

Finally, the optimality condition {\rm{||g(x)|| }} \le 
            \varepsilon where \varepsilon is a gradient tolerance.

When optimality is not achieved, B is updated according to the BFGS formula

 B \leftarrow B - \frac{{Bss^T B}}{{s^T
            Bs}} + \frac{{yy^T }}{{y^T s}}

where s = x_n - x_c and y = g_n - g_c
            . Another search direction is then computed to begin the next iteration. For more details, see Dennis and Schnabel (1983, Appendix A).

In this implementation, the first stopping criterion for MinUnconMultivar occurs when the norm of the gradient is less than the given gradient tolerance property, GradientTolerance. The second stopping criterion for MinUnconMultivar occurs when the scaled distance between the last two steps is less than the step tolerance property, StepTolerance.

Since by default, a finite-difference method is used to estimate the gradient. An inaccurate estimate of the gradient may cause the algorithm to terminate at a noncritical point. Supply the gradient for a more accurate gradient evaluation (MinConMultiVar.IGradient).

Inheritance Hierarchy

System..::.Object
Imsl.Math..::.MinUnconMultiVar

See Also