The request for using the conjugate gradient (CG) method for minimization was raised recently. Here is what I posted at FOCUS repository about my limited experience of using CG. You can have a look and take it as a reference.
The current nonlinear conjugate gradient (CG) method was written by myself based on the strategy of Yuan & Dai. The line search subroutine is also written by myself based on Numerical Optimization. It is often observed un-converged line search.
In the develop branch, FOCUS is linked to another well-written library, CG-descent. If you want to use the old version CG, just compile with PFLAGS='-D oldcg'.
Here is a test using the rotating ellipse. Solid lines are the CG-descent, and dashed lines the old CG.
-
Convergence over iterations.

-
Convergence over wall-time.

-
Poincare plots from CG-descent

-
Poincare plots from old CG

The testing results show that the CG-descent is much faster in speed. My guess is that I didn't implement a very good line search subroutine. So I will encourage everyone to test the CG-descent and will merge it into master after some time.
git fetch
git checkout develop
make clean; make xfocus; make dfocus
The request for using the conjugate gradient (CG) method for minimization was raised recently. Here is what I posted at FOCUS repository about my limited experience of using CG. You can have a look and take it as a reference.
The current nonlinear conjugate gradient (CG) method was written by myself based on the strategy of Yuan & Dai. The line search subroutine is also written by myself based on Numerical Optimization. It is often observed un-converged line search.
In the
developbranch, FOCUS is linked to another well-written library, CG-descent. If you want to use the old version CG, just compile withPFLAGS='-D oldcg'.Here is a test using the rotating ellipse. Solid lines are the
CG-descent, and dashed lines the old CG.Convergence over iterations.

Convergence over wall-time.

Poincare plots from

CG-descentPoincare plots from

old CGThe testing results show that the
CG-descentis much faster in speed. My guess is that I didn't implement a very good line search subroutine. So I will encourage everyone to test theCG-descentand will merge it intomasterafter some time.