#include <mroot.h>
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.
examples/ex_mroot.cpp
, see Multi-dimensional solver example .
Definition at line 67 of file mroot.h.
Public Member Functions | |
virtual const char * | type () |
Return the type, "mroot" . | |
virtual int | msolve (size_t n, vec_t &x, param_t &pa, func_t &func)=0 |
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. | |
bool | err_nonconv |
If true, call the error handler if msolve() or msolve_de() does not converge (default true). | |
int | last_conv |
Zero if last call to msolve() or msolve_de() converged. |
virtual int msolve_de | ( | size_t | n, | |
vec_t & | x, | |||
param_t & | pa, | |||
func_t & | func, | |||
jfunc_t & | dfunc | |||
) | [inline, virtual] |
By default, this function just calls msolve() and ignores the last argument.
Reimplemented in gsl_mroot_hybrids, and gsl_mroot_hybrids< param_t, mm_funct< param_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 = "" | |||
) | [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 gsl_mroot_hybrids).
int last_conv |
This is particularly useful if err_nonconv is false to test if the last call to msolve() or msolve_de() converged.
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