Skip to content

方法Method

B样条导数与形状证书

B-spline differentiation · Spline derivative coefficients

把样条求导变成缩放后的相邻系数差,并用单侧导数和符号检查连续性、单调性与凸性。

形式陈述 ​

设 p≥1,s=∑i=0N−1ciBi,p 使用夹持节点向量 t。在各个开跨度上,

s′(x)=∑i=1N−1diBi,p−1(x),di=p(ci−ci−1)ti+p−ti.

右侧低阶基仍以原节点的下标书写。若所有内部重数都不超过 p,删去原节点向量首尾各一项,并把 d1,…,dN−1 从零重新编号,就得到次数 p−1 的标准夹持数组。若原曲线有满重数 p+1 的断点,原向量对低一次数已冗余:分母为零的项对应恒零基,仅在形式求和中省略;要交给标准求值接口,应先按这些断点拆成左右段,分别生成各段导数的夹持数组,不能把带未定义系数的原数组直接传入。

公式首先表示每段的经典导数。内部重数 r≤p−1 时,s 至少 C1,左右导数一致,可在节点求通常导数;r=p 时 s 连续,但左右导数可不同;r=p+1 时 s 本身可跳变,此式不包含跳变产生的分布导数项。需要单侧值时,内部用右极限,最右端用左极限。

直觉

将每个基的导数

Bi,p′=pti+p−tiBi,p−1−pti+p+1−ti+1Bi+1,p−1

代入总和。Bi,p−1 从第 i 项收到 pci/(ti+p−ti),从第 i−1 项收到相反的 pci−1/(ti+p−ti),相减就得到 di。夹持向量最外两项的低阶基是零,所以留下 i=1,…,N−1。

这像有限差分,但分母是横跨 p 个节点的距离,不总是相邻跨度。第二次求导时次数与节点向量都已经变化,必须重新应用同一规则,不能直接把原系数做普通二阶差分再除以一个统一 h2。

例子与边界

对 p=2、t=(0,0,0,1,1,2,3,3,3)、c=(0,1,2,0,1,3),导数系数为

(d1,d2,d3,d4,d5)=(2,2,−4,1,4),

新节点向量为 (0,0,1,1,2,3,3)。令 y=x−1、z=x−2,原曲线逐段为

s(x)={2x,0≤x<1,2−4y+52y2,1≤x<2,12+z+32z2,2≤x≤3.

因此 s′(1−)=2、s′(1+)=−4,值却同为二,正是二重节点的 C0 接合。在简单节点二,左右值都为 1/2、左右导数都为一;二阶导数分别为五和三,所以这一条曲线恰好 C1 而非 C2。

满重数的例子更能检验接口:p=1,t=(0,0,1,1,2,2),c=(0,1,4,5) 的每段导数都为一。中间零分母项被省去,得到的是分段斜率,绝不能据此声称原曲线跨越一时没有跳变。值从一跳到四,需要另外记录。

推论与应用

若 s 在整个区间连续,且所有非零支撑的 di≥0,非负基保证每段 s′≥0,各段连起来便全局非降。若允许跳变,还须每个跳变量非负。斜率全为正、跳变向下的分段直线,就是省略最后条件的反例。

对至少 C1 的曲线,继续得到二阶导数系数;若它们全非负,则 s″≥0,从而曲线凸。更一般的连续分段曲线还需检查一阶导数的跳跃方向。系数符号是方便的充分证书,不是一般必要条件:单段三次 Bernstein 系数 (0,1,4/5,9/5) 有一个负差,而其导数 Bernstein 系数为 (3,−3/5,3),导数实际是 3−36x/5+36x2/5≥6/5>0。

导数控制也可用于全区间误差上界:若残差的导数绝对值有已证上界,有限网格的最大误差才能加上可计算的漏采样余量。

从导数符号到直线穿越次数 ​

本页的非负导数系数给出单调或凸的充分条件。B样条全非负配点与变号缩减进一步回答“曲线相对任意指定直线最多强变号多少次”:用Greville位置减去该直线的系数,再以插结的有序凸混合证明变号不增。连续曲线可作穿线解释;满重数跳点可能越过一条直线而不与它相交,不能把强变号一律数作零点。

参考资料
关系图谱6 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系