The fit command can fit a user-defined function to a set of data points (x,y)
or (x,y,z)
, using an implementation of the nonlinear least-squares (NLLS) Marquardt-Levenberg algorithm.
Any user-defined variable occurring in the function body may serve as a fit parameter, but the return type of the function must be real.
Parameters | Detail |
---|---|
Fitting parameters a , b , c and any letter that had not been used previously | Use letters to represent parameters that will be used to fit a function. E.g.: f(x) = a * exp(b * x) + c , g(x,y) = a*x**2 + b*y**2 + c*x*y |
File parameters start.par | Instead using uninitialised parameters (the Marquardt-Levenberg will automatically initialise for you a=b=c=...=1 ) you can put them in a file start.par and them call with in the parameter_file section. E.g.: fit f(x) 'data.dat' u 1:2 via 'start.par' . An example for the start.par file is shown below |
fit
is used to find a set of parameters that ’best’ fits your data to your user-defined function. The fit is judged on the basis of the sum of the squared differences or ’residuals’ (SSR) between the input data points and the function values, evaluated at the same places. This quantity is often called ’chisquare’ (i.e., the Greek letter chi, to the power of 2). The algorithm attempts to minimize SSR, or more precisely, WSSR, as the residuals are ’weighted’ by the input data errors (or 1.0) before being squared. (Ibidem)
The fit.log
file
After each iteration step a detailed info is given about the fit's state both on the screen and on a so-called log-file fit.log
. This file will never be erased but always appended so that the fit's history isn't lost.