薄板样条理解
一个与指定离散点尽可能近且尽可能平坦的光滑曲面,是拟合问题的良好形式。这主要是因为:
- 与指定离散点尽可能近,则更接近离散点附近的真实
- 尽可能平坦的光滑曲面,光滑代表微观局部没有奇怪的,平坦则意味着没有大的变化。这样能够将离散点附近的真实以不奇怪的方式、尽量少变化的方式再扩散大一点,进而获取更大范围的真实。
- 上述要求用数学描述为:
min = ∑ i ∥ p t − p i ∥ + λ ⋅ ∫ R ∫ R ( ∂ 2 ∂ r 2 p ) 2 ∂ r ∂ r \min =\sum_i \left\|p_t -p_i \right\|\;+\;\lambda \cdot \int_R \int_R {\left(\frac{\partial^2 }{\partial r^2 }p\right)}^2 \partial r\partial r min=∑i∥pt−pi∥+λ⋅∫R∫R(∂r2∂2p)2∂r∂r
其中 p p p代表着曲面上任意一点, p i p_i pi代表着给定的第 i i i个离散点,将 p i p_i pi带入曲面求解的点为 p t p_t pt - 上述曲面就是薄板样条(TPS)
薄板样条公式
-
点的表达
p i = [ x i y i 1 ] T p_i ={\left\lbrack x_i \;y_i \;1\right\rbrack }^T pi=[xiyi1]T -
点距的表达
r i j = ∥ p i − p j ∥ r_{\mathrm{ij}} =\left\|p_i -p_j \right\| rij=∥pi−pj∥ -
径向基函数的表达
b ( r ) = r 2 ln ( r ) b\left(r\right)=r^2 \ln \left(r\right) b(r)=r2ln(r) -
样条函数的表达
f ( p t ) = [ b n × 1 T p t T ] [ w n × 1 a 3 × 1 ] f\left(p_t \right)=\left\lbrack \begin{array}{cc} b_{n\times 1}^T & p_t^T \end{array}\right\rbrack \left\lbrack \begin{array}{c} w_{n\times 1} \\ a_{3\times 1} \end{array}\right\rbrack f(pt)=[bn×1TptT][wn×1a3×1]其中 p t p_t pt是未知量, f ( p t ) f(p_t) f(pt)是样条函数值, b n × 1 b_{n\times 1} bn×1是n个径向基函数,有:
b n × 1 = [ b ( r 1 t ) b ( r i t ) b ( r n t ) ] b_{n\times 1} =\left\lbrack \begin{array}{c} b\left(r_{1t} \right)\\ b\left(r_{\mathrm{it}} \right)\\ b\left(r_{\mathrm{nt}} \right) \end{array}\right\rbrack bn×1= b(r1t)b(rit)b(rnt) 其余为参数项,有:
w n × 1 = [ w 1 w i w n ] w_{n\times 1} =\left\lbrack \begin{array}{c} w_1 \\ w_i \\ w_n \end{array}\right\rbrack wn×1= w1wiwn , a 3 × 1 = [ a 1 a 2 a 3 ] a_{3\times 1} =\left\lbrack \begin{array}{c} a_1 \\ a_2 \\ a_3 \end{array}\right\rbrack a3×1= a1a2a3
为什么是 a 3 × 1 a_{3\times 1} a3×1? 答:离散点的齐次形式是 3 × 1 3\times 1 3×1的矩阵,则是 3 × 1 3\times 1 3×1,对应二维薄板样条。三维空间的薄板样条则是 a 4 × 1 a_{4\times 1} a4×1,同时点表达为 p i = [ x i y i z i 1 ] T p_i ={\left\lbrack x_i \;y_i \;z_i\;1\right\rbrack }^T pi=[xiyizi1]T -
样条参数的求解
解下列方程,可求出样条的参数项
[ B n × n + λ ⋅ 8 π ⋅ I n × n P n × n P n × n T 0 3 × 3 ] [ w n × 1 a 3 × 1 ] = [ f n × 1 ′ 0 3 × 1 ] \left\lbrack \begin{array}{cc} B_{n\times n\;} +\lambda \cdot 8\pi \cdot I_{n\times n\;} & P_{n\times n} \\ {P_{n\times n} }^T & 0_{3\times 3} \end{array}\right\rbrack \left\lbrack \begin{array}{c} w_{n\times 1} \\ a_{3\times 1} \end{array}\right\rbrack =\left\lbrack \begin{array}{c} f_{n\times 1}^{\prime } \\ 0_{3\times 1} \end{array}\right\rbrack [Bn×n+λ⋅8π⋅In×nPn×nTPn×n03×3][wn×1a3×1]=[fn×1′03×1]其中 f n × 1 ′ f_{n\times 1}^{\prime } fn×1′是在离散点处给出的n个期望函数值,有:
f n × 1 ′ = [ f 1 ′ f i ′ f n ′ ] f_{n\times 1}^{\prime } =\left\lbrack \begin{array}{c} f_1^{\prime } \\ f_i^{\prime } \\ f_n^{\prime } \end{array}\right\rbrack fn×1′= f1′fi′fn′
其余为根据离散点数据要计算的构造项,有:
B n × n = [ b ( r 11 ) b ( r 1 j ) b ( r 1 n ) b ( r i 1 ) . . . . . . b ( r n 1 ) . . . b ( r n n ) ] B_{n\times n\;} =\left\lbrack \begin{array}{ccc} b\left(r_{11} \right) & b\left(r_{1j} \right) & b\left(r_{1n} \right)\\ b\left(r_{\mathrm{i1}} \right) & \ldotp \ldotp \ldotp & \ldotp \ldotp \ldotp \\ b\left(r_{\mathrm{n1}} \right) & \ldotp \ldotp \ldotp & b\left(r_{\mathrm{nn}} \right) \end{array}\right\rbrack Bn×n= b(r11)b(ri1)b(rn1)b(r1j)......b(r1n)...b(rnn) P n × n = [ x 1 y 1 1 x i y i 1 x n y n 1 ] P_{n\times n} =\left\lbrack \begin{array}{ccc} x_1 & y_1 & 1\\ x_{\;i} & y_{\;i} & 1\\ x_n & y_n & 1 \end{array}\right\rbrack Pn×n= x1xixny1yiyn111