Piecewise Cubic Hermite Interpolating Polynomial (PCHIP)
yi = pchip(x,y,xi)
pp = pchip(x,y)
yi = pchip(x,y,xi) returns vector yi containing elements corresponding to the elements of xi and determined by piecewise cubic interpolation within vectors x and y. The vector x specifies the points at which the data y is given. If y is a matrix, then the interpolation is performed for each column of y and yi is length(xi)-by-size(y,2).
pchip finds values of an underlying interpolating function at intermediate points, such that:
On each subinterval , is the cubic Hermite interpolant to the given values and certain slopes at the two endpoints.
interpolates y, i.e., , and the first derivative is continuous. is probably not continuous; there may be jumps at the .
The slopes at the are chosen in such a way that preserves the shape of the data and respects monotonicity. This means that, on intervals where the data are monotonic, so is ; at points where the data has a local extremum, so does .
x = -3:3; y = [-1 -1 -1 0 1 1 1]; t = -3:.01:3; p = pchip(x,y,t); s = spline(x,y,t); plot(x,y,'o',t,p,'-',t,s,'-.') legend('data','pchip','spline',4)
spline constructs in almost the same way pchip constructs . However, spline chooses the slopes at the differently, namely to make even continuous. This has the following effects:
spline produces a smoother result, i.e. is continuous.
spline produces a more accurate result if the data consists of values of a smooth function.
pchip has no overshoots and less oscillation if the data are not smooth.
pchip is less expensive to set up.
The two are equally expensive to evaluate.
 Fritsch, F. N. and R. E. Carlson, "Monotone Piecewise Cubic Interpolation," SIAM J. Numerical Analysis, Vol. 17, 1980, pp.238-246.
 Kahaner, David, Cleve Moler, Stephen Nash, Numerical Methods and Software, Prentice Hall, 1988.