1. 程式人生 > >薄板樣條插值---TPS(Thin Plate Spline)

薄板樣條插值---TPS(Thin Plate Spline)

薄板樣條插值—TPS(Thin Plate Spline)

插值

已知一系列的觀測點 ( x 1 , y 1 )

, ( x 2 , y 2 ) ,
  , ( x n , y n )
\bold {(x_1, y_1), (x_2,y_2), \cdots, (x_n, y_n)} , 這一組觀測值得生成函式 Y = f ( X ) Y=f(X) 未知,如何通過這一組觀測值擬合出一個近似於真實生成函式的表示式。擬合出來的表示式稱之為插值函式。

TPS

薄板樣條的插值函式形式如下:
Φ ( x ) = c + a T x + w T s ( x ) s ( x ) = ( σ ( x x 1 ) , σ ( x x 2 ) ,   , σ ( x x n ) ) T σ ( x ) = x x 2 log x x 2 \begin{aligned} \Phi(\bold x) &= \bold {c + a^Tx + w^Ts(x)} \\ \bold {s(x)} &= \bold{(\sigma(x - x_1), \sigma(x - x_2), \cdots, \sigma(x - x_n))^T } \\ \sigma(\bold x) & = \bold {||x||_x^2\log||x||_x^2}\\ \end{aligned}

其中, c R 1 × 1 , a R D × 1 , w R N × 1 \bf c \in \mathbb R^{1\times 1} ,\bf a \in \mathbb R^{D \times 1}, w \in \mathbb R^{N\times 1} 。 從中可以看出,該函式的輸出值是一個標量,也就是說,如果要針對多個維度進行插值,需要求解多個插值函式。該插值函式總共存在 N + D + 1 N+D+1 個引數。 而每個觀測點都能提供一個如下的約束,共 N N 個約束條件。
y k = Φ ( x k ) y_k = \Phi(x_k)
在認為新增 D + 1 D+1 個約束條件:
k = 1 K w k = 0 k = 1 K w k x k 1 = 0 k = 1 K w k x k D = 0 \begin{aligned} \sum_{k=1}^{K}w_k &= 0 \\ \sum_{k=1}^{K}w_k {\bf x}_k^{1} &= 0 \\ \vdots \\ \sum_{k=1}^{K}w_k {\bf x}_k^{D} &= 0 \\ \end{aligned}

令:
X = [ x 1 1 x 1 2 x 1 D x 2 1 x 2 2 x 2 D x N 1 x N 2 x N D ] Y = [ y 1 y 2 y N ] S = [ σ ( x 1 x 1 ) σ ( x 1 x 2 ) σ ( x 1 x N ) σ ( x 2 x 1 ) σ ( x 2 x 2 ) σ ( x 2 x N ) σ ( x N x 1 )