gsl_fit Class Template Reference

#include <gsl_fit.h>

Inheritance diagram for gsl_fit:

fit_base

Detailed Description

template<class param_t, class func_t, class vec_t = ovector_view, class mat_t = omatrix_view, class bool_vec_t = bool *>
class gsl_fit< param_t, func_t, vec_t, mat_t, bool_vec_t >

Non-linear least-squares fitting class (GSL).

The GSL-based fitting class using a Levenberg-Marquardt type algorithm. The algorithm stops when

\[ |dx_i| < \mathrm{epsabs}+\mathrm{epsrel}\times|x_i| \]

where $dx$ is the last step and $x$ is the current position. If test_gradient is true, then additionally fit() requires that

\[ \sum_i |g_i| < \mathrm{epsabs} \]

where $g_i$ is the $i$-th component of the gradient of the function $\Phi(x)$ where

\[ \Phi(x) = || F(x) ||^2 \]

Todo:
Properly generalize other vector types than ovector_view
Todo:
Allow the user to specify the derivatives
Todo:
Fix so that the user can specify automatic scaling of the fitting parameters, where the initial guess are used for scaling so that the fitting parameters are near unity.

Definition at line 66 of file gsl_fit.h.


Public Member Functions

 gsl_fit ()
virtual ~gsl_fit ()
virtual int fit (size_t ndat, vec_t &xdat, vec_t &ydat, vec_t &yerr, size_t npar, vec_t &par, mat_t &covar, double &chi2, param_t &pa, func_t &fitfun)
 Fit the data specified in (xdat,ydat) to the function fitfun with the parameters in par.
virtual const char * type ()
 Return string denoting type ("gsl_fit").

Data Fields

int max_iter
 (default 500)
double epsabs
 (default 1.0e-4)
double epsrel
 (default 1.0e-4)
bool test_gradient
 If true, test the gradient also (default false).
bool use_scaled
 Use the scaled routine if true (default true).

Protected Member Functions

virtual int print_iter (int nv, gsl_vector *x, gsl_vector *dx, int iter, double l_epsabs, double l_epsrel)
 Print the progress in the current iteration.

Static Protected Member Functions

static int func (const gsl_vector *x, void *pa, gsl_vector *f)
 Evaluate the function.
static int dfunc (const gsl_vector *x, void *pa, gsl_matrix *jac)
 Evaluate the jacobian.
static int fdfunc (const gsl_vector *x, void *pa, gsl_vector *f, gsl_matrix *jac)
 Evaluate the function and the jacobian.

Data Structures

struct  func_par
 A structure for passing to the functions func(), dfunc(), and fdfunc(). More...

Member Function Documentation

virtual int fit ( size_t  ndat,
vec_t &  xdat,
vec_t &  ydat,
vec_t &  yerr,
size_t  npar,
vec_t &  par,
mat_t &  covar,
double &  chi2,
param_t &  pa,
func_t &  fitfun 
) [inline, virtual]

Fit the data specified in (xdat,ydat) to the function fitfun with the parameters in par.

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

Reimplemented from fit_base.

Definition at line 88 of file gsl_fit.h.


The documentation for this class was generated from the following file:
Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.