EMPIRE DA
v1.9.1
Data assimilation codes using EMPIRE communication
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | lbfgsb_sub (n, factr_in, pgtol_in, x, nbd, l, u) |
Limited memory BFGS bound constrained optimization code as callable subroutine. More... | |
subroutine lbfgsb_sub | ( | integer, intent(in) | n, |
real(kind=dp), intent(in) | factr_in, | ||
real(kind=dp), intent(in) | pgtol_in, | ||
real(kind=dp), dimension(n), intent(inout) | x, | ||
integer, dimension(n), intent(in) | nbd, | ||
real(kind=dp), dimension(n), intent(in) | l, | ||
real(kind=dp), dimension(n), intent(in) | u | ||
) |
Limited memory BFGS bound constrained optimization code as callable subroutine.
L-BFGS-B is a code for solving large nonlinear optimization problems with simple bounds on the variables.
The code can also be used for unconstrained problems and is as efficient for these problems as the earlier limited memory code L-BFGS.
This is the simplest driver in the package. It uses all the default settings of the code.
References: [1] R. H. Byrd, P. Lu, J. Nocedal and C. Zhu, ``A limited memory algorithm for bound constrained optimization'', SIAM J. Scientific Computing 16 (1995), no. 5, pp. 1190--1208. [2] C. Zhu, R.H. Byrd, P. Lu, J. Nocedal, ``L-BFGS-B: FORTRAN Subroutines for Large Scale Bound Constrained Optimization'' Tech. Report, NAM-11, EECS Department, Northwestern University, 1994. (Postscript files of these papers are available via anonymous ftp to eecs.nwu.edu in the directory pub/lbfgs/lbfgs_bcm.) * * * March 2011 (latest revision) Optimization Center at Northwestern University Instituto Tecnologico Autonomo de Mexico Jorge Nocedal and Jose Luis Morales
[in] | n | the size of the state vector |
[in] | factr_in | the factr tolerance in the stopping criteria |
[in] | pgtol_in | the pgtol tolerance in the stopping criteria |
[in,out] | x | on entry the initial guess, on exit the optimized state vector |
[in] | nbd | nbd is an INTEGER array of dimension n that must be set by the user to the type of bounds imposed on the variables: nbd(i)=0 if x(i) is unbounded, 1 if x(i) has only a lower bound, 2 if x(i) has both lower and upper bounds, 3 if x(i) has only an upper bound. |
[in] | l | l is a DOUBLE PRECISION array of length n that must be set by the user to the values of the lower bounds on the variables. If the i-th variable has no lower bound, l(i) need not be defined. |
[in] | u | u is a DOUBLE PRECISION array of length n that must be set by the user to the values of the upper bounds on the variables. If the i-th variable has no upper bound, u(i) need not be defined. |
Definition at line 210 of file lbfgsb_sub.f90.