Perform cubic spline monotonic interpolation of given data points, returning either a list of points obtained by the interpolation or a function performing the interpolation. The splines are constrained to be monotonically increasing (i.e., the slope is never negative).
cm.splinefun(x, y = NULL, method = "fmm", gulim=0)
cm.spline(x, y = NULL, n = 3*length(x), method = "fmm", xmin = min(x), xmax = max(x), gulim=0)
|x,y||vectors giving the coordinates of the points to be interpolated. Alternatively a single plotting structure can be specified: see xy.coords.|
|method||specifies the type of spline to be used. Possible values are “fmm”, “natural” and “periodic”.|
|n||interpolation takes place at n equally spaced points spanning the interval [xmin, xmax].|
|xmin||left-hand endpoint of the interpolation interval.|
|xmax||right-hand endpoint of the interpolation interval.|
|gulim||if gulim!=0 then it is taken as the upper limit on the gradient, and interpolant is gradient limited rather than monotonic.|
Results are identical to splinefun except that Hyman Filtering is used to produce co-monotonic interpolation.
|spline||returns a list containing components x and y which give the ordinates where interpolation took place and the interpolated values.|
|splinefun||returns a function which will perform cubic spline interpolation of the given data points. This is often more useful than spline.|
Simon N. Wood, Rob J Hyndman
Forsythe, G. E., Malcolm, M. A. and Moler, C. B. (1977) Computer Methods for Mathematical Computations.
Hyman (1983) SIAM J. Sci. Stat. Comput. 4(4):645-654.
Dougherty, Edelman and Hyman 1989 Mathematics of Computation,52: 471-494.
x <- seq(0,4,l=20) y <- sort(rnorm(20)) plot(x,y) lines(spline(x, y, n = 201), col = 2) # Not necessarily monotonic lines(cm.spline(x, y, n = 201), col = 3) # Monotonic