R: Hermitean Interpolation Polynomials

pchip {pracma} | R Documentation

## Hermitean Interpolation Polynomials

### Description

Piecewise Cubic Hermitean Interpolation Polynomials.

### Usage

    pchip(xi, yi, x)

    pchipfun(xi, yi)

### Arguments

`xi, yi` | x- and y-coordinates of supporting nodes.
`x` | x-coordinates of interpolation points.

### Details

`pchip` is a ‘shape-preserving’ piecewise cubic Hermite polynomial approach that apptempts to determine slopes such that function values do not overshoot data values. `pchipfun` is a wrapper around `pchip` and returns a function. Both `pchip` and the function returned by `pchipfun` are vectorized.

`xi` and `yi` must be vectors of the same length greater or equal 3 (for cubic interpolation to be possible), and `xi` must be sorted. `pchip` can be applied to points outside `[min(xi), max(xi)]`, but the result does not make much sense outside this interval.

### Value

Values of interpolated data at points `x`.

### Author(s)

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.

### References

Moler, C. (2004). Numerical Computing with Matlab. Revised Reprint, SIAM.

### See Also

`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))

    ## Not run:
    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")
    ## End(Not run)

[Package pracma version 2.0.4 Index]