函数 > 数据分析 > 插值与预测 > B-样条插值
  
B-样条插值
B 样条为多项式样条的一组加权基函数。
bspline(vx, vy, u, n) - 返回下列嵌套数组的矢量 vs ( interp 所使用的矢量):interp 的标记、列中包含 vxvy 中数据的 n 次 B 样条系数 (如果在 u 中给出了节点值) 的数组,以及列中包含由节点指定的间隔端点的数组。
bspline 函数可创建线性、二次或三次样条。生成的样条与 lsplinepsplinecspline 不同,因为 bspline 在节点处连接多项式片段,而这些节点可能不同于数据点本身的位置。
下列函数接受数据值顶端的权重,反映相对误差的级别。软件算法通过使用 Durbin-Watson 统计来计算节点串,以确定是接受还是拒绝样条拟合。这样,统计的 B 样条将提供最小数目的节点,以反映所有的数据特征。
Spline2(vx, vy, n, [vw], [u], [level]) - 返回一组用来对 vxvy 中数据进行插值的最佳 n 阶 B 样条节点,可选权重为 vw,可选的所需节点为 u,且具有可选的拒绝度。返回的矢量将成为 Binterp 的第二个自变量。
Binterp(x, b) - 利用 Spline2 函数的输出矢量 b 及第一、第二和第三阶导数,返回与 x 对应的 B 样条 y 插值。
DWS(b) - 返回 Spline2 函数的输出矢量 b 的 Durbin-Watson 统计。
使用 B 样条插值,可通过取三个邻近点,并构建经过一组点的 n 次多项式,来生成穿过这些点的曲线。这些多项式随即在节点处相交以形成完整曲线。当节点数少于数据点数,但仍可构建 y 的合理逼近时,B 样条便是对数据进行压缩的好方法。
上述 B 样条函数基于由 B. J. Thijsse 和 M. A. Hollanders 开发的 Spline2 软件 (该软件在 http://dutsm183.stm.tudelft.nl/software/software.dita 上有所介绍,且允许使用)。
自变量
vx, vy 是长度相同的实数据值矢量。
u 为节点按升序排列的实矢量,其元素个数为 vx,比 n − 1 的元素个数少。节点是指各 B 样条多项式拟合在一起的值,与其他样条不同,节点必须为 x 值。u 中的第一个元素必须小于或等于 vx 中的第一个元素。u 中的最后一个元素必须大于或等于 vx 中的最后一个元素。
n 为等于 1、2 或 3 的整数,分别表示 B 样条中所用的各个分段线性 (n = 1)、二次 (n = 2) 或三次 (n = 3) 多项式拟合。
vw 为长度与 vxvy 相同的样条的可选权重矢量。
level 为拒绝度,以介于 0 和 1 (包含 0 和 1) 之间的百分比表示。
b 是由 Spline2 生成的矢量。
x 是将针对其计算插值曲线的自变量值。要获得最优结果,x 应在 vx 值的范围内。