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] acml_v1_0.gz(24 Kbytes)
Manuscript Title: A flexible least squares routine for general Mossbauer effect spectra fitting.
Authors: W. Wilson, L.J. Swartzendruber
Program title: FLEXIBLE MOSSBAUER FIT ROUTINE
Catalogue identifier: ACML_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 7(1974)151
Programming language: Fortran.
Computer: UNIVAC 1108.
Operating system: EXEC 8.
RAM: 40K words
Word size: 36
Keywords: Nuclear physics, Mossbauer effect, Iterative solution, Least squares fit, Non-linear, Linearization.
Classification: 17.3.

Nature of problem:
A general program is presented to fit experimental Mossbauer data to theoretical functions. The program is designed to allow the theoretical function to be easily changed.

Solution method:
The technique of linearization and successive iteration is used to obtain a least squares fit of a non-linear theoretical function to the experimental data.

Restrictions:
The present version of the program is dimensioned so that the maximum number of independent parameters the fitting function may have is 100 and a maximum of 40 of these may be varied at one time. The maximum number of data points allowed is 500. Any of these restrictions may be removed by increasing the dimensions of the appropriate variables.

Unusual features:
The fitting function may be changed simply by replacing the appropriate subroutine. Thus a library of often used functions may be constructed. Partial derivatives the respect to the various parameters may be fit only over the range of data in which it has significance. The option of which parameters are to be varied is left to the user so that constraints and interdependence of variables may be easily taken into account by building them into the fitting function subroutine.

Running time:
On the UNIVAC 1108 at the National Bureau of Standards the loading and assembly of the program takes about 15 s. The execution time is highly dependent on the number of data points, the complexity of the fitting function, the accuracy of the inital estimates, and the number of partial derivatives which are evaluated numerically. In a trial run, in which reasonable estimates were used and 6 partial derivatives were evaluated numerically, a 15 parameter function was fit to 320 data points in approximatley 11 s. The bulk of the time is utilized in calculating partial derivatives numerically. If m parameters are being varied in the fit, each of which calls for numerical evaluation of partial derivatives, the theoretical function subroutine is called m+4 times for each iteration. Since 3 iterations are usually sufficient, a good estimate of the required time is 3tauf(m+4) + tau c, where tau f is the amount of time to calculate the theoretical function once and Tau c is the time consumed in compilation and output.