# Cubic spline

A cubic spline is a spline constructed of piecewise third-order polynomials which pass through a set of control points. The second derivative of each polynomial is commonly set to zero at the endpoints, since this provides a boundary condition that completes the system of equations. This produces a so-called "natural" cubic spline and leads to a simple tridiagonal system which can be solved easily to give the coefficients of the polynomials.

However, this choice is not the only one possible, and other boundary conditions can be used instead. Consider 1-dimensional spline for a set of points. Following Bartels et al. Taking the derivative of in each interval then gives. Solving 2 - 5 for,and then gives. This gives a total of equations for the unknowns. To obtain two more conditions, require that the second derivatives at the endpoints be zero, so.

Rearranging all these equations Bartels et al. Bartels, R. Burden, R. Numerical Analysis, 6th ed. Press, W. Cambridge, England: Cambridge University Press, pp. Weisstein, Eric W. Explore thousands of free applications across science, mathematics, engineering, technology, business, art, finance, social sciences, and more. Walk through homework problems step-by-step from beginning to end.

Hints help you try the next step on your own. Unlimited random practice problems and answers with built-in Step-by-step solutions. Practice online or make a printable study sheet.

Collection of teaching and learning tools built by Wolfram education experts: dynamic textbook, lesson plans, widgets, interactive Demonstrations, and more. MathWorld Book.

Bicubic Interpolation - Computerphile

Terms of Use. Random Spline Polygon. Contact the MathWorld Team. Interactive Spline.Interfaces IInterpolation. Namespaces MathNet. Numerics MathNet. Differentiation MathNet. Distributions MathNet. Financial MathNet. IntegralTransforms MathNet. Integration MathNet. Interpolation MathNet. LinearAlgebra MathNet. Complex MathNet. Solvers MathNet. Complex32 MathNet. Double MathNet.

Factorization MathNet. Single MathNet. Storage MathNet. LinearRegression MathNet. OdeSolvers MathNet. Optimization MathNet. LineSearch MathNet. ObjectiveFunctions MathNet. TrustRegion MathNet. Properties MathNet. Cuda MathNet.

Mkl MathNet. OpenBlas MathNet. FourierTransform MathNet. Random MathNet. RootFinding MathNet. Statistics MathNet. Types in MathNet. Interpolation Interfaces IInterpolation. Cubic Spline Interpolation.

## Numerical Interpolation: Natural Cubic Spline

Supports both differentiation and integration. Akima splines are robust to outliers. CubicSpline InterpolateAkimaSorted Double[] x, Double[] y Create an Akima cubic spline interpolation from a set of x,y value pairs, sorted ascendingly by x. CubicSpline InterpolateHermiteInplace Double[] x, Double[] y, Double[] firstDerivatives Create a Hermite cubic spline interpolation from an unsorted set of x,y value pairs and their slope first derivative.

CubicSpline InterpolateHermiteSorted Double[] x, Double[] y, Double[] firstDerivatives Create a Hermite cubic spline interpolation from a set of x,y value pairs and their slope first derivativesorted ascendingly by x.Cubic spline interpolation is a special case for Spline interpolation that is used very often to avoid the problem of Runge's phenomenon. This method gives an interpolating polynomial that is smoother and has smaller error than some other interpolating polynomials such as Lagrange polynomial and Newton polynomial.

The spline functions S x satisfying this type of boundary condition are called periodic splines. There are several methods that can be used to find the spline function S x according to its corresponding conditions. Since there are 4n coefficients to determine with 4n conditions, we can easily plug the values we know into the 4n conditions and then solve the system of equations.

Note that all the equations are linear with respect to the coefficients, so this is workable and computers can do it quite well. The algorithm given in w:Spline interpolation is also a method by solving the system of equations to obtain the cubic function in the symmetrical form. The other method used quite often is w:Cubic Hermite splinethis gives us the spline in w:Hermite form. According to equation 2we can obtain. For points 0,01,0.

## Cubic Spline Interpolation

Our implementation of cubic splines is well tested and has following distinctive features see below for more complete discussion :. The linear spline is just a piecewise linear function. The linear splines have low precision, it should also be noted that they do not even provide first derivative continuity.

However, in some cases, piecewise linear approximation could be better than higher degree approximation. For example, the linear spline keeps the monotony of a set of points. The cubic Hermite spline is a third-degree spline, whose derivative has given values in nodes. For each node not only the function value is given, but its first derivative value too. Hermite's cubic spline has a continuous first derivative, but its second derivative is discontinuous.

The interpolation accuracy is much better than in the piecewise linear case. Catmull-Rom spline is continuous up to the first derivative; second derivative is discontinuous. It is local: spline values depend only on four function values two on the left of xtwo on the right. It supports two kinds of boundary conditions:. All splines considered on this page are cubic splines - they are all piecewise cubic functions.

However, if someone says "cubic spline", they usually mean a special cubic spline with continuous first and second derivatives. The cubic spline is given by the function values in the nodes and derivative values on the edges of the interpolation interval either of the first or second derivatives.

At last, we can combine different types of boundary conditions for different boundaries. It does make sense if we have only partial information about the function behavior at the boundaries e.

The Akima spline is a special spline which is stable to the outliers. The disadvantage of cubic splines is that they could oscillate in the neighborhood of an outlier. On the graph you can see a set of points having one outlier. The cubic spline with boundary conditions is green-colored. On the intervals which are next to the outlier, the spline noticeably deviates from the given function - because of the outlier.

Akima spline is red-colored. We can see that in contrast to the cubic spline, the Akima spline is less affected by the outliers. The second property which should be taken into account is the non-linearity of the Akima spline interpolation - the result of interpolation of the sum of two functions doesn't equal the sum of the interpolations schemes constructed on the basis of the given functions.

No less than 5 points are required to construct the Akima spline. In the inner area i. Monotone cubic interpolation is a variant of cubic spline that preserves monotonicity of the data being interpolated. Spline construction is performed using one of the functions below.Interpolate data with a piecewise cubic polynomial which is twice continuously differentiable [R53]. The result is represented as a PPoly instance with breakpoints matching the given data.

Values must be real, finite and in strictly increasing order. Array containing values of the dependent variable. It can have arbitrary number of dimensions, but the length along axis see below must match the length of x. Values must be finite. Axis along which y is assumed to be varying.

Meaning that for x[i] the corresponding values are np. Default is 0. Boundary condition type. Two additional equations, given by the boundary conditions, are required to determine all coefficients of polynomials on each segment [R54]. Available conditions are:.

If bool, determines whether to extrapolate to out-of-bounds points based on first and last intervals, or to return NaNs. In this example the cubic spline is used to interpolate a sampled sinusoid. You can see that the spline continuity property holds for the first and second derivatives and violates only for the third derivative.

Source code. In the second example, the unit circle is interpolated with a spline. A periodic boundary condition is used. Note that a circle cannot be exactly represented by a cubic spline.

To increase precision, more breakpoints would be required. A cubic spline can represent this function exactly.

### Cubic Spline

To achieve that we need to specify values and first derivatives at endpoints of the interval. It is a good default when there is no information on boundary conditions. Previous topic scipy. Last updated on Sep 19, Created using Sphinx 1.

The same x which was passed to the constructor.All previously discussed methods of polynomial interpolation fit a set of given points by an nth degree polynomial, and a higher degree polynomial is needed to fit a larger set of data points. A major drawback of such methods is overfittingas domonstrated by the following example. Example: Vased on equally spaced points from to with increment of 1, a function can be approximated by any of the interpolation methods discussed above by polynomial of degreeas shown in the figure below.

We note that the approximation is very poor towards to the two ends where the error is disappointingly high.

This is known as Runge's phenomenonindicating the fact that higher degree polynomial interpolation does not necessarily always produce more accurate result, as the degree of the interpolating polynomial may become unnecessarily high and the polynomial may become oscillatory. This Runge's phenominon is a typical example of overfitting, due to an excessively complex model with too many parameters relative to the observed data, here specifically a polynomial of a degree too high requiring too many coefficients to model the given data points.

Now we consider a different method of spline interpolation, which fits the given points by a piecewise polynomial functionknown as the splinea composite function formed by low-degree polynomials each fitting in the interval between and :.

In the following we consider approximating between any two consecutive points and by a linear, quadratic, and cubic polynomial of first, second, and third degree. Linear spline : with two parameters and can only satisfy the following two equations required for to be continuous:.

Asthe linear spline is continuous at. But as in general. Quadratic spline: with three parameters and can satisfy the following three equations required for to be smooth as well as continuous:.

Cubic spline: with four parametersand can satisfy the following four equations required for to be continuous and smooth :. Example: A function is sampled at the following points:.

The interpolation results based on linear, quadratic and cubic splines are shown in the figure below, together with the original functionand the interpolating polynomialsused as the ith segment of between and. For the quadratic interpolation, based on we get. For the cubic interpolation, we solve the following equation.As Einstein warned. There are approaches to it, and just by going through it we can understand. So here we go! It is categorized mainly under Numerical Interpolation.

One main confusion here is this:. Interpolation vs. The two keys in their differences are how they fit the data and the appropriateness of their usage. In interpolation, you fit the data exactly while approximation, as it name suggests, just approximates. When it comes to appropriateness, interpolation is appropriate to use in smoothing out such noisy data and not appropriate when data points are subject to experimental errors or other sources of significant error.

On the other hand, approximation is mainly appropriate for the design of library routines for computing special functions. The key difference between the two is also about how they fit their data. In curve-fitting, we do not fit all our data points. In interpolation, it forces the function to contain the data points.

### Spline interpolation and fitting

There are 2 Two Families of Functions considered here:. But let us explain both of them to appreciate the method later. Polynomial Interpolation is the simplest and the most common type of interpolation. There are many ways to compute or represent one polynomial but they boil down to the same mathematical function.

As you notice, they are named after their basis. Polynomial Interpolation is useful in many ways; however, one should be careful to its limitation of usage.

As how different methods are born, Piece-wise Interpolation solves these complications. Piece-wise interpolation answers these by fitting a large number of data points with low-degree polynomials. Since we only use low-degree polynomials, we eliminate excessive oscillations and non-convergence. General Concept: Given a set of data points, a different polynomial is used in each interval such that we interpolate several interpolants at successive points.

GOAL: Laying all those concepts and primary concerns, we aim to find an interpolating function that is smooth and does not change too much between node points.