Non-linear least-squares fitting class with generic minimizer. More...
#include <fit_min.h>
Public Member Functions | |
virtual int | fit (size_t npar, vec_t &par, mat_t &covar, double &chi2, func_t &fitfun) |
Fit the data specified in (xdat,ydat) to the function fitfun with the parameters in par . More... | |
int | set_mmin (mmin_base< multi_funct11 > &mm) |
Set the mmin object to use (default is of type o2scl::mmin_simp2) | |
virtual const char * | type () |
Return string denoting type ("fit_min") | |
![]() | |
virtual int | print_iter (size_t nv, vec_t &x, double y, int iter, double value=0.0, double limit=0.0) |
Print out iteration information. More... | |
![]() | |
int | test_delta_f (size_t nparm, vec_t &dx, vec_t &x, double l_epsabs, double l_epsrel) |
Test if converged. | |
int | test_gradient_f (size_t nparm, vec_t &g, double l_epsabs) |
Test if converged. | |
Public Attributes | |
mmin_simp2< multi_funct11 > | def_mmin |
The default minimizer. | |
![]() | |
size_t | ntrial |
Maximum number of iterations (default 500) | |
double | tol_abs |
Absolute tolerance (default 1.0e-4) | |
double | tol_rel |
(default 1.0e-4) | |
int | verbose |
An integer describing the verbosity of the output. | |
size_t | n_dat |
The number of data points. | |
size_t | n_par |
The number of parameters. | |
![]() | |
double | tol_rel_covar |
The relative tolerance for the computation of the covariance matrix (default 0) | |
Protected Member Functions | |
double | min_func (size_t np, const vec_t &xp) |
The function to minimize, ![]() | |
![]() | |
double | compute_actual_reduction (double fnorm0, double fnorm1) |
Desc. | |
size_t | count_nsing (const size_t ncols, const mat_t &r2) |
Desc. | |
void | compute_newton_direction (size_t n, const mat_t &r2, const permutation &perm2, const vec_t &qtf2, vec_t &x) |
Desc. | |
void | compute_newton_bound (size_t nd, size_t np, const mat_t &r2, const vec_t &x, double dxnorm, const permutation &perm, const vec_t &diag, vec_t &w) |
Desc. | |
void | compute_gradient_direction (size_t n, const mat_t &r, const permutation &p, const vec_t &qtf2, const vec_t &diag, vec_t &g) |
Desc. | |
void | update_diag (size_t n, const mat_t &J, vec_t &diag2) |
Desc. | |
double | scaled_enorm (const vec_t &d, size_t n, const vec_t &f) |
Euclidean norm of vector f of length n , scaled by vector d . | |
double | compute_delta (vec_t &diag2, size_t n, const vec_t &x) |
Desc. | |
void | compute_rptdx (const mat_t &r2, const permutation &p, size_t N, vec_t &dx, vec_t &rptdx2) |
Desc. | |
int | qrsolv (size_t n, mat_t &r2, const permutation &p, const double lambda, const vec_t &diag2, const vec_t &qtb, vec_t &x, vec_t &sdiag2, vec_t &wa) |
Compute the solution to a least squares system. More... | |
void | compute_newton_correction (size_t n, const mat_t &r2, const vec_t &sdiag2, const permutation &p, vec_t &x, double dxnorm, const vec_t &diag2, vec_t &w2) |
Desc. | |
void | lmpar (mat_t &r2, const permutation &perm2, const vec_t &qtf2, const vec_t &diag2, double delta2, double *par_inout, vec_t &newton2, vec_t &gradient2, vec_t &sdiag2, vec_t &x, vec_t &w2, size_t nparm, size_t ndata) |
Determine Levenburg-Marquardt parameter. | |
void | compute_trial_step (size_t N, vec_t &x, vec_t &dx, vec_t &trial) |
Compute trial step, ![]() | |
int | compute_diag (size_t nparm, size_t ndata, const mat_t &J, vec_t &diag_vec) |
Compute the root of the sum of the squares of the columns of J . More... | |
int | covariance (size_t m, size_t n, const mat_t &J, mat_t &covar, vec_t &norm, mat_t &r, vec_t &tau, permutation &perm, double epsrel) |
Compute the covarance matrix covar given the Jacobian J . More... | |
Protected Attributes | |
vec_t | fval |
Storage for the function values. | |
func_t * | func |
Pointer to the user-specified fitting function. | |
mmin_base< multi_funct11 > * | mmp |
The minimizer. | |
bool | min_set |
True if the minimizer has been set by the user. | |
This minimizes a generic fitting function using any o2scl::mmin_base object, and then uses the GSL routines to calculate the uncertainties in the parameters and the covariance matrix.
This can be useful for fitting problems which might be better handled by more complex minimizers than those that are used in o2scl::fit_nonlin. For problems with many local minima near the global minimum, using a o2scl::anneal_base object with this class can sometimes produce better results than o2scl::fit_nonlin.
Default template arguments
func_t
- gen_fit_funct<>vec_t
- boost::numeric::ublas::vector <double >mat_t
- boost::numeric::ublas::matrix <double >
|
inlinevirtual |
The covariance matrix for the parameters is returned in covar
and the value of is returned in
chi2
.
Implements o2scl::fit_base< func_t, vec_t, mat_t >.
Documentation generated with Doxygen. Provided under the
GNU Free Documentation License (see License Information).