One-dimensional minimization (CERNLIB) More...
#include <min_cern.h>
The golden section search is applied in the interval using a fixed number
of function evaluations where
The accuracy depends on the function. A choice of usually results in a relative error of $x$ which is smaller than or of the order of
.
This routine strictly searches the interval . If the function is nowhere flat in this interval, then min_bkt() will return either
or
and min_type is set to 1. Note that if there are more than 1 local minima in the specified interval, there is no guarantee that this method will find the global minimum.
Based on the CERNLIB routines RMINFC and DMINFC, which was based on Fletcher87, and Krabs83 and is documented at http://wwwasdoc.web.cern.ch/wwwasdoc/shortwrupsdir/d503/top.html
Definition at line 75 of file min_cern.h.
Public Member Functions | |
virtual int | min_bkt (double &x, double a, double b, double &y, func_t &func) |
Calculate the minimum min of func between a and b . More... | |
int | set_delta (double d) |
Set the value of ![]() | |
virtual const char * | type () |
Return string denoting type ("min_cern") | |
![]() | |
virtual int | min (double &x, double &fmin, func_t &func) |
Calculate the minimum min of func w.r.t 'x'. More... | |
virtual int | min_de (double &x, double &fmin, func_t &func, func_t &df) |
Calculate the minimum min of func with derivative dfunc w.r.t 'x'. More... | |
![]() | |
virtual int | print_iter (double x, double y, int iter, double value=0.0, double limit=0.0, std::string comment="") |
Print out iteration information. More... | |
virtual int | bracket (double &ax, double &bx, double &cx, double &fa, double &fb, double &fc, func_t &func) |
Given interval (ax,bx) , attempt to bracket a minimum for function func . More... | |
Public Attributes | |
int | min_type |
Type of minimum found. | |
![]() | |
int | bracket_iter |
The number of iterations for automatically bracketing a minimum (default 20) | |
![]() | |
int | verbose |
Output control. | |
int | ntrial |
Maximum number of iterations. | |
double | tol_rel |
The tolerance for the minimum function value. | |
double | tol_abs |
The tolerance for the location of the minimum. | |
int | last_ntrial |
The number of iterations used in the most recent minimization. | |
int | bracket_iter |
The number of iterations for automatically bracketing a minimum (default 20) | |
bool | err_nonconv |
If true, call the error handler if the routine does not "converge". | |
Protected Member Functions | |
int | nint (double x) |
C analog of Fortran's "Nearest integer" function. | |
Protected Attributes | |
double | delta |
The value of delta as specified by the user. | |
bool | delta_set |
True if the value of delta has been set. | |
|
inlinevirtual |
The initial value of x
is ignored.
If there is no minimum in the given interval, then on exit x
will be equal to either a
or b
and min_type will be set to 1 instead of zero. The error handler is not called, as this need not be interpreted as an error.
Implements o2scl::min_bkt_base< func_t >.
Definition at line 109 of file min_cern.h.
|
inline |
If this is not called before min_bkt() is used, then the suggested value is used.
Definition at line 186 of file min_cern.h.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).