| |||||||||
In the mathematical subfield of numerical analysis spline interpolation is a special form of interpolation where the interpolant is a piecewise polynomial called spline. Spline interpolation is preferred over polynomial interpolation because the interpolation error can be made small even when using low degree polynomials for the spline. Thus spline interpolation avoids the problem of Runge's phenomenon which occurs when using high degree polynomials.
Given n+1 distinct knots xi such that
with n+1 knot values yi we are trying to find a spline function of degree n
S(x) := \left\{\begin{matrix}
S_{k-1}(x) & x \in [x_{k-1}, x_k] \end{matrix}\right. <math>
with each Si(x) a polynomial of degree n.
Using polynomial interpolation the polynomial of degree n which interpolates the data set is uniquely defined by the data points. The spline of degree n which interpolates the same data set is not uniquely defined and we have to fill in n-1 additional degrees of freedom to construct a unique spline interpolant.
Linear spline interpolation is the most simple spline interpolation. Graphically we just connect the the data points by straight lines. The spline is just a polygon.
Algebraically each Si is a linear function constructed as
The spline must be continuous at each data point that is
This is the case as we can easily see
The quadratic spline can be constructed as
S_i(x) = y_i + z_i(x-x_i) + \frac{z_{i+1}-z_i}{2(x_{i+1}-x_i)}(x-x_i)^2 <math>
The coefficients can be found by choosing a <math>z_0<math> and then using the recurrence relation:
z_{i+1} = -z_i + 2 \frac{y_{i+1}-y_i}{x_{i+1}-x_i} <math>
To construct a unique cubic inpolating spline for the given data set we have to specify two additional degress of freedom.
The spline is called clamped cubic spline if
for given values u and v.
It is called periodic cubic spline if
And it is called natural cubic spline if
The natural cubic spline is approximately the same curve as created by the spline device.
It can be defined as
S_i(x) = \frac{z_{i+1} (x-x_i)^3 + z_i (x_{i+1}-x)^3}{6h_i}
<math>
and
The coefficients can be found by solving this system of equations:
\left\{\begin{matrix}
\end{matrix}\right. <math>
Consider the problem of finding a linear spline for
with the following knots
After directly applying the spline formula, we get the following spline:
S(x) = \left\{\begin{matrix} e^{-1} + 2(e^{-\frac{1}{4}} - e^{-1})(x+1) & x \in [-1, -\frac{1}{2}] \\ e^{-\frac{1}{4}} + 2(1-e^{-\frac{1}{4}})(x+\frac{1}{2}) & x \in [-\frac{1}{2},0] \\ 1 + 2(e^{-\frac{1}{4}}-1)x & x \in [0,\frac{1}{2}] \\ e^{-\frac{1}{4}} + 2(e^{-1} - e^{-\frac{1}{4}})(x-\frac{1}{2}) & x \in [\frac{1}{2},1] \\ \end{matrix}\right. <math>
The spline function (blue lines) and the function it is approximating (red dots) are graphed below:
The graph below is an example of a spline function (blue lines) and the function it is approximating (red lines) for k=4: