Create a periodic interpolation spline, either from x
and
y
vectors, or from a formula/data.frame combination.
periodicSpline(obj1, obj2, knots, period = 2*pi, ord = 4L)
either a numeric vector of x
values or a formula.
if obj1
is numeric this should be a numeric vector
of the same length. If obj1
is a formula this can be an
optional data frame in which to evaluate the names in the formula.
optional numeric vector of knot positions.
positive numeric value giving the period for the
periodic spline. Defaults to 2 * pi
.
integer giving the order of the spline, at least 2. Defaults
to 4. See splineOrder
for a definition of the order of
a spline.
An object that inherits from class spline
. The object can be in
the B-spline representation, in which case it will be a
pbSpline
object, or in the piecewise polynomial representation
(a ppolySpline
object).
# NOT RUN {
require(graphics); require(stats)
xx <- seq( -pi, pi, length.out = 16 )[-1]
yy <- sin( xx )
frm <- data.frame( xx, yy )
pispl <- periodicSpline( xx, yy, period = 2 * pi)
# }
# NOT RUN {
pispl
# }
# NOT RUN {
pispl2 <- periodicSpline( yy ~ xx, frm, period = 2 * pi )
stopifnot(all.equal(pispl, pispl2)) # pispl and pispl2 are the same
plot( pispl ) # displays over one period
points( yy ~ xx, col = "brown")
plot( predict( pispl, seq(-3*pi, 3*pi, length.out = 101) ), type = "l" )
# }
Run the code above in your browser using DataLab