Class QuasiNewtonMinimizer
- java.lang.Object
-
- dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
-
- dev.nm.solver.multivariate.unconstrained.c2.quasinewton.QuasiNewtonMinimizer
-
- All Implemented Interfaces:
Minimizer<C2OptimProblem,IterativeSolution<Vector>>
,IterativeC2Minimizer
,IterativeMinimizer<C2OptimProblem>
,MultivariateMinimizer<C2OptimProblem,IterativeSolution<Vector>>
,Optimizer<C2OptimProblem,IterativeSolution<Vector>>
- Direct Known Subclasses:
BFGSMinimizer
,HuangMinimizer
public abstract class QuasiNewtonMinimizer extends SteepestDescentMinimizer
The Quasi-Newton methods in optimization are for finding local maxima and minima of functions. The Quasi-Newton methods are based on Newton's method to find the stationary point of a function, where the gradient is 0. Newton's method assumes that the function can be locally approximated as quadratic in the region around the optimum. It uses the first and second derivatives (gradient and Hessian) to find the stationary point. In the Quasi-Newton methods the Hessian matrix of the objective function needs not to be computed. The Hessian is updated by analyzing successive gradient vectors instead.- See Also:
- "Andreas Antoniou, Wu-Sheng Lu, "Algorithm 7.2, 7.3," Practical Optimization: Algorithms and Engineering Applications."
- Wikipedia: Quasi-Newton method
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
QuasiNewtonMinimizer.QuasiNewtonImpl
This is an implementation of the Quasi-Newton algorithm.-
Nested classes/interfaces inherited from class dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
SteepestDescentMinimizer.SteepestDescentImpl
-
-
Field Summary
-
Fields inherited from class dev.nm.solver.multivariate.unconstrained.c2.steepestdescent.SteepestDescentMinimizer
epsilon, maxIterations
-
-
Constructor Summary
Constructors Constructor Description QuasiNewtonMinimizer(double epsilon, int maxIterations)
Construct a multivariate minimizer using a Quasi-Newton method.
-
-
-
Constructor Detail
-
QuasiNewtonMinimizer
public QuasiNewtonMinimizer(double epsilon, int maxIterations)
Construct a multivariate minimizer using a Quasi-Newton method.- Parameters:
epsilon
- a precision parameter: when a number |x| ≤ ε, it is considered 0maxIterations
- the maximum number of iterations
-
-