Minimizes a multivariate function using a quasi-Newton method.
For a list of all members of this type, see MinUnconMultiVar Members.
System.Object
Imsl.Math.MinUnconMultiVar
Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.
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:
Given a starting point , the search direction is computed according to the formula
where B is a positive definite approximation of the Hessian, and is the gradient evaluated at . A line search is then used to find a new point
such that
Finally, the optimality condition where is a gradient tolerance.
When optimality is not achieved, B is updated according to the BFGS formula
where and . 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
).
Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll)
MinUnconMultiVar Members | Imsl.Math Namespace | Finite-difference Example | Gradient Example