N.I.M.R.O.D. | ![]() |
Go to the source code of this file.
Functions/Subroutines | |
subroutine | searpas (vw, step, b, bh, m, delta, fim, namefunc) |
Perform line search, find a better magnitude of move. | |
subroutine | valfpa (vw, fi, b, bk, m, delta, namefunc) |
Value of log-likelihood/function computation during the line search iterations. |
subroutine searpas | ( | double precision,intent(inout) | vw, |
double precision,intent(inout) | step, | ||
double precision,dimension(m),intent(in) | b, | ||
double precision,dimension(m),intent(in) | bh, | ||
integer,intent(in) | m, | ||
double precision,dimension(m),intent(in) | delta, | ||
double precision,intent(inout) | fim, | ||
double precision,external | namefunc | ||
) |
Perform line search, find a better magnitude of move.
AUTHOR : Melanie Prague Daniel Commenges Julia Drylewicz Jeremy guedj Rodolphe Thiebaut
DESCRIPTION :
This performs line search in case that the first proposed move roughtly computed from gradients do not improve the log-likelihood Line search can be performed either for global optimization (type=1) or for random effect (type=2). In each dimension, the best magnitude of move is searched iteratively.
MODIFICATION :
01/09/2012 - Prague - Refactoring 15/12/2012 - Prague - Debug options 01/01/2013 - Prague - "if(fi1.gt.fi2) goto 50" is commented. Surface is better explored. Convergences seem faster.
INFORMATIONS:
[in] | vw | Magnitude of the proposition for line search. |
[in,out] | step | Magnitude of the displacement during iterative search. |
[in] | b | Optimized Parameters Value |
[in] | m | Length of the vector of parameters to optimize. |
[in,out] | delta | Initial then final proposed movement |
[in,out] | FIM | Old then New likelihood value |
[in] | type | =1 for global optimization and =2 for random effects |
Definition at line 42 of file lineSearch.f90.
References debugage::debugSEARPAS, mpimod::numproc, and valfpa().
Referenced by marquardt(), and optim().
subroutine valfpa | ( | double precision | vw, |
double precision,intent(out) | fi, | ||
double precision,dimension(m),intent(in) | b, | ||
double precision,dimension(m),intent(out) | bk, | ||
integer,intent(in) | m, | ||
double precision,dimension(m),intent(in) | delta, | ||
double precision,external | namefunc | ||
) |
Value of log-likelihood/function computation during the line search iterations.
AUTHOR : Melanie Prague Daniel Commenges Julia Drylewicz Jeremy guedj Rodolphe Thiebaut
DESCRIPTION :
This subroutine computes the total log-likelihood (type=1) or the random-effects log-likelihood (type=2) after a parameter movement of length dexp(vw)*delta(i). This is part of the line-search.
MODIFICATION :
01/09/2012 - Prague - Refactoring 15/12/2012 - Prague - Debug options
INFORMATIONS:
[in] | vw | Magnitude of the proposition for line search. |
[in] | b | Optimized Parameters Value |
[in] | m | Length of the vector of parameters to optimize. |
[in] | delta | Initial proposed movement |
[out] | fi | Old then New likelihood value |
[in] | type | =1 for global optimization and =2 for random effects |
Definition at line 158 of file lineSearch.f90.
References mpimod::numproc.
Referenced by searpas().