## Introduction

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.

## Syntax

*fit* [*xrange*][*yrange*] *function* "*datafile*" *using* *modifier* *via* *parameter_file*

## Parameters

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 |

## Short introduction

`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.