MinUnconMultiVar Class |
Namespace: Imsl.Math
The MinUnconMultiVar type exposes the following members.
Name | Description | |
---|---|---|
MinUnconMultiVar |
Unconstrained minimum constructor for a function of n variables of
type double.
|
Name | Description | |
---|---|---|
ComputeMin |
Return the minimum point of a function of n variables of type
double using a finite-difference gradient or using a
user-supplied gradient.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
SetGuess |
Sets the initial guess of the minimum point of the input function.
| |
SetXscale |
Sets the diagonal scaling matrix for the variables.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
Name | Description | |
---|---|---|
Digits |
The number of good digits in the function.
| |
ErrorStatus |
The non-fatal error status.
| |
Fscale |
The function scaling value for scaling the gradient.
| |
GradientTolerance |
The gradient tolerance used to compute the gradient.
| |
Ihess |
The Hessian initialization parameter.
| |
Iterations |
The number of iterations used to compute a minimum.
| |
MaximumStepsize |
The maximum allowable stepsize to use.
| |
MaxIterations |
The maximum number of iterations allowed.
| |
NumberOfProcessors |
Perform the parallel calculations with the maximum possible number of
processors set to NumberOfProcessors.
| |
Parallel |
Enable or disable performing MinUnconMultiVar.IFunction.F in parallel.
| |
StepTolerance |
The scaled step tolerance to use when changing x.
|
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).