The term "spline" is used to refer to a wide class of functions that are used in applications requiring data interpolation and/or smoothing.
Smoothing splines may be viewed as generalizations of interpolation splines where the functions are determined to minimize a weighted combination of the average squared approximation error over observed data and the roughness measure.
For a number of meaningful definitions of the roughness measure, the spline functions are found to be finite dimensional in nature, which is the primary reason for their utility in computations and representation.
According to Gerald Farin, B-splines were explored as early as the nineteenth century by Nikolai Lobachevsky at Kazan University in Russia.
They were first used as a replacement for polynomials in interpolation, then as a tool to construct smooth and flexible shapes in computer graphics.
In the foreword to (Bartels et al., 1987), Robin Forrest describes "lofting", a technique used in the British aircraft industry during World War II to construct templates for airplanes by passing thin wooden strips (called "splines") through points laid out on the floor of a large design loft, a technique borrowed from ship-hull design.
The successful design was then plotted on graph paper and the key points of the plot were re-plotted on larger graph paper to full size.
The thin wooden strips provided an interpolation of the key points into smooth curves.
The strips would be held in place at discrete points (called "ducks" by Forrest; Schoenberg used "dogs" or "rats") and between these points would assume shapes of minimum strain energy.
According to Forrest, one possible impetus for a mathematical model for this process was the potential loss of the critical design components for an entire aircraft should the loft be hit by an enemy bomb.
Conic lofting was replaced by what we would call splines in the early 1960s based on work by J. C. Ferguson at Boeing and (somewhat later) by M.A.
Work was also being done at Pratt & Whitney Aircraft, where two of the authors of (Ahlberg et al., 1967) — the first book-length treatment of splines — were employed, and the David Taylor Model Basin, by Feodor Theilheimer.
The work at General Motors is detailed nicely in (Birkhoff, 1990) and (Young, 1997).
If the knots are equidistantly distributed in the interval [a,b] we say the spline is uniform, otherwise we say it is non-uniform.
That is, at ti the two polynomial pieces Pi–1 and Pi share common derivative values from the derivative of order 0 (the function value) up through the derivative of order ri (in other words, the two adjacent polynomial pieces connect with loss of smoothness of at most n – ri)
In the mathematical study of polynomial splines the question of what happens when two knots, say ti and ti+1, are taken to approach one another and become coincident has an easy answer.
The continuity loss at any point can be considered to be the result of multiple knots located at that point, and a spline type can be completely characterized by its degree n and its extended knot vector
Natural means that the second derivatives of the spline polynomials are zero at the endpoints of the interval of interpolation.
By convention, any such situation indicates a simple discontinuity between the two adjacent polynomial pieces.
It is commonly assumed that any knot vector defining any type of spline has been culled in this fashion.
The classical spline type of degree n used in numerical analysis has continuity
which means that every two adjacent polynomial pieces meet in their value and first n − 1 derivatives at each knot.
This spline type is also used in PostScript as well as in the definition of some computer typographic fonts.
Computer-aided design systems often use an extended concept of a spline known as a Nonuniform rational B-spline (NURBS).
The general expression for the ith C2 interpolating cubic spline at a point x with the natural condition can be found using the formula
The dimension of the space containing all splines of a certain type can be counted from the extended knot vector:
In this degree they may additionally be chosen to be only tangent-continuous (C1); which implies that all interior knots are double.
For each of the representations, some means of evaluation must be found so that values of the spline can be produced on demand.
The de Boor algorithm is an efficient method for evaluating B-splines.
Theory Excel Function Online utilities Computer Code