Cardinal Basis for natural cubic spline interpolation.

1 | ```
cardinalBasis_natSpline(x, xout, deriv = 0)
``` |

`x` |
Numeric vector of design points. |

`xout` |
Numeric vector of new points. |

`deriv` |
Integer. Order of derivation. Can be |

This is a simple and raw interface to `splinterp`

Fortran
subroutine.

A list with several elements

`x` |
Numeric vector of abscissas at which the basis is evaluated. This
is a copy of |

`CB` |
Matrix of the Cardinal Basis function values. |

`deriv` |
Order of derivation as given on input. |

`method` |
Character description of the method involved in the CB determination. |

Yves Deville

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ```
set.seed(123)
n <- 16; nout <- 360
x <- sort(runif(n))
##' ## let 'xout' contain n + nout points including nodes
xout <- sort(c(x, seq(from = x[1] + 1e-8, to = x[n] - 1e-8, length.out = nout)))
res <- cardinalBasis_natSpline(x, xout = xout)
matplot(res$x, res$CB, type = "n", main = "Cardinal Basis")
abline(v = x, h = 1.0, col = "gray")
points(x = x, y = rep(0, n), pch = 21, col = "black", lwd = 2, bg = "white")
matlines(res$x, res$CB, type = "l")
## compare with 'splines'
require(splines)
y <- sin(2* pi * x)
sp <- interpSpline(x, y)
test <- rep(NA, 3)
der <- 0:2
names(test) <- nms <- paste("deriv. ", der, sep = "")
for (i in seq(along = der)) {
resDer <- cardinalBasis_natSpline(x, xout = xout, deriv = der[i])
test[nms[i]] = max(abs(predict(sp, xout, deriv = der[i])$y - resDer$CB \%*\% y))
}
test
## Lebesgue's function
plot(x = xout, y = apply(res$CB, 1, function(x) sum(abs(x))), type = "l",
lwd = 2, col = "orangered", main = "Lebesgue\'s function", log = "y",
xlab = "x", ylab = "L(x)")
points(x = x, y = rep(1, n), pch = 21, col = "black", lwd = 2, bg = "white")
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

All documentation is copyright its authors; we didn't write any of that.