pp: Piecewise Polynomial Structures

ppvalR Documentation

Piecewise Polynomial Structures

Description

Make or evaluate a piecewise polynomial.

Usage

mkpp(x, P)

ppval(pp, xx)

Arguments

x

increasing vector of real numbers.

P

matrix containing the coefficients of polynomials in each row.

pp

a piecewise polynomial structure, generated by mkpp.

xx

numerical vector

Details

pp<-mkpp(x,P) builds a piecewise polynomial from its breaks x and coefficients P. x is a monotonically increasing vector of length L+1, and P is an L-by-k matrix where each row contains the coefficients of the polynomial of order k, from highest to lowest exponent, on the interval [x[i],x[i+1]).

ppval(pp,xx) returns the values of the piecewise polynomial pp at the entries of the vector xx. The first and last polynomial will be extended to the left resp. right of the interval [x[1],x[L+1]).

Value

mkpp will return a piecewise polynomial structure, that is a list with components breaks=x, pieces=P, order=k and dim=1 for scalar-valued functions.

Note

Matlab allows to generate vector-valued piecewise polynomials. This may be included in later versions.

See Also

cubicspline

Examples

##  Example: Linear interpolation of the sine function
xs <- linspace(0, pi, 10)
ys <- sin(xs)
P <- matrix(NA, nrow = 9, ncol = 2)
for (i in 1:9) {
    P[i, ] <- c((ys[i+1]-ys[i])/(xs[i+1]-xs[i]), ys[i])
}
ppsin <- mkpp(xs, P)

## Not run: 
plot(xs, ys); grid()
x100 <- linspace(0, pi, 100)
lines(x100, sin(x100), col="darkgray")
ypp <- ppval(ppsin, x100)
lines(x100, ypp, col="red")

## End(Not run)

pracma documentation built on Nov. 10, 2023, 1:14 a.m.