cubic spline interpolation


Suppose we are given N+1 data points {(xk,yk)} such that

a=x0<<xN. (1)

Then the function S(x) is called a cubic spline interpolation if there exists N cubic polynomials Sk(x) with coefficients sk,i  0i3 such that the following hold.

  1. 1.

    S(x)=Sk(x)=i=03sk,i(x-xk)ix[xk,xk+1]   0kN-1

  2. 2.

    S(xk)=yk   0kN

  3. 3.

    Sk(xk+1)=Sk+1(xk+1)   0kN-2

  4. 4.

    Sk(xk+1)=Sk+1(xk+1)   0kN-2

  5. 5.

    Sk′′(xk+1)=Sk+1′′(xk+1)   0kN-2

The set of points (1) are called the knots. The set of cubic splines on a fixed set of knots, forms a vector spaceMathworldPlanetmath for cubic spline addition and scalar multiplication.

So we see that the cubic spline not only interpolates the data {(xk,yk)} but matches the first and second derivatives at the knots. Notice, from the above definition, one is free to specify constraints on the endpoints. One common end point constraint is S′′(a)=0S′′(b)=0, which is called the natural spline. Other popular choices are the clamped cubic spline, parabolically terminated spline and curvature-adjusted spline. Cubic splines are frequently used in numerical analysis to fit data. Matlab uses the command spline to find cubic spline interpolations with not-a-knot end point conditions. For example, the following commands would find the cubic spline interpolation of the curve 4cos(x)+1 and plot the curve and the interpolation marked with o’s.

x = 0:2*pi;
y = 4*cos(x)+1;
 xx = 0:.001:2*pi;
yy = spline(x,y,xx);
plot(x,y,'o',xx,yy)
Title cubic spline interpolation
Canonical name CubicSplineInterpolation
Date of creation 2013-03-22 13:40:25
Last modified on 2013-03-22 13:40:25
Owner yota (10184)
Last modified by yota (10184)
Numerical id 7
Author yota (10184)
Entry type Definition
Classification msc 65-01