当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R splineDesign B 样条的设计矩阵


R语言 splineDesign 位于 splines 包(package)。

说明

根据 x 中的值评估 knots 定义的 B-splines 的设计矩阵。

用法

splineDesign(knots, x, ord = 4, derivs, outer.ok = FALSE,
             sparse = FALSE)
spline.des  (knots, x, ord = 4, derivs, outer.ok = FALSE,
             sparse = FALSE)

参数

knots

结位置的数字向量(如果需要,将按顺序递增排序)。

x

用于评估 B-spline 函数或导数的数值向量。除非 outer.ok 为 true,否则 x 中的值必须位于 “inner” 结 knots[ord]knots[ length(knots) - (ord-1)] 之间。

ord

给出样条函数阶数的正整数。这是每个分段多项式段中的系数数量,因此三次样条的阶数为 4。默认为 4。

derivs

值介于 0ord - 1 之间的整数向量,概念上回收到 x 的长度。给定阶数的导数在 x 位置进行计算。默认为零(或与 x 长度相同的零向量)。

outer.ok

逻辑指示是否应允许 x 位于内部结之外,请参阅 x 参数。

sparse

逻辑指示结果是否应从类 "sparseMatrix" 继承(来自包 Matrix )。

具有 length(x) 行和 length(knots) - ord 列的矩阵。矩阵的第 i 行包含由 knot 向量定义的 B-splines(或 B-splines 的指示导数)的系数,并在 x 的第 i 个值处进行评估。每个B-spline 由一组ord 连续结定义,因此B-splines 的总数为length(knots) - ord

注意

旧的 spline.des 函数采用相同的参数,但返回一个包含多个组件的列表,包括 knotsordderivsdesigndesign 组件与splineDesign 函数的值相同。

例子

require(graphics)
splineDesign(knots = 1:10, x = 4:7)
splineDesign(knots = 1:10, x = 4:7, derivs = 1)
## visualize band structure
Matrix::drop0(zapsmall(6*splineDesign(knots = 1:40, x = 4:37, sparse = TRUE)))

knots <- c(1,1.8,3:5,6.5,7,8.1,9.2,10)  # 10 => 10-4 = 6 Basis splines
x <- seq(min(knots)-1, max(knots)+1, length.out = 501)
bb <- splineDesign(knots, x = x, outer.ok = TRUE)

plot(range(x), c(0,1), type = "n", xlab = "x", ylab = "",
     main =  "B-splines - sum to 1 inside inner knots")
mtext(expression(B[j](x) *"  and "* sum(B[j](x), j == 1, 6)), adj = 0)
abline(v = knots, lty = 3, col = "light gray")
abline(v = knots[c(4,length(knots)-3)], lty = 3, col = "gray10")
lines(x, rowSums(bb), col = "gray", lwd = 2)
matlines(x, bb, ylim = c(0,1), lty = 1)

作者

Douglas Bates and Bill Venables

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Design Matrix for B-splines。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。