Skip to content

定理Theorem

B样条全非负配点与变号缩减

B-spline total positivity · Spline variation diminution · 样条变差缩减

通过插结矩阵的有序局部支撑证明配点矩阵的所有子式非负,再将系数变号次数转成曲线穿线次数的证书。

形式陈述 ​

取次数 p≥1、合法夹持节点向量与按节点顺序排列的 N个B样条,保留节点插入的内部右侧值、最右端左极限约定。允许内部节点重数达到 p+1而产生跳变。给定严格递增查询 a≤x1<⋯<xm≤b,普通点值配点矩阵为

Cri=Bi,p(xr),r=1,…,m,i=0,…,N−1.

它是全非负矩阵:任意按原顺序选出的同阶行列子式都非负。样条文献常把这个性质叫total positivity;本页不把它误写成“每个子式严格为正”。局部支撑会产生零条目和零子式。

对实序列 c,令 S−(c)为删去所有零后相邻异号的次数,全零序列取零。对 s=∑iciBi,p,任意上述查询有

(1)S−(s(x1),…,s(xm))≤S−(c).

输出是一份与查询网格无关的变号上界。它数的是强变号,不是所有零点的重数;若函数连续,可解释为穿过水平线,仍不计相切或整段重合。允许跳变时,数值可以从正侧跳到负侧而不取零,不能称为实际交点;正函数触及零再返回正侧不会增加 S−。它也不是PDE格式的离散总变差 ∑i|Ui+1−Ui| 不增长定理。

直觉

一次插结把系数 c变成 c~=Ec。E的每一行只复制一个旧系数,或以非负权重混合相邻两项:第 i行的支撑包含于 {i−1,i},两端按合法下标删去不存在项。所有混合系数之和为一。

从有序支撑到所有子式 ​

取 E任意方形子矩阵,按行列原序展开行列式。一个非零排列项必须让每行匹配到它的支撑列。若两行 r<s出现倒序匹配 j>k,则

j≤r,k≥s−1≥r,

与 j>k矛盾。因此非零项只能对应保序匹配,在所选列的排序中就是恒等排列;它是非负元素的乘积。没有合法匹配时子式为零。所以 E全非负。重复插结的矩阵积仍全非负,因为Cauchy–Binet公式把每个乘积矩阵子式写成

det⁡(AB)I,J=∑|L|=|I|det⁡AI,Ldet⁡BL,J,

每项都非负。

对每个内部查询点,反复插入直至重数为 p,此时对应曲线值就是细化后的一个系数;若该点原已是满重数跳点,选择右侧端系数。a取首系数,b取末系数。所有查询值按顺序形成细化系数序列的子序列。因此 C=PEq⋯E1,其中 P只是保序取行矩阵,也全非负。于是配点矩阵所有子式非负。只查询函数值的条件在这里不可省略:把某些行换成导数行,不再是这种保序取系数操作。

变号缩减的直接证明 ​

从旧系数序列出发,先把每个混合值插到它的两个来源系数之间。若两来源同号,混合值不会有相反符号;若两来源异号,原本的一次变号最多仍是一次;零值按删除规则处理。因此这个加长序列不增加变号。再从中保序抽取真正的新系数序列,只会减少或保留变号。重复插结,最后抽取查询值,就得到式(1)。此证明不需要把一般全非负矩阵的变号定理当作未经说明的黑箱。

例子与边界

一个可以完整验算的矩阵 ​

令 p=2,t=(0,0,0,1,2,2,2),查询 (0,1/2,1,3/2,2)。由原有B样条递推得到

(2)C=(10001/45/81/8001/21/2001/85/81/40001).

中间相邻两行、两列的一个二阶子式为 (5/8)(1/2)−(1/8)(1/2)=1/4。第1、2、4、5行的四阶子式为 25/64−1/64=3/8。第1、2行与第3、4列的子式则为零;全非负不等于严格全正。

取 c=(1,−2,2,−1),有三次系数变号。矩阵乘积为

Cc=(1,−3/4,0,3/4,−1)T,

删除中间零后仍有三次变号,所以这个上界可达到。整条曲线在两段上分别为

s(x)={1−6x+5x2,0≤x≤1,4z−5z2,z=x−1,1≤x≤2.

零点为 1/5,1,9/5,在各点两侧符号均改变,所以全区间正好三次穿越。

非负单位分解还不够 ​

在 [0,1]取

b0(x)={1+cos⁡(4πx)}/2,b1(x)={1−cos⁡(4πx)}/2.

它们非负、和为一。但系数 (1,−1)只有一次变号,函数 b0−b1=cos⁡(4πx)在查询 (0,1/4,1/2,3/4,1)上给 (1,−1,1,−1,1),有四次变号。查询 1/4,1/2的两行矩阵为 (0110),行列式为 −1。缺失的是有序插结结构,而非凸组合数值范围。

若将式(2)的查询行任意倒序,子式符号也可能改变;定理要求行按查询位置、列按B样条支撑顺序排列。数值检测到一个负小子式还应区分真正负值和舍入误差,穷举浮点子式不能代替结构证明。

推论与应用

把变号上界移到任意直线 ​

令Greville位置 ξi=(ti+1+⋯+ti+p)/p。有 ∑iξiBi,p(x)=x:将这些系数代入导数系数公式,非零支撑的导数系数全为一,再结合左端值;满重数时逐块成立且两侧都给节点坐标。因此对 ℓ(x)=α+βx,

s(x)−ℓ(x)=∑i[ci−α−βξi]Bi,p(x),

应用式(1)即知,曲线穿过此直线的次数不超过系数序列 ci−α−βξi的变号次数。对连续曲线,几何上这是控制折线相对此直线的穿越证书;对不连续曲线,只声明左右取值的强变号上界。只需计算有限序列,不必从密集采样猜测未见的交点。

在前例 ξ=(0,1/2,3/2,2)。取直线 ℓ=1/2,偏移系数为 (1/2,−5/2,3/2,−3/2),最多三次穿越。实际首段 1−6x+5x2=1/2在 [0,1]内有一根 (6−26)/10;第二段 4z−5z2=1/2有两根 (4±6)/10,所以三次上界仍达到。

这比原来的导数系数同号证书回答了更广的“能穿过指定直线多少次”问题,但不把同一单调充分条件再算作一个新定理。对连续曲线,控制折线非降或凸可导出相应形状保持;若只需检查导数符号,直接使用原有导数页更短。

拟合数据不是控制系数 ​

式(1)比较的是样条系数和函数值。插值或最小二乘先要从数据求出系数,求解矩阵的逆不必全非负,因而不能据此宣称“单调数据的普通三次插值一定单调”。若要求拟合曲线具有已知形状,可以把导数系数非负等约束施加在求解阶段;这另需约束优化,当前定理没有自动替你施加它。

自测一。 单段二次 s(x)=(x−1/2)2在 [0,1]上的Bernstein系数为 (1/4,−1/4,1/4),两次系数变号;函数只有一个二重零点,却没有符号穿越,故 S−(s)=0。定理是上界,既不保证达到,也不把相切计成两次变号。

自测二。 p=1、t=(0,0,1,1,2,2)、c=(1,1,−1,−1)的曲线能否不取零却有一次强变号?能。它在 [0,1)恒为1,在 [1,2]恒为−1;系数和样本各有一次变号,但没有零点。

参考资料
  • Carl de Boor,B(asic)-Spline Basics,§11与§13,Theorem 13及其推论:细化取值、变号缩减与直线穿越。
  • Carl de Boor,Total Positivity of the Spline Collocation Matrix,Indiana University Mathematics Journal 25(6), 1976,pp.541–551,Theorem 2;本文只使用普通点值配点,并以插结矩阵重新给出非负子式证明。
关系图谱5 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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