Description Usage Arguments Details Value Author(s) References See Also Examples
Function which uses output from sps_prep to evaluate spline on given set of tabulation points
1 |
spline |
Output of sps_prep function; list containing values of data points, derivatives on the points, degrees of polynomial, etc. see: |
x |
Vector or matrix of x-coordinates of tabulation points. |
der.x |
vector of requested derivatives of spline with respect to x. By default will return values of spline. If |
y |
Vector or matrix of y-coordinates of tabulation points. For bi-variate case only. |
der.y |
For bi-variate case only. Vector of requested derivatives of spline with respect to y. By default will return values of spline. If |
grid |
For bi-variate case only. If |
Der.x and der.y need some more attention for bi-variate case. If they are not provided they are both assumed to be 0. If user needs more then 1 derivative then length of der.x and der.y must be equal. For example if der.x = c(0,1,0) and der.y = c(0,0,1) than function will return values of spline, values of partial derivative with respect to x and partial derivative with respect to y, respectively, on each tabulation point in a form of list of vectors or matrices.
If length of der.x = 1 function will return vector or matrix of values, depending on parameter grid. Otherwise if length of der.x is greater than 1, function will return list of vectors or matrices depending on grid.
Szymon Sacher <s1340144@sms.ed.ac.uk> & Andrew Clausen <andrew.clausen@ed.ac.uk>
Excerpts adapted from Fortran code Copyright (C) Paolo Costantini
Costantini, P; Fontanella, F; 'Shape Preserving Bi-variate Interpolation' sSIAM J NUMER. ANAL. Vol. 27, No.2, pp. 488-506, April 1990
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 | ## Univariate example
x <- c( 1, 2, 3, 4, 5, 6)
y <- c(16 ,18, 21, 17, 15, 12)
spline <- sps_prep(x, y, shape = 'monotonicity', smoothness = 2)
plot(seq(1, 6, 0.1), sps_eval(spline, seq(1, 6, 0.1)))
## Bivariate example
fun <- function(x,y) pmax(0, sin(pi*x) * sin(pi*y))
X <- seq(-1, 2, 0.5)
Y <- seq(-1, 1, 0.5)
grid <- mesh(X, Y)
Z <- matrix(fun(grid$x, grid$y), ncol = length(Y))
X_ <- seq(-1, 2, 0.05)
Y_ <- seq(-1, 1, 0.05)
# Prepare spline parameters
spline <- sps_prep(X, Y, Z)
# evaluate spline on grid of tabulation points spanned by X_ and Y_
eval <- sps_eval(spline, x = X_, y = Y_, grid = TRUE)
# Plot resulting data
persp3D(X_, Y_, eval)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.