## Cubic Spline Interpolation Utility |

This page contains a cubic spline interpolation utility. (Note that the interpolant is produced by forcing a **not-a-knot** condition at the endpoints of the interval rather than forcing the second derivatives at the endpoints to be zero; in other words, it is *not* a **natural spline** interpolant).

**References:**

Author: David K. Kahaner, National Bureau of Standards

From the book "Numerical Methods and Software" by

D. Kahaner, C. Moler, and S. Nash

Prentice Hall, 1988

Fritsch, F. N.; and R.E. Carlson.

"Monotone Piecewise Cubic Interpolation"

SIAM J. Numer. Anal. 17, 2 (April 1980), 238 - 246

Fritsch, F. N.; and J. Butland.

"A Method for Constructing Local Monotone Piecewise Cubic Interpolants"

Lawrence Livermore National Laboratory

Preprint UCRL-87559 (April 1982)

De Boor, Carl.

"A Practical Guide to Splines"

Springer-Verlag, New York

1978

Fritsch, F. N.

"Piecewise Cubic Hermite Interpolation Package, Final Specifications"

Lawrence Livermore National Laboratory

Computer Documentation UCID-30194

August 1982

The utility posted on this page is based on the sub-programs PCHEV and PCHEZ written by David K. Kahaner. These are top-level programs that control several sub-routines from the SLATEC collection. The original programs were written in FORTRAN and have been translated to Javascript here. Although all care has been taken to ensure that the sub-routines were translated accurately, some errors may have crept into the translation. These errors are mine; the original FORTRAN routines have been thoroughly tested and work properly. Please report any errors to the webmaster.

**HOW TO USE THIS UTILITY**

In the "Known Data" box below, enter the known (x, y) data pairs.

The data pairs should be entered one pair per line, with blanks between them--nothing else. No commas, periods, brackets, etc. (Also note that numbers in scientific notation are NOT recognized). For example, assume we have data that follows a **y = x*x ** relationship. Data input to the box should look as follows:

0.5 | 0.25 | |

1 | 1 | |

2 | 4 | |

3 | 9 | |

4 | 16 | |

5 | 25 |

Note that **the data pairs must be entered in order of increasing x-value**.

A maximum of fifty data pairs may be entered; if more than fifty data pairs are entered, any pairs after the fiftieth pair will be ignored.

In the "Points at which Interpolant Sought" section, enter the x-values at which the interpolating y-values are to be calculated. Once you click the "Interpolate" button, this utility will then calculate the values of y which are a cubic spline interpolation for the data at the specified x-points. Note that this utility accepts a maximum of ten x-points at which to calculate the corresponding y-value. If you need interpolating y-values at more than ten points, just repeatedly re-run the utility, entering the different x-points each time.

**IMPORTANT**: Note the Error Code output.