Rev 7002 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{spline[fun]}\title{Interpolating Splines}\usage{splinefun(x, y, method = "fmm")spline(x, y, n = 3*length(x), method = "fmm",xmin = min(x), xmax = max(x))}\alias{splinefun}\alias{spline}\arguments{\item{x,y}{vectors giving the coordinates of the points to beinterpolated. Alternatively a single plotting structure can bespecified.}\item{method}{specifies the type of spline to be used. Possiblevalues are \code{"fmm"}, \code{"natural"} and \code{"periodic"}.}\item{n}{interpolation takes place at \code{n} equally spaced pointsspanning the interval [\code{xmin}, \code{xmax}].}\item{xmin}{left-hand endpoint of the interpolation interval.}\item{xmax}{right-hand endpoint of the interpolation interval.}}\description{\code{spline} performs cubic spline interpolation of the given datapoints. It returns a list containing components \code{x} and \code{y}which give the ordinates where interpolation took place and theinterpolated values.\code{splinefun} returns a function which will perform cubic splineinterpolation of the given data points. This is often more usefulthan \code{spline}.}\details{If \code{method = "fmm"}, the spline used is that of Forsythe, Malcolmand Moler (an exact cubic is fitted through the four points at eachend of the data, and this is used to determine the end conditions).Natural splines are used when \code{method="natural"}, and periodicsplines when \code{method="periodic"}.}\references{Forsythe, G. E., M. A. Malcolm and C. B. Moler (1977).\emph{Computer Methods for Mathematical Computations}.}\seealso{\code{\link{approx}} and \code{\link{approxfun}} for constant andlinear interpolation.}\examples{op <- par(mfrow = c(2,1), mgp = c(2,.8,0), mar = .1+c(3,3,3,1))n <- 9x <- 1:ny <- rnorm(n)plot(x, y, main = paste("spline[fun](.) through",n,"points"))lines(spline(x, y))lines(spline(x, y, n = 201), col = 2)y <- (x-6)^2plot(x, y, main = "spline(.) -- 3 methods")lines(spline(x, y, n = 201), col = 2)lines(spline(x, y, n = 201, method = "natural"), col = 3)lines(spline(x, y, n = 201, method = "periodic"), col = 4)legend(6,25, c("fmm","natural","periodic"), col=2:4, lty=1)f <- splinefun(x, y)ls(envir = environment(f))splinecoef <- eval(expression(z), envir = environment(f))curve(f(x), 1, 10, col = "green", lwd = 1.5)points(splinecoef, col = "purple", cex = 2)par(op)}\keyword{math}\keyword{dplot}