| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → MATLAB |
| Contents | Index |
| Learn more about MATLAB |
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).
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 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
.
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.
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)

[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 | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |