Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
o2scl::fit_min< func_t, vec_t, mat_t > Class Template Reference

Non-linear least-squares fitting class with generic minimizer. More...

#include <fit_min.h>

Inheritance diagram for o2scl::fit_min< func_t, vec_t, mat_t >:
o2scl::fit_base< func_t, vec_t, mat_t > o2scl::fit_nonlin_b< vec_t, mat_t >

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")
 
- Public Member Functions inherited from o2scl::fit_base< func_t, vec_t, mat_t >
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...
 
- Public Member Functions inherited from o2scl::fit_nonlin_b< vec_t, mat_t >
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_funct11def_mmin
 The default minimizer.
 
- Public Attributes inherited from o2scl::fit_base< func_t, vec_t, mat_t >
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.
 
- Public Attributes inherited from o2scl::fit_nonlin_b< vec_t, mat_t >
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, $ \chi^2 $.
 
- Protected Member Functions inherited from o2scl::fit_nonlin_b< vec_t, mat_t >
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, $ \mathrm{trial}=\mathrm{x}+\mathrm{dx} $.
 
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.
 

Detailed Description

template<class func_t = gen_fit_funct<>, class vec_t = boost::numeric::ublas::vector<double>, class mat_t = boost::numeric::ublas::matrix<double>>
class o2scl::fit_min< func_t, vec_t, mat_t >

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

Definition at line 61 of file fit_min.h.

Member Function Documentation

◆ fit()

template<class func_t = gen_fit_funct<>, class vec_t = boost::numeric::ublas::vector<double>, class mat_t = boost::numeric::ublas::matrix<double>>
virtual int o2scl::fit_min< func_t, vec_t, mat_t >::fit ( size_t  npar,
vec_t &  par,
mat_t &  covar,
double &  chi2,
func_t &  fitfun 
)
inlinevirtual

The covariance matrix for the parameters is returned in covar and the value of $ \chi^2 $ is returned in chi2.

Implements o2scl::fit_base< func_t, vec_t, mat_t >.

Definition at line 79 of file fit_min.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).