**What is fitting?** Suppose that you have a table of numbers, Y_{i}
and X_{i}, i=0..n. Then suppose that you have model representation
for these numeric Y(X) data: Y=f(X,p_{j}), j=1..m, and you want to find
numeric values of p_{j} that made table-defined curve Y_{i}( X_{i})
and model curve Y=f(X,p_{j}) most similar. This process is known as *fitting*.
If model function has linear dependence on fitting parameters, this can be
treated as *linear* fitting, otherwise you will have *non-linear*
fitting problem.

**What is NLSF?** NLSF stands for non-linear least-square fitting. DM2000
uses one of the most popular and effective NLSF algorithms, namely Levenberg-Marquardt
algorithm, that can be thought of as a trust-region modification of the
well-known Gauss-Newton algorithm.

**How to use NLSF fitter?** First you should
plot data to be
processed (this tool works only with active plot serie). Then make plot active and select
Process|LM Fit menu item to display NLSF Fitter window. You will
see your curve on the separate plot. Click "Function" button to input
desirable fitting expression and define initial values of the fitting parameters
in the Parameters table. You should verify parameter values before start fitting
session: click "Update" button and see how fit curve conforms your
data. Also you may change NLSF Options. Click
"Fit" button and when fitter finishes calculation (it may take a lot
of time for slow computers and long expressions) save your results.

In DM2000 you have a wide set of options that allows you to have full control over the fitting process.

- Zoom / UnZoom / Rescale - use these buttons to control plot scale.
- Select - you can fit only points whose coordinates belong selected rectangular plot region.
- Function - click this button to define expression to be fitted. This expression must be composed from internal functions (see expression syntax for more details), operators and only following parameters: cx, p1, p2...p26. Parameters with user-defined names and standard column names a..z currently are NOT allowed.
- Options - click to invoke NLSF Options dialog box.
- Update - fit curve will be plotted with current values of parameters (listed in the parameter table).
- Parameter table lets you
*fix*parameter values (fixed values actually are not fitted). - Fit - click this button to perform up to maximal number of LM iterations.
- Add / Prev / Next - use these buttons to manipulate the parameter set. These are only for your convenience.
- When you click OK button, you may save fitting results in several ways: copy fit curve to selected serie, add fitting results to the Notes window, add parameter set to the selected worksheet and create additional column with the fit curve in the worksheet referenced by fitted serie.

Please keep in mind that the result of your fitting session critically
depends on initial values of parameters because usually your expression will
have a lot of *local* minima that can prevent fitter to find *absolute*
minimum. Probably you will have to select parameter values manually before start
fitting (use Update button to display fit curve and remember intermediate
parameter sets).

NLSF fitter is available via OLE Automation (see IDMApplication interface for more details). This feature allows you to create powerful automatic routines for initial parameter evaluation and batch fitting.