You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 text was updated successfully, but these errors were encountered:
We can also explore other open source scientific libraries such as PETSc, GSL, NLOPT and so on, which contain lots of nonlinear solvers and optimization algorithms. Many of them come with sparse matrices and in-built parallelization.
We could let users choose at compilation between in-build SPEC nonlinear solvers that maybe slower(such as minpack), or external scientific libraries.
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 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-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 theCG-descent
and will merge it intomaster
after some time.The text was updated successfully, but these errors were encountered: