Learn R Programming

ftsa (version 1.2)

cm.spline: Monotonic interpolating splines

Description

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

Usage

cm.spline(x, y = NULL, n = 3 * length(x), method = "fmm", xmin = min(x),
 xmax = max(x), gulim = 0)

Arguments

Value

splineReturns a list containing components x and y which give the coordinates where interpolation took place, and the interpolated values.splinefunReturns a function which will perform cubic spline interpolation of the given data points. This is often more useful than spline.

Details

Results are identical to splinefun except that Hyman Filtering is used to produce co-monotonic interpolation.

References

G. E. Forsythe and M. A. Malcolm and C. B. Moler (1977) Computer Methods for Mathematical Computations, Englewood Cliffs, New Jersey: Prentice-Hall. J. M. Hyman (1983) "Accurate monotonicity preserving cubic interpolation", SIAM Journal on Scientific Computing, 4(4), 645-654. R. L. Dougherty and A. Edelman and J. M. Hyman (1989) "Nonnegativity, monotonicity, or convexity-preserving cubic and quintic Hermit interpolation", Mathematics of Computation, 52(186), 471-494.

Examples

Run this code
x <- seq(0, 4, l = 20)
y <- sort(rnorm(20))
plot(x,y)
lines(spline(x = x, y = y, n = 201), col = 2) # Not necessarily monotonic
lines(cm.spline(x = x, y = y, n = 201), col = 3) # Monotonic

Run the code above in your browser using DataLab