Type: | Package |
Title: | Integral of B-Spline Functions |
Version: | 1.4 |
Date: | 2018-11-06 |
Author: | Feng Chen |
Maintainer: | Feng Chen <feng.chen@unsw.edu.au> |
Description: | Calculate B-spline basis functions with a given set of knots and order, or a B-spline function with a given set of knots and order and set of de Boor points (coefficients), or the integral of a B-spline function. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Imports: | Rcpp (≥ 0.12.17) |
LinkingTo: | Rcpp |
NeedsCompilation: | yes |
Packaged: | 2018-11-06 23:16:47 UTC; Feng Chen |
Repository: | CRAN |
Date/Publication: | 2018-11-09 15:10:03 UTC |
A short title line describing what the package does
Description
Evaluate the integral of a B-spline function, or the B-spline function itself, or the B-spline basis functions.
Details
The function bsbases
calculates the values of the B-spline basis
functions defined by knots knots
and order ord
at sites
x
. The function bspline
evaluates the B-spline function
defined by knots knots
, order ord
, and coefficients
coef
at sites x
. The function ibs
calculates the
integrals of the B-spline function defined by knots knots
,
order ord
, and coefficients coef
from the smallest knot
to each of the values in x
.
Author(s)
Creator: Feng Chen
Maintainer: Feng Chen <feng.chen@unsw.edu.au>
References
de Boor, C. (2001) A Practical Guide to Splines. Revised Edition. Springer: New York.
See Also
B-spline bases
Description
Evaluate the B-spline basis function at the x
value(s).
Usage
bsbases(x, knots, ord)
Arguments
x |
Numerical value or vector. The value(s) at which to evaluate the B spline bases. |
knots |
Numerical vector. The knot positions/sites of the B-spline bases. |
ord |
An integer >=1. The order of the B-spline bases. Equals degree plus 1. |
Value
A numerical matrix of length(x)
rows and
length(knots)-ord
columns.
Note
In contrast to the implementation based on the splineDesign
function from the splines
package, this version of the B-spline
basis functions are left-continuous at the rightmost knot.
Author(s)
Feng Chen <feng.chen@unsw.edu.au>
References
de Boor, C. (2001) A Practical Guide to Splines. Revised Edition. Springer: New York.
See Also
Examples
kns <- c(rep(0,4),1:4*0.2,rep(1,4))
round(bsbases(0:5/5,kns,2),10)
round(splines::splineDesign(kns,0:5/5,2),10)
B-spline function
Description
Evaluate the value of the B-spline function with knots knots
,
order ord
, and coefficients coef
at value(s) x
.
Usage
bspline(x, knots, ord, coef = rep(1, length(knots) - ord))
Arguments
x |
Numerical value or vector. The value(s) at which to evaluate the B-spline. |
knots |
Numerical vector. The knot positions/sites of the B-spline function. |
ord |
An integer >=1. The order of the B-spline function. Equals degree plus 1. |
coef |
A numerical vector. The coefficients (de Boor points) defining the B-spline function. |
Value
A scalar or a vector of length equal to that of x
.
Note
In contrast to the implementation based on the splineDesign
function from the splines
package, this version of the B-spline
function is left-continuous at the rightmost knot site.
Author(s)
Feng Chen <feng.chen@unsw.edu.au>
References
de Boor, C. (2001) A Practical Guide to Splines. Revised Edition. Springer: New York.
See Also
Examples
kns <- c(rep(0,4),1:4*0.2,rep(1,4))
bspline(0:10/10,kns,3,rep(1,length(kns)-3))
splines::splineDesign(kns,0:10/10,3)%*%rep(1,length(kns)-3)
Integratal of a B-spline function
Description
Calculate the integral of a B-spline function.
Usage
ibs(x, knots, ord=4, coef = rep(1, length(knots) - ord))
Arguments
x |
Numerical value or vector. The value(s) at which to evaluate the
integral of the B-spline; must be in the interval bewteen the
smallest knot to the |
knots |
Numerical vector. The knot positions/sites of the B-spline function to be integrated. |
ord |
An integer >=1. The order of the B-spline integrand function to be integrated. Equals degree plus 1. |
coef |
A numerical vector. The coefficients (de Boor points) defining the B-spline integrand function. |
Details
The function returns the integral(s) of the B-spline function
specified by knots knots
, order ord
, and coefficients
coef
, from the minimum knot position to each x
value. The evaluation is based on a closed form expression of the
integral in terms of higher order B-splines, given on page 128 of de
Boor (2001).
Value
A numerical equal to the integral(s).
Author(s)
Feng Chen <feng.chen@unsw.edu.au>
References
de Boor, C (2001) A Practical Guide to Splines. Revised Edition. Springer: New York.
See Also
Examples
kns <- c(rep(0,4),1:4*0.2,rep(1,4))
co <- rnorm(length(kns)-3)
integrate(bspline,knots=kns,ord=3,coef=co,0,0.95)
integrate(function(x)bsbases(x,kns,3) %*% co,0,0.95)
ibs(0.95,kns,3,co)