#include <F_HybridDY_CgNonLS.hpp>
Inheritance diagram for F_HybridDY_CgNonLS:
Purpose: Nonlinear Hybrid Dai-Yuan Conjugate Gradient Dai-Yuan works improve considerably nonlinear gradient capabilities with miminal effort. It's use ensure: - descent directions and global convergence. - support larger weak wolf conditions :-) - And AVOID STICKING, (sleepering from obliged restarts) :-) This is much better that classical Fletcher-Reeves, Polack-Ribiere and Dai-Yuan. Papers: "An Efficient Hybrid Conjugate Gradient Method for Unconstrained Optimization.", Y. H. Dai and Y. Yuan, Annals of Operations Research 103, 33-47, 2001 Kluwer Academic Publishers, Netherland. "Course Notes for MS4327 Optimisation", J. Kinsella, course March 30, 2004, University of ?. "An Introduction to the Conjugate Gradient Method Without the Agonizing Pain", J. R. Shewchuk, Tutorial August 4, 1994, School of Computer Science, Carnegie Mellon University. "A Nonlinear Conjugate Gradient Method with a Strong Global Convergence Property", Y. H. Dai and Y. Yuan, Report 1999, State Key Laboratory of Scientific and Engineering Computing, Institute of Computational Mathematics and Scientific/Engineering Computing, Chinese Academic of Sciences, Beijing, China.
Public Methods | |
F_HybridDY_CgNonLS (int maxIterations, double epsilon=1.0e-4) | |
virtual | ~F_HybridDY_CgNonLS () |
virtual FloatVector * | solve (AbsFObjectiveFn *fn, FloatVector *x=0) |
Protected Methods | |
virtual FloatVector * | singleSolve (AbsFObjectiveFn *fn, FloatVector *x=0) |
Private Attributes | |
double | alpha |
double | beta |
FloatVector * | r |
FloatVector * | d |
FloatVector * | y |
bool | precondFlag |
FloatVector * | s |
double | delta0 |
double | deltaNew |
double | deltaOld |