关于三次B样条(cubic B-splines)基函数组规模的疑问及相关考试题目咨询
关于三次B样条(cubic B-splines)基函数组规模的疑问及相关考试题目咨询
嗨,我来帮你理清这个疑惑!你提到的这个点其实是B样条基函数计数里很容易混淆的地方,咱们一步步拆解来看:
- 首先,你记得的“节点数k + 多项式次数d”这个公式,其实对应的是**开放B样条(open B-splines,也叫 clamped B-splines)**的情况,但这里有个关键细节容易被忽略:当我们计算基函数数量时,是否把重复的边界节点算进去了?
- 三次样条要满足边界处的“clamped”约束(简单说就是样条在边界外是线性延伸的,二阶导数为0),这时候通常会把第一个和最后一个节点重复4次(因为三次样条的次数是3,次数+1=4)。题目里给出的是
20,30,40,50,60这5个唯一节点,如果按照开放B样条的规则,实际的完整节点序列应该是20,20,20,20,30,40,50,60,60,60,60,总节点数(含重复)是11个。而基函数数量的正确公式是:总节点数 - 多项式次数 - 1,也就是11 - 3 - 1 = 7,刚好和题目里的数量对上! - 你之前用的“节点数+次数”计算方式,是误把唯一节点数当成了总节点数。换个更直观的计算方式:如果有m个唯一节点,开放d次B样条的基函数数量是
m + d - 1。这里m=5,d=3,代入就是5 + 3 - 1 =7,结果一致。
再结合题目里的Model 4来看:
Model 4:$D_x$ 是年龄x时的死亡人数,$E^c_x$ 是年龄x时的暴露风险,$B_j(X)$ 是一组B样条基函数,$\theta_j$ 是系数
这个模型采用的就是开放三次B样条,所以要求用7个基函数完全合理。
备注:内容来源于stack exchange,提问作者Ronan Geraghty
相关产品推荐
相关产品推荐

