Newton Search. More...
#include <itpp/optim/newton_search.h>
Public Member Functions | |
Newton_Search () | |
Default constructor. | |
~Newton_Search () | |
Destructor. | |
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) |
Newton Search.
Newton or Quasi-Newton optimization method that try to minimize the objective function
The search is stopped when either criterion 1:
or criterion 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
Definition at line 72 of file newton_search.h.
itpp::Newton_Search::Newton_Search | ( | ) |
Default constructor.
Definition at line 38 of file newton_search.cpp.
|
inline |
Destructor.
Definition at line 78 of file newton_search.h.
void itpp::Newton_Search::set_function | ( | double(* | function )(const vec &) | ) |
Set function pointer.
Definition at line 56 of file newton_search.cpp.
void itpp::Newton_Search::set_gradient | ( | vec(* | gradient )(const vec &) | ) |
Set gradient function pointer.
Definition at line 62 of file newton_search.cpp.
|
inline |
Set both function and gradient function pointers.
Definition at line 85 of file newton_search.h.
Referenced by itpp::fminunc().
void itpp::Newton_Search::set_start_point | ( | const vec & | x, |
const mat & | D ) |
Set start point x
for search and approx inverse Hessian at x
.
Definition at line 68 of file newton_search.cpp.
Referenced by search().
void itpp::Newton_Search::set_start_point | ( | const vec & | x | ) |
Set start point x
for search.
Definition at line 79 of file newton_search.cpp.
References itpp::eye().
vec itpp::Newton_Search::get_solution | ( | ) |
Get solution, function value and gradient at solution point.
Definition at line 254 of file newton_search.cpp.
References it_assert.
bool itpp::Newton_Search::search | ( | ) |
Do the line search.
Definition at line 90 of file newton_search.cpp.
References itpp::abs(), itpp::dot(), itpp::eps, itpp::Line_Search::get_alpha(), itpp::Line_Search::get_no_function_evaluations(), itpp::Line_Search::get_slope_ratio(), it_assert, itpp::max(), itpp::norm(), itpp::outer_product(), itpp::Line_Search::search(), itpp::Line_Search::set_functions(), itpp::Line_Search::set_max_iterations(), itpp::Line_Search::set_max_stepsize(), itpp::Array< T >::set_size(), itpp::Line_Search::set_start_point(), itpp::Line_Search::set_stop_values(), and itpp::zeros().
Referenced by itpp::fminunc(), search(), and search().
bool itpp::Newton_Search::search | ( | vec & | xn | ) |
Do the line search and return solution.
Definition at line 239 of file newton_search.cpp.
References get_solution(), and search().
bool itpp::Newton_Search::search | ( | const vec & | x0, |
vec & | xn ) |
Set starting point, do the Newton search, and return the solution.
Definition at line 246 of file newton_search.cpp.
References get_solution(), search(), and set_start_point().
|
inline |
Return stop value rho.
Definition at line 106 of file newton_search.h.
|
inline |
Return stop value beta.
Definition at line 108 of file newton_search.h.
|
inline |
Return max number of function evaluations.
Definition at line 113 of file newton_search.h.
|
inline |
Return max number of iterations.
Definition at line 118 of file newton_search.h.
double itpp::Newton_Search::get_function_value | ( | ) |
get function value at solution point
Definition at line 260 of file newton_search.cpp.
References it_warning.
double itpp::Newton_Search::get_stop_1 | ( | ) |
get value of stop criterion 1 at solution point
Definition at line 270 of file newton_search.cpp.
References it_warning.
double itpp::Newton_Search::get_stop_2 | ( | ) |
get value of stop criterion 2 at solution point
Definition at line 280 of file newton_search.cpp.
References it_warning.
int itpp::Newton_Search::get_no_iterations | ( | ) |
get number of iterations used to reach solution
Definition at line 290 of file newton_search.cpp.
References it_warning.
int itpp::Newton_Search::get_no_function_evaluations | ( | ) |
get number of function evaluations used to reach solution
Definition at line 300 of file newton_search.cpp.
References it_warning.
|
inline |
|
inline |
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.
Generated on Tue Dec 10 2024 04:49:37 for IT++ by Doxygen 1.12.0