
Public Member Functions | |
| vnl_amoebaFit (vnl_amoeba &a) | |
| void | set_up_simplex_relative (std::vector< vnl_amoeba_SimplexCorner > &simplex, const vnl_vector< double > &x) |
| Initialise the simplex given one corner, x (scale each element to get other corners). More... | |
| void | set_up_simplex_absolute (std::vector< vnl_amoeba_SimplexCorner > &simplex, const vnl_vector< double > &x, const vnl_vector< double > &dx) |
| Initialise the simplex given one corner, x and displacements of others. More... | |
| void | amoeba (vnl_vector< double > &x) |
| Perform optimisation. Start simplex defined by scaling elements of x. More... | |
| void | amoeba (vnl_vector< double > &x, const vnl_vector< double > &dx) |
| Perform optimisation. Start simplex defined by adding dx[i] to each x[i]. More... | |
| void | amoeba (vnl_vector< double > &x, std::vector< vnl_amoeba_SimplexCorner > &simplex) |
| Perform optimisation, given simplex to start. More... | |
| double | f (const vnl_vector< double > &x) |
| void | set_corner (vnl_amoeba_SimplexCorner *s, const vnl_vector< double > &v) |
| void | set_corner_a_plus_bl (vnl_amoeba_SimplexCorner *s, const vnl_vector< double > &vbar, const vnl_vector< double > &v, double lambda) |
| void | set_max_iterations (int n) |
| Define maximum number of iterations to use. More... | |
| void | set_x_tolerance (double tol) |
| Define tolerance on elements of x. More... | |
| void | set_f_tolerance (double tol) |
| Define tolerance on function evaluation. More... | |
| void | set_relative_diameter (double r) |
| Define scaling used to select starting vertices relative to initial x0. More... | |
| void | set_zero_term_delta (double d) |
| void | minimize (vnl_vector< double > &x) |
| Modify x to minimise function supplied in constructor. More... | |
| void | minimize (vnl_vector< double > &x, const vnl_vector< double > &dx) |
| Perform optimisation. More... | |
| double | get_end_error () const |
| int | get_num_evaluations () const |
| Number of evaluations used in last call to minimize. More... | |
Static Public Member Functions | |
| static void | minimize (vnl_cost_function &f, vnl_vector< double > &x) |
| Modify x so as to minimise f(x). More... | |
| static void | minimize (vnl_cost_function &f, vnl_vector< double > &x, const vnl_vector< double > &dx) |
| Modify x so as to minimise f(x). More... | |
| static void | minimize (vnl_cost_function &f, vnl_vector< double > &x, double delta) |
| Modify x so as to minimise f(x). More... | |
| static void | minimize (vnl_least_squares_function &f, vnl_vector< double > &x) |
| Modify x so as to minimise f(x). More... | |
Public Attributes | |
| int | cnt |
| int | verbose |
| int | maxiter |
| double | X_tolerance |
| double | F_tolerance |
| double | relative_diameter |
| Scaling used to select starting vertices relative to initial x0. More... | |
| double | zero_term_delta |
Static Public Attributes | |
| static bool | default_verbose = false |
Protected Attributes | |
| vnl_cost_function * | fptr |
| double | end_error_ |
| int | num_evaluations_ |
Definition at line 31 of file vnl_amoeba.cxx.
|
inline |
Definition at line 35 of file vnl_amoeba.cxx.
| void vnl_amoebaFit::amoeba | ( | vnl_vector< double > & | x | ) |
Perform optimisation. Start simplex defined by scaling elements of x.
FMINS Minimize a function of several variables.
FMINS('F',X0) attempts to return a vector x which is a local minimizer of F(x) near the starting vector X0. 'F' is a string containing the name of the objective function to be minimized. F(x) should be a scalar valued function of a vector variable.
FMINS('F',X0,OPTIONS) uses a vector of control parameters. If OPTIONS(1) is nonzero, intermediate steps in the solution are displayed; the default is OPTIONS(1) = 0. OPTIONS(2) is the termination tolerance for x; the default is 1.e-4. OPTIONS(3) is the termination tolerance for F(x); the default is 1.e-4. OPTIONS(14) is the maximum number of steps; the default is OPTIONS(14) = 500. The other components of OPTIONS are not used as input control parameters by FMIN. For more information, see FOPTIONS.
FMINS('F',X0,OPTIONS,[],P1,P2,...) provides for up to 10 additional arguments which are passed to the objective function, F(X,P1,P2,...)
FMINS uses a simplex search method.
See also FMIN.
Reference: J. E. Dennis, Jr. and D. J. Woods, New Computing Environments: Microcomputers in Large-Scale Computing, edited by A. Wouk, SIAM, 1987, pp. 116-122.
Definition at line 222 of file vnl_amoeba.cxx.
| void vnl_amoebaFit::amoeba | ( | vnl_vector< double > & | x, |
| const vnl_vector< double > & | dx | ||
| ) |
Perform optimisation. Start simplex defined by adding dx[i] to each x[i].
Definition at line 232 of file vnl_amoeba.cxx.
| void vnl_amoebaFit::amoeba | ( | vnl_vector< double > & | x, |
| std::vector< vnl_amoeba_SimplexCorner > & | simplex | ||
| ) |
Perform optimisation, given simplex to start.
Definition at line 243 of file vnl_amoeba.cxx.
|
inline |
Definition at line 57 of file vnl_amoeba.cxx.
|
inlineinherited |
Definition at line 80 of file vnl_amoeba.h.
|
inlineinherited |
Number of evaluations used in last call to minimize.
Definition at line 83 of file vnl_amoeba.h.
|
inherited |
Modify x to minimise function supplied in constructor.
Start simplex defined by scaling elements of x
Definition at line 347 of file vnl_amoeba.cxx.
|
inherited |
Perform optimisation.
Perform optimisation. Start simplex defined by adding dx[i] to each x[i].
Start simplex defined by adding dx[i] to each x[i]
Definition at line 356 of file vnl_amoeba.cxx.
|
staticinherited |
|
staticinherited |
Modify x so as to minimise f(x).
Static method.
Start simplex defined by adding dx[i] to each x[i]
Definition at line 383 of file vnl_amoeba.cxx.
|
staticinherited |
Modify x so as to minimise f(x).
Static method.
delta defines relative size of initial simplex ie the i'th vertex has xi[i] = x[i]*(1+delta)
Definition at line 372 of file vnl_amoeba.cxx.
|
staticinherited |
Modify x so as to minimise f(x).
Definition at line 410 of file vnl_amoeba.cxx.
|
inline |
Definition at line 61 of file vnl_amoeba.cxx.
|
inline |
Definition at line 68 of file vnl_amoeba.cxx.
|
inlineinherited |
Define tolerance on function evaluation.
Definition at line 58 of file vnl_amoeba.h.
|
inlineinherited |
Define maximum number of iterations to use.
Definition at line 52 of file vnl_amoeba.h.
|
inlineinherited |
Define scaling used to select starting vertices relative to initial x0.
I.e. the i'th vertex has x[i] = x0[i]*(1+relative_diameter)
Definition at line 62 of file vnl_amoeba.h.
| void vnl_amoebaFit::set_up_simplex_absolute | ( | std::vector< vnl_amoeba_SimplexCorner > & | simplex, |
| const vnl_vector< double > & | x, | ||
| const vnl_vector< double > & | dx | ||
| ) |
Initialise the simplex given one corner, x and displacements of others.
Definition at line 176 of file vnl_amoeba.cxx.
| void vnl_amoebaFit::set_up_simplex_relative | ( | std::vector< vnl_amoeba_SimplexCorner > & | simplex, |
| const vnl_vector< double > & | x | ||
| ) |
Initialise the simplex given one corner, x (scale each element to get other corners).
Initialise the simplex given one corner, x.
Definition at line 149 of file vnl_amoeba.cxx.
|
inlineinherited |
Define tolerance on elements of x.
Definition at line 55 of file vnl_amoeba.h.
|
inlineinherited |
Definition at line 64 of file vnl_amoeba.h.
| int vnl_amoebaFit::cnt |
Definition at line 33 of file vnl_amoeba.cxx.
|
staticinherited |
Definition at line 103 of file vnl_amoeba.h.
|
protectedinherited |
Definition at line 107 of file vnl_amoeba.h.
|
inherited |
Definition at line 49 of file vnl_amoeba.h.
|
protectedinherited |
Definition at line 106 of file vnl_amoeba.h.
|
inherited |
Definition at line 47 of file vnl_amoeba.h.
|
protectedinherited |
Definition at line 108 of file vnl_amoeba.h.
|
inherited |
Scaling used to select starting vertices relative to initial x0.
I.e. the i'th vertex has x[i] = x0[i]*(1+relative_diameter)
Definition at line 67 of file vnl_amoeba.h.
|
inherited |
Definition at line 46 of file vnl_amoeba.h.
|
inherited |
Definition at line 48 of file vnl_amoeba.h.
|
inherited |
Definition at line 68 of file vnl_amoeba.h.
1.8.15