Multidimensional root-finding [abstract base]. More...
#include <mroot.h>
The template parameters: The template parameter func_t
specifies the functions to solve and should be a class containing a definition
where 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
where 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.
There is an example for the usage of the multidimensional solver classes given in examples/ex_mroot.cpp
, see Multi-dimensional solver example .
Public Member Functions | |
virtual const char * | type () |
Return the type, "mroot" . | |
virtual int | msolve (size_t n, vec_t &x, func_t &func)=0 |
Solve func using x as an initial guess, returning x . | |
virtual int | msolve_de (size_t n, vec_t &x, func_t &func, jfunc_t &dfunc) |
Solve func with derivatives dfunc using x as an initial guess, returning x . More... | |
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. More... | |
Public Attributes | |
double | tol_rel |
The maximum value of the functions for success (default 1.0e-8) | |
double | tol_abs |
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. | |
bool | err_nonconv |
If true, call the error handler if msolve() or msolve_de() does not converge (default true) | |
|
inlinevirtual |
By default, this function just calls msolve() and ignores the last argument.
Reimplemented in o2scl::mroot_hybrids< func_t, vec_t, mat_t, jfunc_t >.
|
inline |
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 o2scl::mroot_hybrids).
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).