MATLAB Function Reference
pchip

Piecewise Cubic Hermite Interpolating Polynomial (PCHIP)

Syntax

• ```yi = pchip(x,y,xi)
pp = pchip(x,y)
```

Description

```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)`.

```pp = pchip(x,y) ``` returns a piecewise polynomial structure for use by `ppval`. `x` can be a row or column vector. `y` is a row or column vector of the same length as `x`, or a matrix with `length(x)` columns.

`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 , 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 .

 Note    If is a matrix, satisfies the above for each column of .

Remarks

`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.

Examples

• ```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)

```

See Also

`interp1`, `spline`, `ppval`

References

[1]  Fritsch, F. N. and R. E. Carlson, "Monotone Piecewise Cubic Interpolation," SIAM J. Numerical Analysis, Vol. 17, 1980, pp.238-246.

[2]  Kahaner, David, Cleve Moler, Stephen Nash, Numerical Methods and Software, Prentice Hall, 1988.

 pcg pcode