Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] aaqo_v1_0.gz(11 Kbytes)|
|Manuscript Title: Spline interpolation and smoothing of data.|
|Authors: R.E. Cutkosky, C. Pomponiu|
|Program title: SPLINESMOOTH|
|Catalogue identifier: AAQO_v1_0|
Distribution format: gz
|Journal reference: Comput. Phys. Commun. 23(1981)287|
|Programming language: Fortran.|
|Computer: DEC VAX 11/780.|
|Operating system: VAX/VMS.|
|RAM: 33K words|
|Word size: 32|
|Keywords: General purpose, Interpolation, Approximation, Smoothing, Splines, Chi-square-fit, Orthogonalization, Constrained optimization.|
Nature of problem:
In many branches of physics, a recurrent problem is that of smoothing a set of experimental data, measured at a sequence of values of some independent variable. This is done as a first step towards interpolating, integrating, differentiating, or otherwise transforming the function represented by the data. Sometimes a suitable family of theoretically motivated functions can be used to fit the data; in other more general cases, it is convenient to use functions which have a general character. We present here a method which uses spline functions for smoothing a given set of data. The use of splines is suggested by the well-known utility of these functions for interpolating data given without error, but in the presence of errors different techniques for their construction are required in order to preserve statistical and numerical stability.
A sequence of expansion functions is generated by applying the spline kernel to "seed functions". A stiffness parameter determines the truncation of the expansion (and also enters into their recurrence relations). The value of the stiffness parameter can be assigned on an a prior basis, or it can be adjusted in accordance with the maximum- likelihood principle.
The data depend on only one independent variable, and are assumed to have uncorrelated errors.
For each new stiffness value, the corresponding orthonormal basis is constructed by rotating the previous one, thus saving time while preserving accuracy.
With 100 data points and 18 vectors, the running time was 13 s for one pass, and 0.5 s for each subsequent iteration.
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|