minimize Class Template Reference

#include <minimize.h>


Detailed Description

template<class param_t, class func_t, class dfunc_t = func_t>
class minimize< param_t, func_t, dfunc_t >

One-dimensional minimization [abstract base].

Note:
This base class does not actually perform any minimization. Use either gsl_min_brent or cern_minimize.
Idea for future:
This does not have pure virtual functions, but I'd still like to prevent the user from directly instantiating a minimize object.

Definition at line 48 of file minimize.h.


Public Member Functions

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.
virtual int min (double &x, double &fmin, param_t &pa, func_t &func)
 Calculate the minimum min of func w.r.t 'x'.
virtual int min_bkt (double &x2, double x1, double x3, double &fmin, param_t &pa, func_t &func)=0
 Calculate the minimum min of func with x2 bracketed between x1 and x3.
virtual int min_de (double &x, double &fmin, param_t &pa, func_t &func, dfunc_t &df)
 Calculate the minimum min of func with derivative dfunc w.r.t 'x'.
virtual int bracket (double &ax, double &bx, double &cx, double &fa, double &fb, double &fc, param_t &pa, func_t &func)
 Given interval (ax,bx), attempt to bracket a minimum for function func.
virtual const char * type ()
 Return string denoting type ("minimize").

Data Fields

int verbose
 Output control.
int ntrial
 Maximum number of iterations.
double tolf
 The tolerance for the minimum function value.
double tolx
 The tolerance for the location of the minimum.
int last_ntrial
 The number of iterations for in the most recent minimization.
int bracket_iter
 The number of iterations for automatically bracketing a minimum (default 20).

Protected Attributes

bool over_bkt
 Should be true if min_bkt() is overloaded.
bool over_de
 Should be true if min_de() is overloaded.

Member Function Documentation

virtual int print_iter ( double  x,
double  y,
int  iter,
double  value = 0.0,
double  limit = 0.0,
std::string  comment = "" 
) [inline, virtual]

Print out iteration information.

Depending on the value of the variable verbose, this prints out the iteration information. If verbose=0, then no information is printed, while if verbose>1, then after each iteration, the present values of x and y are output to std::cout along with the iteration number. If verbose>=2 then each iteration waits for a character.

Definition at line 108 of file minimize.h.

virtual int min ( double &  x,
double &  fmin,
param_t &  pa,
func_t &  func 
) [inline, virtual]

Calculate the minimum min of func w.r.t 'x'.

If this is not overloaded, it attempts to bracket the minimum using bracket() and then calls min_bkt() with the newly bracketed minimum.

Definition at line 139 of file minimize.h.

virtual int min_bkt ( double &  x2,
double  x1,
double  x3,
double &  fmin,
param_t &  pa,
func_t &  func 
) [pure virtual]

Calculate the minimum min of func with x2 bracketed between x1 and x3.

If this is not overloaded, it ignores the bracket and calls min().

Implemented in cern_minimize, and gsl_min_brent.

virtual int min_de ( double &  x,
double &  fmin,
param_t &  pa,
func_t &  func,
dfunc_t &  df 
) [inline, virtual]

Calculate the minimum min of func with derivative dfunc w.r.t 'x'.

If this is not overloaded, it attempts to bracket the minimum using bracket() and then calls min_bkt_de() with the newly bracketed minimum.

Definition at line 166 of file minimize.h.

virtual int bracket ( double &  ax,
double &  bx,
double &  cx,
double &  fa,
double &  fb,
double &  fc,
param_t &  pa,
func_t &  func 
) [inline, virtual]

Given interval (ax,bx), attempt to bracket a minimum for function func.

Upon success, fa=func(ax), fb=func(bx), and fc=func(cx) with fb<fa, fb<fc and ax<bx<cx. The initial values of cx, fa, fb, and fc are all ignored.

The number of iterations is controlled by bracket_iter.

Note:
This routine will fail if the function has the same value at ax, bx, and the midpoint (ax+bx)/2.
Idea for future:
Improve this algorithm with the standard golden ratio method?

Definition at line 196 of file minimize.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page