N.I.M.R.O.D.  
Functions/Subroutines

marquardt.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine marquardt (b, m, ni, v, rl, istop, maxiter, dd)
 Optimization subroutine based on Marquardt-Levenberg algorithm.

Function Documentation

subroutine marquardt ( double precision,dimension(m),intent(inout)  b,
integer  integer,
integer,intent(inout)  ni,
double precision,dimension(m*(m+3)/2),intent(out)  v,
double precision,intent(out)  rl,
integer,intent(inout)  istop,
integer,intent(in)  maxiter,
double precision,intent(out)  dd 
)

Optimization subroutine based on Marquardt-Levenberg algorithm.

AUTHOR : Melanie Prague Daniel Commenges Julia Drylewicz Jeremy guedj Rodolphe Thiebaut

DESCRIPTION : Optimization is maximisation. Marquardt subroutine results interpretation depend on the exit status istop: istop=1 All convergence criteria are met istop=2 Maximum number of iteration reached istop=3 Failure, the hessian is non inversible. istop=4 Nothing is computed correctly, function equals NAN or infinity.

MODIFICATION :

01/09/2012 - Prague - Refactoring

INFORMATIONS:

Parameters:
[in,out]bInitial starting points then optimized values
[in]mLength of the vector of parameters to optimize.
[out]niNumber of iteration performed during optimization
[out]vHessian and Gradients at maximum
[out]rlFunction value at maximum
[out]istopconvergence status at exit
[in]nimaxMaximum number of iteration allowed to optimize

Definition at line 39 of file marquardt.f90.

References dchole(), derivRANDOMEFFECT(), dmaxt(), dsinv(), ToleranceThreshold::dsinv_ep, ToleranceThreshold::gonfle_da, ToleranceThreshold::gonfle_dm, ToleranceThreshold::gonfle_eps, ToleranceThreshold::gonfle_ga, ToleranceThreshold::marquardt_ca, ToleranceThreshold::marquardt_cb, ToleranceThreshold::marquardt_rdm, searpas(), and ToleranceThreshold::searpas_th.

Referenced by funcpa().

Here is the call graph for this function:

Here is the caller graph for this function: