| ppval {pracma} | R 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 |
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
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)