样条曲线

目录

 

Piecewise-polynomial splines

Definition 3.1. 给定非负整数 \(n,\ k\) ,以及严格单增序列 \(\{x_n\}\) 划分 \([a,b]\)

\[a = x_1\le x_2 < \cdots < x_N = b \tag{3.1} \]

与划分 \(\{x_n\}\) 相关的 \(n\) 次 \(k\) 阶光滑样条函数的集合为

\[\mathbb{S}_n^k = \{s:s\in\mathcal{C}^k[a,b];\ \forall i\in[1,N-1],\ s|_{[x_i,x_{i+1}]}\in\mathbb{P}_n\} \tag{3.2} \]

其中 \(x_i\) 称为样条的结.

 

Lemma 3.3. 记 \(m_i = s^{\prime}(f;x_i)\) ,其中 \(s\in\mathbb{S}_3^2\) ,则对每一个 \(i=2,3,\cdots,N-1\) 有

\[\lambda_i m_{i-1} + 2m_i + \mu_i m_{i+1} = 3\lambda_i f[x_{i-1},x_i] + 3\mu_i f[x_i,x_{i+1}] \tag{3.3} \]

其中

\[\lambda_i = \dfrac{x_{i+1}-x_i}{x_{i+1}-x_{i-1}},\quad\mu_i = \dfrac{x_i-x_{i-1}}{x_{i+1}-x_{i-1}} \tag{3.4} \]

\(Proof.\) 此定理用于区间端点一阶导数可求的情况,两个端点恰好构建三次多项式,只需再满足二阶导条件即可;考虑在 \(x_i,\ x_{i+1}\) 两点的 Hermite 插值多项式,计算差分表

\[\begin{matrix} x_i & f_i\\ x_i & f_i & m_i\\ x_{i+1} & f_{i+1} & f[x_i,x_{i+1}] & \cdots\\ x_{i+1} & f_{i+1} & m_{i+1} & \cdots \end{matrix} \]

即可得到在 \([x_i,x_{i+1}]\) 上的插值多项式 \(p_i(x)\) ;由样条的二阶光滑性,在端点的二阶导数应当相同,即 \(p_{i-1}^{\prime\prime}(x_i) = p_{i}^{\prime\prime}(x_i)\) ,代入即证.

 

Lemma 3.4. 记 \(M_i = s^{\prime\prime}(f;x_i)\) ,其中 \(s\in\mathbb{S}_3^2\) ,则对每一个 \(i=2,3,\cdots,N-1\) 有

\[\lambda_i M_{i-1} + 2M_i + \mu_i M_{i+1} = 6f[x_{i-1},x_i,x_{i+1}] \tag{3.5} \]

\(Proof.\) 没有一阶导的信息,直接在 \(x_i\) 处 Taylor 展开

\[s(x) = f_i + s^{\prime}(x_i)(x-x_i) + \dfrac{M_i}{2}(x-x_i)^2 + \dfrac{s^{\prime\prime\prime}(x_i)}{6}(x-x_i)^3,\quad x\in[x_{i},x_{i+1}] \]

其中 \(s^{\prime\prime\prime}(x_i)\) 是三阶右导数。因为 \(s(x)\) 是多项式,展开后没有余项。两边求二阶导,代入 \(x=x_{i+1}\) ,有

\[s^{\prime\prime\prime}(x_i) = \dfrac{M_{i+1}-M_i}{x_{i+1}-x_i} \]

这样展开式中只剩下 \(s^{\prime}(x_i)\) 未知。我们在 \([x_{i-1},x_i]\) 上 Taylor 展开,只需将 \(s^{\prime\prime\prime}(x_i)\) 换成左导数,这样就得到在 \(x_i\) 处相连的两段样条函数,其中三阶左导数为

\[s^{\prime\prime\prime}(x_i) = \dfrac{M_{i-1}-M_i}{x_{i-1}-x_i} \]

分别代入 \(x_{i-1},\ x_{i+1}\) 得到

\[s^{\prime}(x_i) = f[x_i,x_{i+1}] - \dfrac{1}{6}(M_{i+1}+2M_i)(x_{i+1}-x_i)\\ s^{\prime}(x_i) = f[x_{i-1},x_{i}] - \dfrac{1}{6}(M_{i-1}+2M_i)(x_{i-1}-x_i) \]

作差消去 \(s^{\prime}(x_i)\) 即证.

 

Definition 3.5 (Boundary conditions of cubic splines). 普通三次样条包含

  • 完全三次样条 complete cubic spline \(s\in\mathbb{S}_3^2\) 满足边界条件 \(s^{\prime}(f;a) = f^{\prime}(a),\ s^{\prime}(f;b) = f^{\prime}(b)\) .
  • 特定二阶导数的三次样条 cubic spline with specified second derivatives at its end points : \(s^{\prime\prime}(f;a) = f^{\prime\prime}(a),\ s^{\prime\prime}(f;b) = f^{\prime\prime}(b)\) .
  • 自然三次样条 natural cubic spline \(s\in\mathbb{S}_3^2\) 满足边界条件 \(s^{\prime\prime}(f;a) = 0,\ s^{\prime\prime}(f;b) = 0\) .
  • 无结三次样条 not-a-knot cubic spline \(s\in\mathbb{S}_3^2\) 满足 \(s^{\prime\prime\prime}(f;x)\) 在 \(x_2,\ x_{N-1}\) 处存在.
  • 周期三次样条 periodic cubic spline \(s\in\mathbb{S}_3^2\) 满足 \(s(f;b) = f(a),\ s^{\prime}(f;b) = s^{\prime}(f;a),\ s^{\prime\prime}(f;b) = s^{\prime\prime}(f;a)\) .

 

Lemma 3.6. 对完全三次样条 \(s\in\mathbb{S}_3^2\) ,记 \(M_i = s^{\prime\prime}(f;x_i)\) ,则有

\[2M_1 + M_2= 6f[x_1,x_1,x_2]\\ M_{N-1} + 2M_N = 6f[x_{N-1},x_N,x_N] \tag{3.6} \]

\(Proof.\) 注意到只有三个插值条件,不足以构建插值多项式,因此直接在 \(x_1\) 处 Taylor 展开

\[s_1(x) = f_1 + s_1^{\prime}(x_1)(x-x_1) + \dfrac{M_1}{2}(x-x_1)^2 + \dfrac{s_1^{\prime\prime\prime}(x_1)}{6}(x-x_1)^3,\quad x\in[x_{1},x_{2}] \]

类似的,我们两边求二阶导,代入 \(x=x_{2}\) ,得到三阶导

\[s_1^{\prime\prime\prime}(x_1) = \dfrac{M_{2}-M_1}{x_{2}-x_1} \]

与之前不同的是,由于完全三次样条中 \(s_1^{\prime}(x_1) = f^{\prime}(a)\) 已知,因此直接代入 \(x=x_{2}\) 即证.

 

Theorem 3.7. 给定函数 \(f:[a,b]\to\mathbb{R}\) ,存在 \(f\) 的唯一完全/自然/周期三次样条插值多项式 \(s(f;x)\) .

\(Proof.\) 我们分别给出多种样条的插值多项式计算方法

  • 完全三次样条

由于边界处 \(f^{\prime}\) 已经给出,即 \(m_1 = f^{\prime}(x_1),\ m_{N} = f^{\prime}(x_N)\) ,直接利用先前推导的一阶导关系可以建立线性方程组

\[\left( \begin{matrix} 2 & \mu_2\\ \lambda_3 & 2 & \mu_3\\ & \ddots & \ddots & \ddots\\ & & \lambda_{N-2} & 2 & \mu_{N-2}\\ & & & \lambda_{N-1} & 2 \end{matrix} \right) \left( \begin{matrix} m_2\\ m_3\\ \vdots\\ m_{N-2}\\ m_{N-1} \end{matrix} \right) = \left( \begin{matrix} b_2\\ b_3\\ \vdots\\ b_{N-2}\\ b_{N-1} \end{matrix} \right) \]

其中 \(b_i\) 可由 Lemma 3.3 中的等式建立

\[b_2 = 3\lambda_2f[x_{1},x_{2}] + 3\mu_2f[x_2,x_{3}] - \lambda_2m_1,\\ b_{n-1} = 3\lambda_{N-1}f[x_{N-2},x_{N-1}] + 3\mu_if[x_{N-1},x_{N}] - \mu_{N-1}m_N,\\ b_i = 3\lambda_if[x_{i-1},x_{i}] + 3\mu_if[x_i,x_{i+1}],\quad i=3,\cdots,N-2 \]

最终解出对应的一阶导数条件,然后在每段区间上应用 Hermite 插值即可.

 

使用二阶导的关系更为简单

\[\left( \begin{matrix} 2 & 1\\ \lambda_2 & 2 & \mu_2\\ & \ddots & \ddots & \ddots\\ & & \lambda_{N-1} & 2 & \mu_{N-1}\\ & & & 1 & 2 \end{matrix} \right) \left( \begin{matrix} M_1\\ M_2\\ \vdots\\ M_{N-1}\\ M_{N} \end{matrix} \right) = \left( \begin{matrix} b_1\\ b_2\\ \vdots\\ b_{N-1}\\ b_{N} \end{matrix} \right) \]

其中 \(b_i\) 可由 Lemma 3.4 Lemma 3.6 中的等式建立

\[b_1 = 6f[x_1,x_1,x_2],\quad b_N = 6f[x_{N-1},x_N,x_N],\\ b_i = 6f[x_{i-1},x_i,x_{i+1}],\quad i=2,3,\cdots,N-1 \]

最终解出对应的二阶导数条件,然后在区间 \([x_i,x_{i+1}]\) 上代入 Taylor 展开式解出对应的 \(f^{\prime}(x_i),\ f^{\prime\prime\prime}(x_i)\) .

 

  • 自然三次样条

边界处 \(f^{\prime\prime} = 0\) ,没有足够的插值条件,直接在 \(x_1\) 处 Taylor 展开得

\[s_1(x) = f_1 + m_1(x-x_1) + \dfrac{s_1^{\prime\prime\prime}(x_1)}{6}(x-x_1)^3,\quad x\in[x_{1},x_{2}] \]

两边求一阶导,代入 \(x=x_{2}\) ,得到三阶导

\[s_1^{\prime\prime\prime}(x_1) = \dfrac{2(m_2-m_1)}{(x_{2}-x_1)^2} \]

代回后再令 \(x=x_{2}\) 有

\[2m_1+m_2 = 3f[x_1,x_2] \]

类似的,可以证明

\[m_{N-1}+2m_N = 3f[x_{N-1},x_N] \]

结合 Lemma 3.3 中的等式建立线性方程组

\[\left( \begin{matrix} 2 & 1\\ \lambda_2 & 2 & \mu_2\\ & \ddots & \ddots & \ddots\\ & & \lambda_{N-1} & 2 & \mu_{N-1}\\ & & & 1 & 2 \end{matrix} \right) \left( \begin{matrix} m_1\\ m_2\\ \vdots\\ m_{N-1}\\ m_N \end{matrix} \right) = \left( \begin{matrix} b_1\\ b_2\\ \vdots\\ b_{N-1}\\ b_N \end{matrix} \right) \]

其中 \(b_i\) 满足

\[b_1 = 3f[x_1,x_2],\quad b_N = 3f[x_{N-1},x_N],\\ b_i = 3\lambda_if[x_{i-1},x_{i}] + 3\mu_if[x_i,x_{i+1}],\quad i=2,3,\cdots,N-1 \]

最终解出对应的一阶导数条件,然后在每段区间上应用 Hermite 插值即可.

 

  • 周期三次样条

由于边界点有 \(s(f;b) = f(a),\ s^{\prime}(f;b) = s^{\prime}(f;a),\ s^{\prime\prime}(f;b) = s^{\prime\prime}(f;a)\) ,因而利用完全三次样条的公式

\[2M_1 + M_2= 6f[x_1,x_1,x_2]\\ M_{N-1} + 2M_N = 6f[x_{N-1},x_N,x_N] \]

我们消去其中的导数项得到

\[2(x_2-x_1)M_1 + (x_2-x_1)M_2 - (x_N-x_{N-1})M_{N-1} - 2(x_N-x_{N-1})M_N = 6f[x_1,x_2]-6f[x_{N-1},x_N] \]

再利用二阶导数相等有

\[M_1 - M_N = 0 \]

从而与之前 Lemma 3.4 中的关系构成 \(n\) 个线性方程,最终可以解出所有二阶导条件.

 

  • 无结三次样条

在 \(x_2,\ x_{N-1}\) 处 \(f^{\prime\prime\prime}\) 存在,没有足够的插值条件,在 \(x_1\) 处 Taylor 展开得

\[s(x) = f_1 + m_1(x-x_1) + \dfrac{M_1}{2}(x-x_1)^2 + \dfrac{s^{\prime\prime\prime}(x_1)}{6}(x-x_1)^3,\quad x\in[x_{1},x_{2}] \]

两边求三阶导,代入 \(x=x_{2}\) ,得到 \(s^{\prime\prime\prime}(x_2) = s^{\prime\prime\prime}(x_1)\) ,两边求二阶导得到

\[s_1^{\prime\prime\prime}(x_1) = \dfrac{M_{2}-M_1}{x_{2}-x_1} \]

注意到三阶导的存在意味着该展开式实际上是 \([x_1,x_3]\) 上的插值多项式,代入 \(x_2,\ x_3\) 有

\[f[x_1,x_2] = m_1 + \dfrac{M_1}{2}(x_2-x_1) + \dfrac{M_2-M_1}{6}(x_2-x_1)\\ f[x_1,x_3] = m_1 + \dfrac{M_1}{2}(x_3-x_1) + \dfrac{M_2-M_1}{6}(x_3-x_1) \]

上下两式作差得到

\[2M_1+M_2 = \dfrac{6f[x_1,x_3]-6f[x_1,x_2]}{x_3-x_2} \]

类似的,可以证明

\[M_{N-1}+2M_N = \dfrac{6f[x_{N},x_{N-2}]-6f[x_{N},x_{N-1}]}{x_{N-2}-x_{N-1}} \]

因此可以建立线性方程组

\[\left( \begin{matrix} 2 & 1\\ \lambda_2 & 2 & \mu_2\\ & \ddots & \ddots & \ddots\\ & & \lambda_{N-1} & 2 & \mu_{N-1}\\ & & & 1 & 2 \end{matrix} \right) \left( \begin{matrix} M_1\\ M_2\\ \vdots\\ M_{N-1}\\ M_{N} \end{matrix} \right) = \left( \begin{matrix} b_1\\ b_2\\ \vdots\\ b_{N-1}\\ b_{N} \end{matrix} \right) \]

其中 \(b_i\) 可由 Lemma 3.4 Lemma 3.6 中的等式建立

\[b_1 = \dfrac{6f[x_1,x_3]-6f[x_1,x_2]}{x_3-x_2},\\ b_N = \dfrac{6f[x_{N},x_{N-2}]-6f[x_{N},x_{N-1}]}{x_{N-2}-x_{N-1}},\\ b_i = 6f[x_{i-1},x_i,x_{i+1}],\quad i=2,3,\cdots,N-1 \]

最终解出对应的二阶导数条件,然后在区间 \([x_i,x_{i+1}]\) 上代入 Taylor 展开式解出对应的 \(f^{\prime}(x_i),\ f^{\prime\prime\prime}(x_i)\) .

 

  • 特定二阶导数的三次样条

由于二阶导数已知,可以直接代入公式

\[\left( \begin{matrix} 1\\ \lambda_2 & 2 & \mu_2\\ & \ddots & \ddots & \ddots\\ & & \lambda_{N-1} & 2 & \mu_{N-1}\\ & & & & 1 \end{matrix} \right) \left( \begin{matrix} M_1\\ M_2\\ \vdots\\ M_{N-1}\\ M_{N} \end{matrix} \right) = \left( \begin{matrix} b_1\\ b_2\\ \vdots\\ b_{N-1}\\ b_{N} \end{matrix} \right) \]

其中 \(b_i\) 满足

\[b_1 = f^{\prime\prime}(a),\quad b_N = f^{\prime\prime}(b),\\ b_i = 6f[x_{i-1},x_i,x_{i+1}],\quad i=2,3,\cdots,N-1 \]

最终解出对应的二阶导数条件,然后在区间 \([x_i,x_{i+1}]\) 上代入 Taylor 展开式解出对应的 \(f^{\prime}(x_i),\ f^{\prime\prime\prime}(x_i)\) .

 

The minimum properties

Theorem 3.9 (Minimum bending energy). 对任意 \(g\in\mathcal{C}^2[a,b]\) 满足 \(g^{\prime}(a) = f^{\prime}(a),\ g^{\prime}(b) = f^{\prime}(b)\) ,且 \(g(x_i) = f(x_i),\ i=1,2,\cdots, N\) ,则完全三次样条 \(s=s(f;x)\) 满足

\[\int_a^b[s^{\prime\prime}(x)]^2dx\le \int_a^b[g^{\prime\prime}(x)]^2dx \tag{3.7} \]

其中等式成立当且仅当 \(g(x)=s(f;x)\) .

\(Proof.\) 定义 \(\eta(x) = g(x)-s(x)\) ,则对给定的条件有 \(\eta\in\mathcal{C}^2[a,b],\ \eta^{\prime}(a)=\eta^{\prime}(b)=0\) ,且 \(\eta(x_i)=0,\ \forall i=1,2,\cdots,N\) ,则

\[\begin{aligned} \int_a^b[g^{\prime\prime}(x)]^2dx &= \int_a^b[s^{\prime\prime}(x) + \eta^{\prime\prime}(x)]^2dx\\ &= \int_a^b[s^{\prime\prime}(x)]^2dx + \int_a^b[\eta^{\prime\prime}(x)]^2dx + 2\int_a^bs^{\prime\prime}(x)\eta^{\prime\prime}(x)dx \end{aligned} \]

观察最后一项,运用分部积分和分段求和

\[\begin{aligned} \int_a^bs^{\prime\prime}(x)\eta^{\prime\prime}(x)dx &= \sum_{i=1}^{N-1}s^{\prime\prime}(x)\eta^{\prime}(x)|_{x_i}^{x_{i+1}} - \sum_{i=1}^{N-1}\int_{x_i}^{x_{i+1}}s^{\prime\prime\prime}(x)\eta^{\prime}(x)dx\\ &= -\sum_{i=1}^{N-1}s^{\prime\prime\prime}(x)\eta(x)|_{x_i}^{x_{i+1}} + \sum_{i=1}^{N-1}\int_{x_i}^{x_{i+1}}s^{(4)}(x)\eta(x)dx\\ &= 0 \end{aligned} \]

其中分段求和时利用 \(\eta(x_i)=0\) 以及 \(s^{(4)}(x) = 0\) ,从而有

\[\int_a^b[g^{\prime\prime}(x)]^2dx = \int_a^b[s^{\prime\prime}(x)]^2dx + \int_a^b[\eta^{\prime\prime}(x)]^2dx \]

即证.

 

Theorem 3.10 (Minimum bending energy). 对任意 \(g\in\mathcal{C}^2[a,b]\) 满足 \(g(x_i) = f(x_i),\ i=1,2,\cdots, N\) ,则自然三次样条 \(s=s(f;x)\) 满足

\[\int_a^b[s^{\prime\prime}(x)]^2dx\le \int_a^b[g^{\prime\prime}(x)]^2dx \tag{3.8} \]

其中等式成立当且仅当 \(g(x)=s(f;x)\) .

\(Proof.\) 类似的,虽然没有 \(\eta^{\prime}(a)=\eta^{\prime}(b)=0\) ,但是有 \(s^{\prime\prime}(a)=s^{\prime\prime}(b)=0\) .

 

Lemma 3.11. 设 \(\mathcal{C}^2\) 函数 \(f:[a,b]\to\mathbb{R}\) 通过完全/特定二阶导数的三次样条插值,则

\[\forall x\in[a,b],\quad \left|s^{\prime\prime}(x)\right|\le 3\max_{x\in[a,b]}\left|f^{\prime\prime}(x)\right| \tag{3.9} \]

\(Proof.\) 证明比较繁琐,省略.

 

Error analysis

Theorem 3.12. 设 \(\mathcal{C}^4\) 函数 \(f:[a,b]\to\mathbb{R}\) 通过完全/特定二阶导数的三次样条插值,则

\[\forall j=0,1,2,\quad \left|f^{(j)}(x)-s^{(j)}(x)\right| \le c_jh^{4-j}\max_{x\in[a,b]}\left|f^{(4)}(x)\right| \tag{3.10} \]

其中 \(c_0=\frac{1}{4},\ c_1=c_2=\frac{1}{2},\ h = \max_{i=1}^{N-1}|x_{i+1}-x_i|\) .

 

B-Splines

Notation 2. 记号 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 中, \(t_i\) 表示样条的结点,有时简写为 \(\mathbb{S}_{n,N}^{n-1}\) 或 \(\mathbb{S}_{n}^{n-1}\) .

 

Theorem 3.14. 样条集合 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 是 \(n+N-1\) 维线性空间.

\(Proof.\) 容易证明它是线性空间,注意其中的零元是零函数;由于 \(n\) 次多项式有 \(n+1\) 个系数,分 \(N-1\) 段,因此有 \((N-1)(n+1)\) 种系数,而在中间 \(N-2\) 个结点要满足 \(0,1,\cdots,n-1\) 次导数条件,因此维数为 $(N-1)(n+1)-n(N-2)= n+N-1 $ .

 

Truncated power functions

Definition 3.16. 定义 \(n\) 次截断幂函数 truncated power function

\[x_+^n = \left\{ \begin{aligned} &x^n\quad &x\ge 0\\ &0\quad &x<0 \end{aligned} \right. \tag{3.11} \]

 

Lemma 3.18. 如下函数构成 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 的一组基

\[1,x,x^2,\cdots,x^n,(x-t_2)^n_+,(x-t_3)_+^n,\cdots,(x-t_{N-1})_+^n \tag{3.12} \]

\(Proof.\) 上述函数显然在 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 中,只需证明这 \(n+N-1\) 个函数线性无关,即设

\[\sum_{i=0}^na_ix^i + \sum_{j=2}^{N-1}a_{n+j}(x-t_j)_+^n = \mathbf{0}(x) \]

当 \(x<t_2\) 时,第二项为零,因此 \(a_i = 0,\ \forall i=0,1,\cdots,n\) ;再分别取 \(x\in[t_i,t_{i+1})\) 可证 \(a_{n+j} = 0,\ \forall j=2,3,\cdots,N-1\) ,即证.

 

Corollary 3.19. 任意 \(s\in\mathbb{S}_{n,N}^{n-1}\) 可表示为

\[s(x) = \sum_{i=0}^na_ix^i + \sum_{j=2}^{N-1}a_{n+j}(x-t_j)_+^n \tag{3.13} \]

\(Proof.\) 这是上述引理的直接推论.

 

The local support of B-splines

Definition 3.21. 定义 \(t_i\) 处的帽子函数 hat function

\[\tilde{B_i}(x) = \left\{ \begin{aligned} &\dfrac{x-t_{i-1}}{t_i-t_{i-1}}\quad &x\in(t_{i-1},t_i]\\ &\dfrac{t_{i+1}-x}{t_{i+1}-t_{i}}\quad &x\in(t_i,t_{i+1}]\\ &0\quad &\mathrm{otherwise} \end{aligned} \right. \tag{3.14} \]

 

Theorem 3.22. 帽子函数构成 \(\mathbb{S}_1^0\) 的一组基.

\(Proof.\) 注意到 \(\mathbb{S}_1^0\) 是 \(N\) 维线性空间,假设有

\[\sum_{i=1}^{N}c_i\tilde{B_i}(x) = \mathbf{0}(x) \]

分别代入结点 \(x = t_i,\ \forall i=1,2,\cdots,N\) ,则有 \(c_i = 0,\ \forall i=1,2,\cdots,N\) ,即证.

 

Definition 3.23. 定义 B 样条 B-splines 递推式为

\[B_i^{n+1}(x) = \dfrac{x-t_{i-1}}{t_{i+n}-t_{i-1}}B_i^n(x) + \dfrac{t_{i+n+1}-x}{t_{i+n+1}-t_{i}}B_{i+1}^n(x) \tag{3.15} \]

定义递推基为

\[B_i^0(x) = \left\{ \begin{aligned} &1\quad &x\in(t_{i-1},t_i]\\ &0\quad &\mathrm{otherwise} \end{aligned} \right. \tag{3.16} \]

递推式本质上是分别对两个 B 样条乘各自支集区间长度的两段帽子函数.

 

Definition 3.26. 函数 \(f:X\to\mathbb{R}\) 的支集 support 定义为

\[\mathrm{supp}(f) = \mathrm{closure}\{x\in X\ |\ f(x)\neq 0\} \tag{3.17} \]

 

Lemma 3.27 (Support of B-splines). 对 \(n\in\mathbb{N}^+\) ,\(B_i^n\) 的支集区间为 \([t_{i-1},t_{i+n}]\) ,并且

\[\forall x\in(t_{i-1},t_{i+1}),\quad B_i^n(x) > 0 \tag{3.18} \]

 

Definition 3.28. 令 \(X\) 为向量空间,对 \(x\in X\) ,分配唯一的实数或复数 \(L(x)\) ,若 \(\forall x,y\in X\) 以及 \(\forall \alpha,\beta\in\mathbb{R}\ (\mathrm{or}\ \mathbb{C})\) ,有

\[L(\alpha x+\beta y) = \alpha L(x) + \beta L(y) \tag{3.19} \]

则 \(L\) 称为 \(X\) 上的线性泛函 linear functional .

 

Notation 3. 我们之前用 \(f[x_0,\cdots,x_k]\) 表示 \(f\) 的第 \(k\) 个差分,它用于生成 Taylor 展开式;之后,我们使用 \([x_0,\cdots,x_k]f\) 表示在 \(\mathcal{C}[x_0,x_k]\) 上的线性泛函的差分.

 

Theorem 3.30 (Leibniz formula). 对 \(k\in\mathbb{N}\) ,两个函数乘积的第 \(k\) 个差分满足

\[[x_0,\cdots,x_k]fg = \sum_{i=0}^k[x_0,\cdots,x_i]f\cdot [x_i,\cdots,x_k]g \tag{3.20} \]

\(Proof.\) 线性泛函的差分定义和之前相同,利用归纳法即证.

 

Theorem 3.32 (B-splines as divided difference of truncated power function). 对任意 \(n\in\mathbb{N}\) ,我们有

\[B_i^n(x) = (t_{i+n}-t_{i-1})\cdot [t_{i-1},\cdots,t_{i+n}](t-x)_+^n \tag{3.21} \]

\(Proof.\) 证明过于繁琐,利用归纳法可证;此定理说明 \(B_i^n\) 是 \(n\) 次截断幂函数 \((t-x)_+^n\) 在支集区间端点的差分乘支集区间的长度.

 

Integrals and derivatives

Corollary 3.33 (Integrals of B-splines). B 样条在支集上的平均值只依赖它的次数

\[\dfrac{1}{t_{i+n}-t_{i-1}}\int_{t_{i-1}}^{t_{i+n}}B_i^n(x)dx = \dfrac{1}{n+1} \tag{3.22} \]

\(Proof.\) 代入 Theorem 3.32 中的公式有

\[\begin{aligned} \mathrm{LHS} &= \int_{t_{i-1}}^{t_{i+n}}[t_{i-1},\cdots,t_{i+n}](t-x)_+^ndx\\ &= [t_{i-1},\cdots,t_{i+n}]\int_{t_{i-1}}^{t_{i+n}}(t-x)_+^ndx\\ &= [t_{i-1},\cdots,t_{i+n}]\left[-\dfrac{(t-x)^{n-1}}{n+1}\Bigg|_{t_{i-1}}^{t}\right]\\\ &= [t_{i-1},\cdots,t_{i+n}]\dfrac{(t-t_{i-1})^{n-1}}{n+1}\\ &= \dfrac{1}{n+1} \end{aligned} \]

其中最后一步由 Corollary 2.22 得到,即证.

 

Theorem 3.34 (Derivatives of B-splines). 对 \(n\ge 2\) ,有 \(\forall x\in\mathbb{R}\) ,

\[\dfrac{d}{dx}B_i^n(x) = \dfrac{nB_i^{n-1}(x)}{t_{i+n-1}-t_{i-1}} - \dfrac{nB_{i+1}^{n-1}(x)}{t_{i+n}-t_{i}} \tag{3.23} \]

对 \(n=1\) ,上式对除 \(t_{i-1},\ t_i,\ t_{i+1}\) 以外的点(这些点处 \(B_i^1\) 没有一阶导)都成立.

\(Proof.\) 运用归纳法,对递推公式求导即证;利用 Theorem 3.32 可以得到更简单的证明:

\[\begin{aligned} \dfrac{d}{dx}B_i^n(x) &= \dfrac{d}{dx}(t_{i+n}-t_{i-1})\cdot [t_{i-1},\cdots,t_{i+n}](t-x)_+^n\\ &= (t_{i+n}-t_{i-1})\dfrac{d}{dx}[t_{i-1},\cdots,t_{i+n}](t-x)_+^n\\ &= (t_{i+n}-t_{i-1})\dfrac{[t_{i},\cdots,t_{i+n}]-[t_{i-1},\cdots,t_{i+n-1}]}{t_{i+n}-t_{i-1}}\dfrac{d}{dx}(t-x)_+^n\\ &= -n[t_{i},\cdots,t_{i+n}](t-x)_+^{n-1}+n[t_{i-1},\cdots,t_{i+n-1}](t-x)_+^{n-1}\\ &= \dfrac{nB_i^{n-1}(x)}{t_{i+n-1}-t_{i-1}} - \dfrac{nB_{i+1}^{n-1}(x)}{t_{i+n}-t_{i}} \end{aligned} \]

巧妙地利用了差分的线性性质.

 

Corollary 3.35 (Smoothness of B-splines). \(B_i^n\in\mathbb{S}_n^{n-1}\) .

 

Marsden's identity

Theorem 3.36 (Marsden's identity). 对任意 \(n\in\mathbb{N}\) ,有

\[(t-x)^n = \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n-1})B_i^n(x) \tag{3.43} \]

其中乘积 \((t-t_i)\cdots(t-t_{i+n-1})\) 在 \(n=0\) 时定义为 \(1\) .

\(Proof.\) 注意乘积项是从支集区间第二个端点到倒数第二个端点;对于 \(n=0\) ,显然;注意到 \(f(t) = t-x\) 的多项式插值是其自身,我们在 \(t_{i-1}\) 和 \(t_{i+n}\) 两点运用拉格朗日插值得到

\[t-x = \dfrac{t-t_{i+n}}{t_{i-1}-t_{i+n}}(t_{i-1}-x) + \dfrac{t-t_{i-1}}{t_{i+n}-t_{i-1}}(t_{i+n}-x) \]

从而由归纳法有

\[\begin{aligned} (t-x)^{n+1} &= (t-x)\sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n-1})B_i^n(x)\\ &= \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n-1})(t-t_{i+n})\dfrac{t_{i-1}-x}{t_{i-1}-t_{i+n}}B_i^n(x)\\ &+ \sum_{i=-\infty}^{+\infty}(t-t_{i-1})(t-t_i)\cdots(t-t_{i+n-1})\dfrac{t_{i+n}-x}{t_{i+n}-t_{i-1}}B_i^n(x)\\ &= \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n})\dfrac{x-t_{i-1}}{t_{i+n}-t_{i-1}}B_i^n(x)\\ &+ \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n})\dfrac{t_{i+n+1}-x}{t_{i+n+1}-t_{i}}B_{i+1}^n(x)\\ &= \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n})B_i^{n+1}(x) \end{aligned} \]

在第一步中插值的系数恰好补充了乘积的项,然后利用无穷项的特性进行平移,最后由定义即证.

 

Corollary 3.37 (Truncated power functions as linear combinations of B-splines). 对任意 \(j\in\mathbb{Z},\ n\in\mathbb{N}\) 有

\[(t_j-x)_+^n = \sum_{i=-\infty}^{j-n}(t_j-t_i)\cdots(t_j-t_{i+n-1})B_i^n(x) \tag{3.44} \]

\(Proof.\) 代入 \(t=t_j\) ,容易发现在 \(i=j-n+1,\cdots,j\) 时,乘积 \((t_j-t_i)\cdots(t_j-t_{i+n-1})\) 为 \(0\) ;当 \(x\le t_j\) 时,右式中 \(B_i^n(x)\) 在 \(i>j\) 的部分为 \(0\) ;当 \(x>t_j\) 时,右式中 \(B_i^n(x)\) 始终在支集区间以外,因此为 \(0\) ,即证.

 

Symmetric polynomials

Definition 3.38. 定义 \(k\) 次初等对称多项式 elementary symmetric polynomial

\[\sigma_k(x_1,\cdots,x_n) = \sum_{1\le i_1<\cdots< i_k\le n}x_{i_1}x_{i_2}\cdots x_{i_k} \tag{3.45} \]

特别的, \(\sigma_0(x_1,\cdots,x_n) = 1\) 并且

\[\forall k> n,\quad \sigma_k(x_1,\cdots,x_n) = 0 \tag{3.46} \]

若不要求乘积项互异,我们有 \(k\) 次完全对称多项式 complete symmetric polynomial

\[\tau_k(x_1,\cdots,x_n) = \sum_{1\le i_1\le\cdots\le i_k\le n}x_{i_1}x_{i_2}\cdots x_{i_k} \tag{3.47} \]

注意这里下标可以相等.

 

Lemma 3.40. 对 \(k\le n\) ,初等对称多项式满足递推式

\[\sigma_{k+1}(x_1,\cdots,x_n,x_{n+1}) = \sigma_{k+1}(x_1,\cdots,x_n) + x_{n+1}\sigma_k(x_1,\cdots,x_n) \tag{3.48} \]

\(Proof.\) 在 \(x_1,\cdots,x_n,x_{n+1}\) 中选 \(k+1\) 个,结果等于在 \(x_1,\cdots,x_n\) 中选 \(k+1\) 个,再选定 \(x_{n+1}\) 后在 \(x_1,\cdots,x_n\) 中选 \(k\) 个;实际上,

\[\left( \begin{matrix} n+1\\ k+1 \end{matrix} \right) = \left( \begin{matrix} n\\ k+1 \end{matrix} \right) + \left( \begin{matrix} n\\ k \end{matrix} \right) \]

此引理是组合数的简单应用.

 

Definition 3.42. 初等对称多项式的生成函数 generating function for the elementary symmetric polynomial

\[g_{\sigma,n}(z) = \prod_{i=1}^n(1+x_iz) \tag{3.49} \]

完全对称多项式的生成函数为

\[g_{\tau,n}(z) = \prod_{i=1}^n\dfrac{1}{1-x_iz} \tag{3.50} \]

 

Lemma 3.43 (Generating elementary and complete symmetric polynomials). 初等和完全对称多项式与生成函数有关系

\[g_{\sigma,n}(z) = \sum_{k=0}^n\sigma_k(x_1,\cdots,x_n)z^k \tag{3.51}\\ g_{\tau,n}(z) = \sum_{k=0}^{+\infty}\tau_k(x_1,\cdots,x_n)z^k \]

\(Proof.\) 第一个式子容易验证;对于完全对称多项式的生成函数,我们应用展开式

\[\dfrac{1}{1-x} = \sum_{k=0}^{+\infty}x^k \]

代入后根据 \(z^k\) 对应的系数即证.

 

Lemma 3.45 (Recursive relations of complete symmetric polynomials). 完全对称多项式满足递推式

\[\tau_{k+1}(x_1,\cdots,x_n,x_{n+1}) = \tau_{k+1}(x_1,\cdots,x_n) + x_{n+1}\tau_k(x_1,\cdots,x_n,x_{n+1}) \tag{3.52} \]

\(Proof.\) 与之前的证明类似,需要注意这里不能用组合数公式,因为允许重复选取相同的 \(x_i\) ,因此右边第二项在确定了 \(x_{n+1}\) 后选取的多项式 \(\tau_k\) 依然包含了 \(x_{n+1}\) ;也可以通过生成函数的关系

\[g_{\tau,n+1} = g_{\tau,n} + x_{n+1}zg_{\tau,n+1} \]

通过分析 \(z^{k+1}\) 的系数证明.

 

Theorem 3.46 (Complete symmetric polynomials as divided difference of monomials). \(m-n\) 次 \(n+1\) 元完全对称多项式是单项式 \(x^m\) 的第 \(n\) 个差分,即

\[\forall m\in\mathbb{N}^+,\ \forall i\in\mathbb{N},\ \forall n=0,1,\cdots,m,\quad \tau_{m-n}(x_i,\cdots,x_{i+n}) = [x_i,\cdots,x_{i+n}]x^m \tag{3.53} \]

\(Proof.\) 关于 \(n\) 归纳,当 \(n=0\) 时,显然有 \(\tau_m(x_i) = [x_i]x^m\) ;设对 \(n<m\) 成立,考虑 \(\tau_{m-n-1}(x_i,\cdots,x_{i+n+1})\) ,由假设有

\[\tau_{m-n}(x_i,\cdots,x_{i+n}) = [x_i,\cdots,x_{i+n}]x^m\\ \tau_{m-n}(x_{i+1},\cdots,x_{i+n+1}) = [x_{i+1},\cdots,x_{i+n+1}]x^m \]

我们希望有

\[\begin{aligned} \tau_{m-n-1}(x_i,\cdots,x_{i+n+1}) &= \dfrac{\tau_{m-n}(x_{i+1},\cdots,x_{i+n+1}) - \tau_{m-n}(x_i,\cdots,x_{i+n})}{x_{i+n+1}-x_{i}}\\ &= \dfrac{[x_{i+1},\cdots,x_{i+n+1}]x^m-[x_{i},\cdots,x_{i+n}]x^m}{x_{i+n+1}-x_{i}}\\ &= [x_{i},\cdots,x_{i+n+1}]x^m \end{aligned} \]

也就是说,要有

\[(x_{i+n+1}-x_{i})\tau_{m-n-1}(x_i,\cdots,x_{i+n+1}) = \tau_{m-n}(x_{i+1},\cdots,x_{i+n+1}) - \tau_{m-n}(x_i,\cdots,x_{i+n}) \]

整理得到

\[\tau_{m-n}(x_i,\cdots,x_{i+n}) + x_{i+n+1}\tau_{m-n-1}(x_i,\cdots,x_{i+n+1}) = \tau_{m-n}(x_{i+1},\cdots,x_{i+n+1}) + x_{i}\tau_{m-n-1}(x_i,\cdots,x_{i+n+1}) \]

发现左右两边都可以利用完全对称多项式的递推式,得到 \(\tau_{m-n}(x_i,\cdots,x_{i+n},x_{i+n+1})\) ,等式成立,代回即证.

 

B-splines indeed form a basis

Theorem 3.47. 给定 \(k\in\mathbb{N}\) ,对任意固定的 \(n\ge k\) ,单项式 \(x^k\) 可以表示为 B 样条的线性组合,具有形式

\[\left( \begin{matrix} n\\ k \end{matrix} \right)x^k = \sum_{i=-\infty}^{+\infty}\sigma_k(t_i,\cdots,t_{i+n-1})B_i^n(x) \tag{3.54} \]

\(Proof.\) 注意右边是从支集区间第二个端点到倒数第二个端点的 \(k\) 次对称多项式;据生成函数和初等对称多项式的关系 Lemma 3.43 ,有

\[(1+t_ix)\cdots(1+t_{i+n-1}x) = \sum_{k=0}^{n}\sigma_k(t_i,\cdots,t_{i+n-1})x^k \]

令 \(x = -\frac{1}{t}\) ,然后同乘 \(t^n\) 得到

\[(t-t_i)\cdots(t-t_{i+n-1}) = \sum_{k=0}^{n}\sigma_k(t_i,\cdots,t_{i+n-1})(-1)^kt^{n-k} \]

由 Theorem 3.36 我们有

\[\begin{aligned} (t-x)^n &= \sum_{i=-\infty}^{+\infty}(t-t_i)\cdots(t-t_{i+n-1})B_i^n(x)\\ &= \sum_{i=-\infty}^{+\infty}\sum_{k=0}^{n}\sigma_k(t_i,\cdots,t_{i+n-1})(-1)^kt^{n-k}B_i^n(x)\\ &= \sum_{k=0}^{n}(-1)^kt^{n-k}\sum_{i=-\infty}^{+\infty}\sigma_k(t_i,\cdots,t_{i+n-1})B_i^n(x) \end{aligned} \]

另一方面,我们将 \((t-x)^n\) 二项式展开

\[(t-x)^n = \sum_{k=0}^{n}(-1)^kt^{n-k}\left( \begin{matrix} n\\ k \end{matrix} \right)x^k \]

对比上下两式的系数即证.

 

Corollary 3.48 (Partition of Unity).

\[\forall n\in\mathbb{N},\quad \sum_{i=-\infty}^{+\infty}B_i^n = 1 \tag{3.55} \]

\(Proof.\) 代入 \(k=0\) 即证.

 

Theorem 3.49. 如下 B 样条构成 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 的一组基

\[B_{2-n}^n(x),B_{3-n}^n(x),\cdots,B_N^n(x) \tag{3.56} \]

\(Proof.\) 由于在 Lemma 3.18 中有

\[1,x,x^2,\cdots,x^n,(x-t_2)^n_+,(x-t_3)_+^n,\cdots,(x-t_{N-1})_+^n \]

构成 \(\mathbb{S}_n^{n-1}(t_1,t_2,\cdots,t_N)\) 的一组基,并且恰有 \(n+N-1\) 个 B 样条,只需证明这一组基可以被它们线性表示。注意到

\[\forall t_i\in\mathbb{R},\quad (x-t_i)^n_+ = (x-t_i)^n - (-1)^n(t_i-x)_+^n \]

而由 Theorem 3.36 和 Corollary 3.37 ,\((x-t_i)^n,\ (t_i-x)_+^n\) 均可由上面的 B 样条线性表示。事实上,我们有

\[(t_j-x)^n = \sum_{i=-\infty}^{+\infty}(t_j-t_i)\cdots(t_j-t_{i+n-1})B_i^n(x)\\ (t_j-x)_+^n = \sum_{i=-\infty}^{j-n}(t_j-t_i)\cdots(t_j-t_{i+n-1})B_i^n(x) \]

关键点在于 \(B_i^n(x)\) 不为零的区间段是有限的,并且乘积项 \((t_j-t_i)\cdots(t_j-t_{i+n-1})\) 在 \(i=j,\cdots,i+n-1\) 范围内都为 \(0\) ,因此上面两式最终只能剩下有限项,并且恰为上述 B 样条.

 

Cardinal B-splines

Definition 3.50. 定义 \(n\) 次基数 B 样条 cardinal B-spline ,记为 \(B_{i,\mathbb{Z}}^n\) ,它以整数集作为结点的 B 样条.

 

Corollary 3.51. 基数 B 样条关于平移不变,即

\[\forall x\in\mathbb{R},\quad B_{i,\mathbb{Z}}^n(x) = B_{i+1,\mathbb{Z}}^n(x) \tag{3.57} \]

\(Proof.\) 根据定义和归纳法容易证明.

 

Corollary 3.52. 基数 B 样条关于其支集区间的中点对称,即

\[\forall n>0,\ \forall x\in\mathbb{R},\quad B_{i,\mathbb{Z}}^n(x) = B_{i,\mathbb{Z}}^n(2i+n-1-x) \tag{3.58} \]

\(Proof.\) 根据定义和归纳法容易证明.

 

Theorem 3.55. \(n\) 次基数 B 样条可表示为

\[B_{i,\mathbb{Z}}^n(x) = \dfrac{1}{n!}\sum_{k=-1}^{n}(-1)^{n-k} \left( \begin{matrix} n+1\\ k+1 \end{matrix} \right) (k+i-x)_+^n \tag{3.69} \]

\(Proof.\) 由 Theorem 3.32 有

\[\begin{aligned} B_{i,\mathbb{Z}}^n(x) &= (n+1)[i-1,\cdots,i+n](t-x)_+^n\\ &= \dfrac{n+1}{(n+1)!}\Delta^{n+1}(i-1-x)_+^n\\ &= \dfrac{1}{n!}\sum_{k=0}^{n+1}(-1)^{n-k} \left( \begin{matrix} n+1\\ k \end{matrix} \right) (i-1+k-x)_+^n \end{aligned} \]

中间两步由 Theorem 2.29 和 Theorem 2.28 得到.

 

Corollary 3.56. 基数 B 样条在整数 \(j\) 处的值为

\[B_{i,\mathbb{Z}}^n(j) = \dfrac{1}{n!}\sum_{k=j-i+1}^{n}(-1)^{n-k} \left( \begin{matrix} n+1\\ k+1 \end{matrix} \right) (k+i-j)_+^n \tag{3.70} \]

\(Proof.\) 这是 Theorem 3.55 的直接推论,注意下标是从截断幂函数不为 \(0\) 的位置开始的.

 

Theorem 3.57 (Unique interpolation by complete cubic cardinal B-splines). 存在唯一的 B 样条 \(S(x)\in\mathbb{S}_3^2\) 在 \(1,2,\cdots,N\) 处对 \(f\) 插值,且有 \(S^{\prime}(1) = f^{\prime}(1),\ S^{\prime}(N) = f^{\prime}(N)\) ,进一步有

\[S(x) = \sum_{i=-1}^Na_iB_{i,\mathbb{Z}}^3(x) \tag{3.71} \]

其中 \(a_{-1} = a_1-2^{\prime}(1),\ a_N = a_{N-2}+2f^{\prime}(N)\) ,并且 \(\mathbf{a}^T = [a_0,\cdots,a_{N-1}]\) 是线性方程组 \(M\mathbf{a} = \mathbf{b}\) 的解,有

\[\mathbf{b}^T = [3f(1)+f^{\prime}(1),6f(2),\cdots,6f(N-1),3f(N)-f^{\prime}(N)] \]

\[M = \left( \begin{matrix} 2 & 1\\ 1 & 4 & 1\\ & \ddots & \ddots & \ddots\\ & & 1 & 4 & 1\\ & & & 1 & 2 \end{matrix} \right) \]

 

Theorem 3.58. 存在唯一的 B 样条 \(S(x)\in\mathbb{S}_2^1\) 在 \(t_i = i + \frac{1}{2},\ i=1,2,\cdots,N-1\) 处对 \(f\) 插值,且有 \(S(1) = f(1),\ S(N) = f(N)\)​ ,进一步有

\[S(x) = \sum_{i=0}^Na_iB_{i,\mathbb{Z}}^2(x) \tag{3.72} \]

其中 \(a_{0} = 2f(1)-a_1,\ a_N = 2f(N)-a_{N-1}\) ,并且 \(\mathbf{a}^T = [a_1,\cdots,a_{N-1}]\) 是线性方程组 \(M\mathbf{a} = \mathbf{b}\) 的解,有

\[\mathbf{b}^T = \left[8f\left(\frac{3}{2}\right)-2f(1),8f\left(\frac{5}{2}\right),\cdots,8f\left(N-\frac{3}{2}\right),8f\left(N-\frac{1}{2}\right)-2f(N)\right] \]

\[M = \left( \begin{matrix} 5 & 1\\ 1 & 6 & 1\\ & \ddots & \ddots & \ddots\\ & & 1 & 6 & 1\\ & & & 1 & 5 \end{matrix} \right) \]

 

Curve fitting via splines

Definition 3.59. 开曲线 curve 是连续映射 \(\gamma :(\alpha,\beta)\to\mathbb{R}^n,\ -\infty\le\alpha<\beta\le+\infty\) ,若 \(\gamma\) 是单射,则称它是简单的 simple .

 

Definition 3.60. 曲线 \(\gamma\) 的正切向量 tangent vector 是它的一阶导数

\[\gamma^{\prime} = \dfrac{d\gamma}{d s} \tag{3.73} \]

正切向量标准化得到的单位正切向量 unit tangent vector 记为 \(\mathbf{t}\) .

 

Definition 3.61. 单位速度曲线 unit-speed curve 是在每一点的正切向量为单位长度的曲线.

 

Definition 3.62. 点 \(\gamma(t_0)\) 称为是 \(\gamma\) 的正规点 regular point 如果 \(\mathbf{t}(t_0)\) 存在且不为 \(0\) ;如果曲线的所有点都是正规点,则称曲线是正规的.

 

Definition 3.63. 从点 \(\gamma(t_0)\) 开始的曲线参数长度 arc-length 定义为

\[s_{\gamma}(t) = \int_{t_0}^t\left\Vert\gamma^{\prime}(u)\right\Vert_2du \tag{3.74} \]

Definition 3.64. 若映射 \(X\mapsto Y\) 是连续双射,且它的逆也是连续的,则称为是同态 homomorphism ,两个集 \(X,\ Y\) 称为是同态的.

 

Definition 3.65. 曲线 \(\tilde{\gamma}(\tilde{\alpha},\tilde{\beta})\to\mathbb{R}^n\) 是另一条曲线 \(\gamma(\alpha,\beta)\to\mathbb{R}^n\) 的重参量化 reparameterization ,如果存在同态 \(\phi:(\tilde{\alpha},\tilde{\beta})\to(\alpha,\beta)\) 使得 \(\tilde{\gamma}(\tilde{t}) = \gamma(\phi(\tilde{t})),\ \tilde{t}\in(\tilde{\alpha},\tilde{\beta})\) .

 

Lemma 3.66. 正规曲线的重参量化是单位速度的当且仅当它是基于参数长度的.

 

Definition 3.68. 闭曲线 closed curve 是连续映射 \(\gamma:[0,1]\to\mathbb{R}^2\) 满足 \(\gamma(0) = \gamma(1)\) 。若严格限制 \(\gamma\) 在 \([0,1)\) 上,它是单射,则闭曲线称为是一个简单闭曲线 simple closed curve 或若当曲线 Jordan curve .

 

Definition 3.69. 曲线的单位符号方向 signed unit normal 记为 \(\mathbf{n}_s\) ,是将单位正切向量逆时针旋转 \(\frac{\pi}{2}\) 得到的单位向量.

Note. 这里进行逆时针旋转使得单位正规方向和单位正切向量恰好构成平面上的标准直角坐标系.

 

Definition 3.70. 对单位速度曲线 \(\gamma\) ,它的曲线符号 signed curvature 定义为

\[\kappa_s = \gamma^{\prime\prime}\cdot \mathbf{n}_s \tag{3.75} \]

 

Definition 3.71. 累积弦长 accumulative chordal lengths 由一列点得到

\[\{\mathbf{x}_i\in\mathbb{R}^D:i=1,2,\cdots,n\} \tag{3.76} \]

它是 \(n\) 个实数

\[t_i = \left\{ \begin{aligned} &0,\ &i=1\\ &t_{i-1}+\Vert\mathbf{x}_i-\mathbf{x}_{i-1}\Vert_2,\ &i>1 \end{aligned} \right. \tag{3.77} \]

其中 \(\Vert\cdot\Vert_2\) 表示欧几里得 \(2\) 范数.

 

Algorithm 3.72. 曲线 \(\gamma:(0,1)\to\mathbb{R}^D\) 可以通过累积弦长被 D 样条逼近.

 

Problem

\(\mathrm{VII}.\) 利用 B 样条的导数公式证明 B 样条 \(B_i^n(x)\) 在支集区间上的积分与 \(i\) 无关.

\(Proof.\) 由 Theorem 4.35 可得

\[\dfrac{d}{dx}B_i^{n+1}(x) = \dfrac{(n+1)B_i^{n}(x)}{t_{i+n}-t_{i-1}}-\dfrac{(n+1)B_{i+1}^{n}(x)}{t_{i+n+1}-t_i} \]

两边同时在 $ [t_{i-1},t_{i+n+1}] $ 上积分可得

\[\begin{aligned} \int_{t_{i-1}}^{t_{i+n+1}}\dfrac{d}{dx}B_i^{n+1}(x)dx &= \int_{t_{i-1}}^{t_{i+n+1}}\left[\dfrac{(n+1)B_i^{n}(x)}{t_{i+n}-t_{i-1}}-\dfrac{(n+1)B_{i+1}^{n}(x)}{t_{i+n+1}-t_i}\right]dx\\ &= (n+1)\left[\dfrac{1}{{t_{i+n}-t_{i-1}}}\int_{t_{i-1}}^{t_{i+n}}B_i^{n}(x)dx-\dfrac{1}{t_{i+n+1}-t_i}\int_{t_{i}}^{t_{i+n+1}}B_{i+1}^{n}(x)dx\right] \end{aligned} \]

由于积分性质

\[\int_{t_{i-1}}^{t_{i+n+1}}\frac{d}{dx}B_i^{n+1}(x)dx = B_i^{n+1}(t_{i+n+1})-B_i^{n+1}(t_{i-1}) = 0 \]

代入有

\[\dfrac{1}{{t_{i+n}-t_{i-1}}}\int_{t_{i-1}}^{t_{i+n}}B_i^{n}(x)dx = \dfrac{1}{t_{i+n+1}-t_i}\int_{t_{i}}^{t_{i+n+1}}B_{i+1}^{n}(x)dx \]

从而在支集区间上的积分与 $ i $ 无关.

上一篇:xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持


下一篇:C/C++ 构建系统,我用 xmake