swh:1:snp:81eadaa089e8253d8469bcef66aa332632c6c669
Tip revision: c1688b374d201c13fb40b4dda2d2a89e34b94ec6 authored by Hans W. Borchers on 23 January 2021, 09:10:02 UTC
version 2.3.3
version 2.3.3
Tip revision: c1688b3
pchip.Rd
\name{pchip}
\alias{pchip}
\alias{pchipfun}
\title{Hermitean Interpolation Polynomials}
\description{
Piecewise Cubic Hermitean Interpolation Polynomials.
}
\usage{
pchip(xi, yi, x)
pchipfun(xi, yi)
}
\arguments{
\item{xi, yi}{x- and y-coordinates of supporting nodes.}
\item{x}{x-coordinates of interpolation points.}
}
\details{
\code{pchip} is a `shape-preserving' piecewise cubic Hermite polynomial
approach that apptempts to determine slopes such that function values do
not overshoot data values.
\code{pchipfun} is a wrapper around \code{pchip} and returns a function.
Both \code{pchip} and the function returned by \code{pchipfun} are vectorized.
\code{xi} and \code{yi} must be vectors of the same length greater or equal 3
(for cubic interpolation to be possible), and \code{xi} must be sorted.
\code{pchip} can be applied to points outside \code{[min(xi), max(xi)]}, but
the result does not make much sense outside this interval.
}
\value{
Values of interpolated data at points \code{x}.
}
\references{
Moler, C. (2004). Numerical Computing with Matlab. Revised Reprint, SIAM.
}
\author{
Copyright of the Matlab version from Cleve Moler in his book ``Numerical
Computing with Matlab'', Chapter 3 on Interpolation.
R Version by Hans W. Borchers, 2011.
}
\seealso{
\code{\link{interp1}}
}
\examples{
x <- c(1, 2, 3, 4, 5, 6)
y <- c(16, 18, 21, 17, 15, 12)
pchip(x, y, seq(1, 6, by = 0.5))
fp <- pchipfun(x, y)
fp(seq(1, 6, by = 0.5))
\dontrun{
plot(x, y, col="red", xlim=c(0,7), ylim=c(10,22),
main = "Spline and 'pchip' Interpolation")
grid()
xs <- seq(1, 6, len=51)
ys <- interp1(x, y, xs, "spline")
lines(xs, ys, col="cyan")
yp <- pchip(x, y, xs)
lines(xs, yp, col = "magenta")}
}
\keyword{ math }