“Cox–de Boor 递推从低阶基构造高阶基。将 $s$ 展开后反向收集同一低阶基的系数,就得到上面的 $d i^{(1)}$;再收集一次得 $d i^{(2)}$。最后只剩跨度 $[t…”
形式陈述
取夹持节点向量
空区间的指标函数为零。逐次递推
任一分母为零时,该整项定义为零,不先做浮点除法。最后有
这些函数构成
直觉
零次基先让每个点归属一个小区间,递推再把相邻区间的影响平滑拼接。非零项的分式权重在对应支撑上非负,所以归纳得到非负性。支撑每升一次最多向相邻节点扩大一段,因而始终局部。
单位分解来自重新收集低一阶基的系数。某个
若分母为零,该低阶基本来就是零;最外侧缺失项在
光滑度与基性质为什么成立
在非零节点跨度内对递推求导、合并低阶项,得到
仍把零分母项视为零。代入低阶递推即可核对:同一
先检查连续性。在重数
线性无关可从左向右看。第一段的
例子与边界
取
在第一段
非零。这恰是二次 Bernstein 基。其他节点布局下,不应把每一段都直接套用相同的三个公式。
在
三数和为一。系数
若把最后端点仍当作全部半开区间的外部,程序会返回所有基为零,破坏单位分解。若把每段都同时包含左右端点,零次基又会在节点重叠计数。正确做法是统一半开约定,并仅对最右端取左极限。
推论与应用
对
向量系数同样给局部凸包性质。只改
一次求值可用de Boor 三角算法直接混合活跃系数。导数系数与插结坐标变换则分别改变所表示的函数和所使用的基,两种操作有不同的验算目标。
参考资料
- Carl de Boor,B(asic)-Spline Basics,§§2、5–6:递推与基定理,§8:系数到函数的范数界;§10:导数公式。
- Carl de Boor,On calculating with B-splines,1972,§1,式 (10)、(12)–(20):递推、微分与单位分解。