赞
踩
已知有N个点 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} {x1,x2,...,xn},可以通过变换函数 y = f ( x ) y=f(x) y=f(x)变换到 { y 1 , y 2 , . . . , y n } \{y_1,y_2,...,y_n\} {y1,y2,...,yn},此时,如果已知N个点 X X X和 Y Y Y,如何求解函数 y = f ( x ) y=f(x) y=f(x)
给定的插值函数形式如下:
Φ
(
X
)
=
c
+
a
T
X
+
w
T
s
(
X
)
s
(
X
)
=
(
σ
(
X
−
X
1
)
,
σ
(
X
−
X
2
)
,
.
.
.
,
σ
(
X
−
X
N
)
)
T
σ
(
X
)
=
∣
∣
X
∣
∣
2
2
log
∣
∣
X
∣
∣
2
对于2维空间则有
Φ
(
X
)
=
[
Φ
1
(
X
)
Φ
2
(
X
)
]
\Phi(X)= \left[
对于每一个维度,都需要求解一个插值函数。这里不具体讨论为什么给出这种形式的插值函数,仅考虑如何对方程参数进行求解
2维空间中,TPS插值函数需要求解N+3个参数,其中
w
∈
R
N
×
1
w\in R^{N\times1}
w∈RN×1,
a
∈
R
2
×
1
a \in R^{2\times1}
a∈R2×1和
c
∈
R
1
×
1
c \in R^{1\times1}
c∈R1×1。原方程
Φ
(
X
)
\Phi(X)
Φ(X)可以改写为矩阵形式如下:
[
S
1
N
X
]
[
w
c
a
]
=
[
Y
x
]
\left[
扩展成齐次式如下把方程扩展成如下形式:
[
S
1
N
X
1
N
T
0
0
X
T
0
0
]
[
w
c
a
]
=
[
Y
x
0
0
]
\left[
可以令
Γ
=
[
S
1
N
X
1
N
T
0
0
X
T
0
0
]
\Gamma= \left[
则可以知道当
S
S
S是非奇异矩阵时,
Γ
\Gamma
Γ也是非奇异矩阵,于是可以通过矩阵的逆求解方程参数:
[
w
c
a
]
=
Γ
−
1
[
Y
x
0
0
]
\left[
此时有
Γ
[
w
c
a
]
=
[
S
w
+
c
+
X
a
1
T
w
X
T
w
]
=
[
Y
x
0
0
]
\Gamma\left[
即还需要需要令
∑
k
=
1
N
w
k
=
0
\sum_{k=1}^N w_k=0
k=1∑Nwk=0
∑
k
=
1
N
x
k
x
w
k
=
0
\sum_{k=1}^N x_k^xw_k=0
k=1∑Nxkxwk=0
∑
k
=
1
N
x
k
y
w
k
=
0
\sum_{k=1}^N x_k^yw_k=0
k=1∑Nxkywk=0
对于2维空间,
Φ
1
\Phi_1
Φ1和
Φ
2
\Phi_2
Φ2可以通过一个线性方程来求解,如下所示:
[
w
x
w
y
c
x
c
y
a
x
a
y
]
=
Γ
−
1
[
Y
x
Y
y
0
0
0
0
]
\left[
可能会有错误,主要是想说明对于TPS插值为什么会要添加三个约束。欢迎指正!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。