#include <F_FR_CgNonLS.hpp>
Inheritance diagram for F_FR_CgNonLS:
Purpose: Nonlinear Fletcher-Reeves Conjugate Gradient It's use ensure: - cheap - descent directions, - global convergence is not always ensured. (problem with Zoutendijk conditions) - supports only strong wolf conditions - stagnate in some occasions - Still suffer from important STICKING, (sleepering from obliged restarts) :-( The classical Fletcher-Reeves is cheap, but suffers from number of problems. Polack-Ribiere and Dai-Yuan NCGs are more popular Today. Papers: "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. "Course Notes for MS4327 Optimisation", J. Kinsella, course March 30, 2004, University of ?. "Unconstrained Optimization" P.E. Frandsen, K. Jonasson, H.B. Nielsen O. Tingleff, Lecture 23/8/1999, Dep. of Mathematical Modeling, Technical University of Lyngby, Denmark.
Public Methods | |
F_FR_CgNonLS (int maxIterations, double epsilon=1.0e-4) | |
virtual | ~F_FR_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 |
bool | precondFlag |
FloatVector * | s |
double | delta0 |
double | deltaNew |
double | deltaOld |