三次样条函数
一、没有电脑前
1、样条与压铁
- 样条:具有一定弹性的软木条
- 压铁:较重的铁块,用来固定样条所经过的点
2、 自由曲线
- 在产品初始设计阶段,描述其外形的曲线或曲面常常只有大致形状或只知道它通过一些空间点列(称为型值点),这类没有数学表达式的曲线或曲面称为自由曲线或自由曲面(Free form curve/surface)。
- 造型方法
- 拟合(fitting)
- 插值(interpolation)
- 逼近(approximation)
二、三次样条函数
1、表达式推导
- 压铁:型值点
- 木样条:插值型曲线
2、力学解释
曲线:弹性梁,弹性模量为
• 压铁:载荷(力)
• 由材料力学中的贝努利‐欧拉方程
M
(
x
)
=
E
I
k
(
x
)
=
E
I
y
′
′
(
x
)
(
1
+
y
′
(
x
)
2
)
3
2
M(x)=EI k(x)=EI\frac{y^{''}(x)}{(1+y^{'}(x)^2)^{\frac{3}{2}}}
M(x)=EIk(x)=EI(1+y′(x)2)23y′′(x)
其中
• 𝑀(𝑥):曲线弯矩
• 𝐸:木样条的弹性模量(杨氏模量)
• 𝐼: 几何惯性矩
• 𝑘(𝑥) :曲线的曲率
小扰度假设:
y
′
(
x
)
<
<
1
y^{'}(x)<<1
y′(x)<<1(弯角不大于
4
5
°
45^°
45°)
M
(
x
)
≈
a
x
+
b
M(x)\approx ax+b
M(x)≈ax+b
- 因此可得,两压铁间为三次函数,即样条曲线为分段三次函数。
3、数学性质
- 分段3次多项式的好处
- 2次多项式无法表达拐点,不够自由
- 高次(4次及以上)多项式拐点多,次数若较高计算易出现较大误
多个变量的函数差。
问题
- 每段多项式之间满足什么条件?
- 如何求解?
4、求解思路
- 每段为3次多项式,有4个变量(未待定系数)
y i ( x ) = a i + b i x + c i x 2 + d i x 3 y_i(x)=a_i+b_ix+c_ix^2+d_ix^3 yi(x)=ai+bix+cix2+dix3 - 假设有n+1个型值点( 段),则总共有个4n变量。
- 首先,曲线要插值型值点,有n+1个约束条件;
- 其次,假设曲线整体为
C
2
C^2
C2连续,则相邻两段在拼接
点要满足3个条件( C 0 C^0 C0连续、 C 1 C^1 C1连续、 C 2 C^2 C2连续); 则有3n-3个约束条件; - 则共有4n-2个约束条件;
• 因此,再加2个额外条件,即可唯一确定整条曲线
5、三次样条函数推导(方法1)
- 引入中间变量:节点处的2阶导数值 M i M_i Mi(弯矩)
- 每段 y i ′ ′ ( x ) y^{''}_i(x) yi′′(x)表达为 M i M_i Mi和 M i + 1 M_{i+1} Mi+1的线性插值
- y i ( x ) y_i(x) yi(x)为包含待定值 M i M_i Mi的3次多项式
- 再根据拼接条件( C 0 C^0 C0、 C 1 C^1 C1、 C 2 C^2 C2连续),列出等式
- 最后加上2个边界条件,构成关于 M i , i = 1 , ⋯ , n − 1 M_i,i=1,\cdots,n-1 Mi,i=1,⋯,n−1的 ( n − 1 ) × ( n − 1 ) (n-1)\times (n-1) (n−1)×(n−1)阶的线性方程
- 方程组为对称的、三对角的、对角占优的,称为三弯矩方程组。方程组系数矩阵满秩,有唯一解。
- 可用追赶法求解三弯矩阵方程组。
1、边界条件
- 自由端:指定曲线在两个端点处的二阶导数值
两个端点的二阶导数值指定为0时称为自然三次样条。 - 夹持端:指定曲线在两个端点处的一阶导数值。
- 其他:抛物端(首末两端都是抛物线)、周期端、混合边界条件
6、三次样条函数推导(方法2)
- 引入中间变量:节点处的1阶导数值 M i M_i Mi(转角)
- 其他操作类似
- 方程组为对称的、三对角的、对角占优的,称为三转角方程组。方程组系数矩阵满秩,有唯一解。
- 同样可用追赶法求解
7、三弯矩方程组/三转角方程组
三对角矩阵、主对角占优、有唯一解、追赶法求解
8、简化的计算技巧
好处:在给定两个端点及其导数情况下,可直接写出函数的表达形式
1、Hermite型插值多项式
- 两点及其一阶导数(切线)
2、Lidstone型插值多项式
两点及其二阶导数(曲率)
3、好处
在给定两个端点及其导数情况下,可直接写出函数的表达形式。
三、三次基样条
S
(
x
)
=
∑
i
=
0
n
y
i
φ
i
(
x
)
+
y
0
′
φ
(
x
)
+
y
n
′
φ
n
+
2
(
x
)
S(x)=\sum^n_{i=0}y_i \varphi_i(x)+y_0^{'} \varphi(x)+y^{'}_n \varphi_{n+2}(x)
S(x)=∑i=0nyiφi(x)+y0′φ(x)+yn′φn+2(x)
其中
φ
i
(
x
)
\varphi_i(x)
φi(x)均为三次样条函数,满足
{
φ
i
(
x
i
)
=
δ
i
j
,
(
i
,
j
=
1
,
⋯
,
n
)
φ
i
′
(
x
0
)
=
φ
i
′
(
x
n
)
=
0
,
(
j
=
1
,
⋯
,
n
)
\begin{cases} \varphi_i(x_i)=\delta_{ij},(i,j=1,\cdots,n)\\ \varphi_i^{'}(x_0)= \varphi_i^{'}(x_n)=0,(j=1,\cdots,n) \end{cases}
{φi(xi)=δij,(i,j=1,⋯,n)φi′(x0)=φi′(xn)=0,(j=1,⋯,n)
{ φ n + 1 ( x j ) = 0 φ n + 1 ′ ( x 0 ) = 1 , ( j = 1 , ⋯ , n ) φ n + 1 ′ ( x n ) = 0 \begin{cases} \varphi_{n+1}(x_j)=0\\ \varphi_{n+1}^{'}(x_0)=1,(j=1,\cdots,n) \\ \varphi_{n+1}^{'}(x_n)=0 \end{cases} ⎩⎪⎨⎪⎧φn+1(xj)=0φn+1′(x0)=1,(j=1,⋯,n)φn+1′(xn)=0
{ φ n + 2 ( x j ) = 0 φ n + 2 ′ ( x 0 ) = 0 , ( j = 1 , ⋯ , n ) φ n + 2 ′ ( x n ) = 1 \begin{cases} \varphi_{n+2}(x_j)=0\\ \varphi_{n+2}^{'}(x_0)=0,(j=1,\cdots,n) \\ \varphi_{n+2}^{'}(x_n)=1 \end{cases} ⎩⎪⎨⎪⎧φn+2(xj)=0φn+2′(x0)=0,(j=1,⋯,n)φn+2′(xn)=1
任意 φ ( x ) \varphi(x) φ(x)可以通过三次样条方法求得。
1、基样条特征
- 考虑定义在所有整数节点上的基样条
1、相邻两端异号
2、每段有一个极值点,j+1段极值点是j段极值点的
λ
\lambda
λ倍
3、节点处导数满足
m
j
+
1
=
λ
m
j
m_{j+1}=\lambda m_j
mj+1=λmj
四、三次样条曲线
1、局限性
1、须有小扰度
2、不能处理多值问题
3、不能很好表达空间曲线
4、不具有坐标不变性(几何不变性)
2、三次参数样条曲线
- 3个坐标分量x,y,z,分别是参数t的三次样条函数
- 对型值点做参数化
- 对3个坐标分量分别处理
五、曲线的连续性
1、参数连续性
1、定义
- 在数学分析/高等数学中,我们所说的“连续性”(光滑性)是指“参数连续性”。
给定 2 条曲线, 𝒙 1 ( t ) 𝒙_1(t) x1(t) 定义在 [ t 0 , t 1 ] [t_0,t_1] [t0,t1], x 2 ( t ) x_2(t) x2(t)定义在 [ t 1 , t 2 ] [t_1,t_2] [t1,t2]:
曲线 𝒙 1 𝒙_1 x1 和 𝒙 2 𝒙_2 x2 在 𝑡 1 𝑡_1 t1 称为 𝐶 r 𝐶^r Cr连续的,如果它们的从 0阶 至 𝑟阶 的导数向量在 t 1 t_1 t1处完全相同。
C 0 C^0 C0:坐标在连接点处相同
C 1 C^1 C1:一阶导数在连接点处相同
C 2 C^2 C2:二阶导数在连接点处相同
2、不足
- 参数连续性过于严格,在几何设计中不太直观
- 原因:连续性依赖于参数的选择,同一条曲线,参数不同,连续阶也不同。
2、几何连续性
1、定义
设
φ
(
t
)
(
a
≤
t
≤
b
)
\varphi(t)(a \leq t \leq b)
φ(t)(a≤t≤b)是给定的曲线。
若存在一个参数变换
t
=
ρ
(
s
)
(
a
1
≤
t
≤
b
1
)
t=\rho(s) (a_1 \leq t \leq b_1)
t=ρ(s)(a1≤t≤b1),使得
φ
(
ρ
(
s
)
)
∈
C
n
[
a
1
,
b
1
]
\varphi(\rho(s)) \in C^n[a_1,b_1]
φ(ρ(s))∈Cn[a1,b1],且
d
φ
(
ρ
(
s
)
)
d
s
≠
0
\frac{d\varphi(\rho(s))}{ds} \not=0
dsdφ(ρ(s))=0,则称曲线
φ
(
t
)
(
a
≤
t
≤
b
)
\varphi(t)(a \leq t \leq b)
φ(t)(a≤t≤b)是n阶几何连续的曲线,记为:
φ
(
t
)
∈
G
C
n
[
a
,
b
]
\varphi(t) \in GC^n[a,b]
φ(t)∈GCn[a,b]或
φ
(
t
)
∈
G
n
[
a
,
b
]
\varphi(t) \in G^n[a,b]
φ(t)∈Gn[a,b]
2、性质
1、条件
d
φ
(
ρ
(
s
)
)
d
s
≠
0
\frac{d\varphi(\rho(s))}{ds} \not=0
dsdφ(ρ(s))=0保证了曲线无奇点。
2、几何连续性与参数选取无关,是曲线本身固有的几何性质。
3、
G
n
G^n
Gn的条件比
C
n
C^n
Cn的宽,曲线类型更多。
3、具体形式
- G 0 G^0 G0:表示两曲线有公共的连接端点,与 C n C^n Cn的条件一致
- G 1 G^1 G1:两曲线在连接点处有公共的切线,即切线方向连续
- G 2 G^2 G2:两曲线在连接点处有公共的曲率圆,即曲率连续
六、参考和引用
[1] bilibili:GAMES102:几何建模与处理
[2] 三次样条函数.pdf
[3] 知乎:GAMES102-04 三次样条函数