IT++ Logo
Public Member Functions | List of all members
itpp::Newton_Search Class Reference

Newton Search. More...

#include <itpp/optim/newton_search.h>

Public Member Functions

 Newton_Search ()
 Default constructor.
 ~Newton_Search ()
void set_function (double(*function)(const vec &))
 Set function pointer.
void set_gradient (vec(*gradient)(const vec &))
 Set gradient function pointer.
void set_functions (double(*function)(const vec &), vec(*gradient)(const vec &))
 Set both function and gradient function pointers.
void set_start_point (const vec &x, const mat &D)
 Set start point x for search and approx inverse Hessian at x.
void set_start_point (const vec &x)
 Set start point x for search.
vec get_solution ()
 Get solution, function value and gradient at solution point.
bool search ()
 Do the line search.
bool search (vec &xn)
 Do the line search and return solution.
bool search (const vec &x0, vec &xn)
 Set starting point, do the Newton search, and return the solution.
void set_stop_values (double epsilon_1, double epsilon_2)
 Set stop criterion values.
double get_epsilon_1 ()
 Return stop value rho.
double get_epsilon_2 ()
 Return stop value beta.
void set_max_evaluations (int value)
 Set max number of function evaluations.
int get_max_evaluations ()
 Return max number of function evaluations.
void set_initial_stepsize (double value)
 Set max stepsize.
double get_initial_stepsize ()
 Return max number of iterations.
void set_method (const Newton_Search_Method &method)
 Set Line search method.
double get_function_value ()
 get function value at solution point
double get_stop_1 ()
 get value of stop criterion 1 at solution point
double get_stop_2 ()
 get value of stop criterion 2 at solution point
int get_no_iterations ()
 get number of iterations used to reach solution
int get_no_function_evaluations ()
 get number of function evaluations used to reach solution
void enable_trace ()
 enable trace mode
void disable_trace ()
 disable trace
void get_trace (Array< vec > &xvalues, vec &Fvalues, vec &ngvalues, vec &dvalues)

Detailed Description

Newton Search.

Newton or Quasi-Newton optimization method that try to minimize the objective function $f(\mathbf{x})$ given an initial guess $\mathbf{x}$.

The search is stopped when either criterion 1:

\[ \left\| \mathbf{f}'(\mathbf{x})\right\|_{\infty} \leq \varepsilon_1 \]

or criterion 2:

\[ \left\| d\mathbf{x}\right\|_{2} \leq \varepsilon_2 (\varepsilon_2 + \| \mathbf{x} \|_{2} ) \]

is fulfilled. Another possibility is that the search is stopped when the number of function evaluations exceeds a threshold (100 per default).

The default update rule for the inverse of the Hessian matrix is the BFGS algorithm with $\varepsilon_1 = 10^{-4}$ an $\varepsilon_2 = 10^{-8}$.

Definition at line 72 of file newton_search.h.

Member Function Documentation

void itpp::Newton_Search::get_trace ( Array< vec > &  xvalues,
vec &  Fvalues,
vec &  ngvalues,
vec &  dvalues 

get trace outputs xvalues are the solutions of every iteration Fvalues are the function values ngvalues are the norm(gradient,inf) values dvalues are the delta values

Definition at line 311 of file newton_search.cpp.

References it_warning.

The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Sat Jul 6 2013 10:54:34 for IT++ by Doxygen 1.8.2