com.numericalmethod.suanshu.optimization.unconstrained.conjugatedirection
Class ConjugateGradient
java.lang.Object
com.numericalmethod.suanshu.optimization.unconstrained.steepestdescent.SteepestDescent
com.numericalmethod.suanshu.optimization.unconstrained.conjugatedirection.ConjugateGradient
- All Implemented Interfaces:
- Minimizer, UnconstrainedMinimizer
- Direct Known Subclasses:
- FletcherReeves
public class ConjugateGradient
- extends SteepestDescent
Conjugate-gradient method generates a new search direction
by adding a vector βkdk to the negative gradient -gk+1.
The algorithm is originally developed for quadratic problems.
For convex quadratic problems, the algorithm converges in n iterations,
where n is the number of variables.
It still has good convergence properties when applied to non-quadratic problems.
A conjugate direction optimization method is performed by using
sequential search directions that bear a strict mathematical relationship to one another.
- See Also:
| Fields inherited from class com.numericalmethod.suanshu.optimization.unconstrained.steepestdescent.SteepestDescent |
f, g, tol |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ConjugateGradient
public ConjugateGradient()
solve
public void solve(RealScalarFunction f,
RealVectorFunction g,
RntoMatrix H,
double tol)
solve
public void solve(RealScalarFunction f,
RealVectorFunction g,
double tol)
- Overrides:
solve in class SteepestDescent
getLineSearch
protected SteepestDescent.LineSearch getLineSearch()
- Specified by:
getLineSearch in class SteepestDescent
Copyright © 2011 Numerical Method Inc. Ltd. All Rights Reserved.