Here is a table of the types/constructors available for one-dimensional interpolation.

InterpolatorsMethod
LinearInterpolatorpiecewise linear
CubicInterpolatorpiecewise cubic (no smoothness guarantee)
CubicSplineInterpolatorcubic spline, natural or clamped
ChebyshevInterpolatorChebyshev expansion

For the derivative of a ChebyshevInterpolator, use chebyderiv.


Here is a table of the functions available for one-dimensional interpolation.

FunctionsUse
quadraticquadratic interpolation of any 3 points
cubiccubic interpolation of any 4 points
neville$(n-1)$th order polynomial interpolation of any $n$ points
vandermondecoefficients of $(n-1)$th order polynomial passing through $n$ points
cubichermitecubic interpolation using two points with first derivatives

BasicInterpolators.LinearInterpolatorType
LinearInterpolator(x, y, boundaries=StrictBoundaries())

Construct a LinearInterpolator for the points defined by coordinates x and values y

source
LinearInterpolator(f, xa, xb, n, boundaries=StrictBoundaries())

Construct a LinearInterpolator for the function f using n evenly spaced function evaluations in the range [xa,xb]

source
BasicInterpolators.CubicInterpolatorType
CubicInterpolator(x, y, boundaries=StrictBoundaries())

Construct a CubicInterpolator for the points defined by coordinates x and values y

source
CubicInterpolator(f, xa, xb, n, boundaries=StrictBoundaries())

Construct a CubicInterpolator for the function f using n evenly spaced function evaluations in the range [xa,xb]

source
BasicInterpolators.CubicSplineInterpolatorType
CubicSplineInterpolator(x, y, boundaries=StrictBoundaries())

Construct a CubicSplineInterpolator for the points defined by coordinates x and values y. This constructor creates a natural spline, where the second derivative is set to zero at the boundaries.

source
CubicSplineInterpolator(x, y, dy₁, dyₙ, boundaries=StrictBoundaries())

Construct a CubicSplineInterpolator for the points defined by coordinates x and values y. This constructor creates a clamped spline, where the first derivatives at the boundaries are set by dy₁ and dyₙ.

source
CubicSplineInterpolator(f, xa, xb, n, boundaries=StrictBoundaries())

Construct a CubicSplineInterpolator for the function f using n evenly spaced function evaluations in the range [xa,xb]. A natural spline is created.

source
BasicInterpolators.ChebyshevInterpolatorType
ChebyshevInterpolator(x, y)

Construct a ChebyshevInterpolator for the points defined by coordinates x and values y. The x coordinates must be arranged on a chebyshev grid, which can be generated using the chebygrid function.

source
ChebyshevInterpolator(f, xa, xb, n)

Construct a ChebyshevInterpolator for the function f using n function evaluations in the range [xa,xb]. The function evaluations will occur on the chebyshev nodes.

source
BasicInterpolators.quadraticFunction
quadratic(x, xₚ, yₚ)

Perform quadratic polynomial interpolation of the points defined by coordinates xₚ and values yₚ, at the coordinate x, using Neville's algorithm. xₚ and yₚ must both contain three points.

source
BasicInterpolators.cubicFunction
cubic(x, xₚ, yₚ)

Perform cubic polynomial interpolation of the points defined by coordinates xₚ and values yₚ, at the coordinate x, using Neville's algorithm. xₚ and yₚ must both contain four points.

source
BasicInterpolators.nevilleFunction
neville(x, xₚ, yₚ)

Perform polynomial interpolation of the points defined by coordinates xₚ and values yₚ, at the coordinate x, using Neville's algorithm with as many points as are provided. xₚ and yₚ must have the same length. With only 3 or 4 points the quadratic and cubic functions will be considerably faster.

source
BasicInterpolators.vandermondeFunction
vandermonde(x, y)

Generate the coefficients of an arbitrary order polynomial passing through the ponts defined by coordinates x and value y. For n points, n coefficients $[c_0, c_1, ..., c_{n-1}]$ are returned forming the polynomial $c_0 + c_1x + ... + c_{n-1}x^{n-1}$

Warning

Solving for the the coefficients of a high-order polynomial is a notoriously ill-conditioned problem. It is not recommended for orders greater than 5 or 6, although it depends on the application. If you must interpolate with a high-order polynomial, it's better to use the neville function instead of computing coefficients.

source
BasicInterpolators.cubichermiteFunction
cubichermite(x, x₁, x₂, y₁, y₂, y₁′, y₂′)

Interpolate a cubic polynomial between two points, given its values and first derivatives at the points.

source