#include <mroot.h>
The template parameters: The template parameter func_t
specifies the functions to solve and should be a class containing a definition
func_t::operator()(size_t nv, const vec_t &x, vec_t &y, param_t &pa);
y
is the value of the functions at x
with parameter pa
and x
and y
are a array-like classes defining operator[]
of size nv
. If the Jacobian matrix is to be specified by the user, then the parameter jfunc_t
specifies the jacobian and should contain the definition jfunc_t::operator(size_t nv, vec_t &x, vec_t &y,
mat_t &j, param_t &pa);
x
is the independent variables, y
is the array of function values, and j
is the Jacobian matrix. This template parameter can be ignored if only the function msolve() will be used.
Definition at line 61 of file mroot.h.
Public Member Functions | |
mroot () | |
virtual | ~mroot () |
virtual const char * | type () |
Return the type, "mroot" . | |
virtual int | msolve (size_t n, vec_t &x, param_t &pa, func_t &func) |
Solve func using x as an initial guess, returning x . | |
virtual int | msolve_de (size_t n, vec_t &x, param_t &pa, func_t &func, jfunc_t &dfunc) |
Solve func with derivatives dfunc using x as an initial guess, returning x . | |
template<class vec2_t, class vec3_t> | |
int | print_iter (size_t n, const vec2_t &x, const vec3_t &y, int iter, double value=0.0, double limit=0.0, std::string comment="") |
Print out iteration information. | |
Data Fields | |
double | tolf |
The maximum value of the functions for success (default 1.0e-8). | |
double | tolx |
The minimum allowable stepsize (default 1.0e-12). | |
int | verbose |
Output control (default 0). | |
int | ntrial |
Maximum number of iterations (default 100). | |
int | last_ntrial |
The number of iterations for in the most recent minimization. |
virtual int msolve_de | ( | size_t | n, | |
vec_t & | x, | |||
param_t & | pa, | |||
func_t & | func, | |||
jfunc_t & | dfunc | |||
) | [inline, virtual] |
Solve func
with derivatives dfunc
using x
as an initial guess, returning x
.
By default, this function just calls msolve() and ignores the last argument.
Reimplemented in gsl_mroot_hybrids.
int print_iter | ( | size_t | n, | |
const vec2_t & | x, | |||
const vec3_t & | y, | |||
int | iter, | |||
double | value = 0.0 , |
|||
double | limit = 0.0 , |
|||
std::string | comment = "" | |||
) | [inline] |
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.
This is implemented as a template class using a new vector type because sometimes the internal vector class is distinct from the user-specified vector class (e.g. in gsl_mroot_hybrids).
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.
Project hosting provided by
,
O2scl Sourceforge Project Page