Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] abmr_v2_0.gz(10 Kbytes)
Manuscript Title: An all-purpose curve-fitting program for functions of several variables.
Authors: E.D. von Meerwall
Program title: UNIFIT4
Catalogue identifier: ABMR_v2_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 18(1979)411
Programming language: Fortran.
Computer: IBM 370/158 AP.
Operating system: OS/MVS.
RAM: 11K words
Word size: 32
Keywords: General purpose, Curve fitting, Least squares, Non-linear, Metric Minimization, Chi-square analysis, Multi-dimensional.
Classification: 4.9.

Nature of problem:
The program fits theoretical models involving up to three independent variables, of arbitrary form, to data and calculates chi-square.

Solution method:
A coarse grid-search and nonlinear metric minimization are used to minimize Chi-squared, thereby optimizing up to 20 adjustable parameters. The gradient of Chi-squared is calculated by a finite-difference method. The program is an extension of an earlier published version.

Restrictions:
The present limits of 20 parameters, and 200 data points, are easily extended.

Unusual features:
To provide the most general and flexible curve-fitting facility,
(1) for each compilation the program may be set to fit any of several model types, for each of which the adjustable parameters may vary in number but must be the first several, the remainder serving as fixed constants;
(2) only the functions, but not their (analytic) derivative expressions, need to be supplied;
(3) the function expressions, and the data, may involve two continuous and one discrete (integer) independent variable;
(4) the fit procedure provides the chi-square of the goodness of fit, and the uncertainties in the fitted parameters.

Running time:
On the IBM 307/158 III CPU, compilation takes about 8 CPU s; a typical 3-5 parameter fit to 100 data points takes about 4-8 s.