根据一系列的三维空间点,求解该点集合的最优平面,确定该平面的法向量。
根据点的空间位置
(
X
i
,
Y
i
,
Z
i
)
( X_{i},Y_{i},Z_{i})
(Xi,Yi,Zi),假设最优平面的方程为:
c
o
s
α
X
+
c
o
s
β
Y
+
c
o
s
γ
Z
+
p
=
0
cos \alpha X + cos \beta Y + cos \gamma Z + p = 0
cosαX+cosβY+cosγZ+p=0
式中
c
o
s
α
,
c
o
s
β
,
c
o
s
γ
cos\alpha,cos\beta,cos\gamma
cosα,cosβ,cosγ为平面上点
(
X
,
Y
,
Z
)
(X,Y,Z)
(X,Y,Z)处的法向量的方向余弦,
∣
p
∣
|p|
∣p∣为原点到平面的距离。上式也可改写为:
a
x
+
b
y
+
c
z
=
d
(
d
≥
0
)
,
a
2
+
b
2
+
c
2
=
1
ax + by + cz = d(d \geq 0), a^{2} + b^{2}+c^{2}=1
ax+by+cz=d(d≥0),a2+b2+c2=1
求参数 a b c d 即可求出空间点所对应的最优平面。
————————————————————————————————————
由空间点集合
(
X
i
,
Y
i
,
Z
i
)
,
i
∈
1
,
2
,
3
…
…
n
(X_{i},Y_{i},Z_{i}),i \in 1,2,3……n
(Xi,Yi,Zi),i∈1,2,3……n,及平面方程
a
x
+
b
y
+
c
z
=
d
(
d
≥
0
)
,
a
2
+
b
2
+
c
2
=
1
ax + by + cz = d(d \geq 0), a^{2} + b^{2}+c^{2}=1
ax+by+cz=d(d≥0),a2+b2+c2=1,可得任意空间点到该平面的距离为:
d
i
=
∣
a
x
i
+
b
y
i
+
c
z
i
−
d
∣
d_{i} = |ax_{i} + by_{i} + cz_{i}-d|
di=∣axi+byi+czi−d∣
要获得最优的平面,即所有空间点到该平面的距离最小:
d
=
min
∑
n
=
0
N
d
n
2
d =\min \sum^{N}_{n=0} d_{n}^{2}
d=minn=0∑Ndn2
前提条件为
a
2
+
b
2
+
c
2
=
1
a^{2} + b^{2}+c^{2}=1
a2+b2+c2=1。
因此构建误差函数:
f
=
∑
n
=
0
N
(
d
n
2
−
λ
(
a
2
+
b
2
+
c
2
)
f = \sum^{N}_{n=0}(d_{n}^{2} - \lambda(a^{2} + b^{2}+c^{2})
f=n=0∑N(dn2−λ(a2+b2+c2)
————————————————————————————————————
求极值:
对参数a、b、c、d求偏导:
∂
f
∂
d
=
−
2
d
n
=
−
2
∗
∑
n
=
0
N
(
a
x
n
+
b
y
n
+
c
z
n
−
d
)
\frac{\partial f}{\partial d} = -2 d_{n} = -2 * \sum^{N}_{n=0}(ax_{n} + by_{n} + cz_{n}-d)
∂d∂f=−2dn=−2∗n=0∑N(axn+byn+czn−d)
所以当
d
=
a
∑
n
=
0
N
X
n
n
+
b
∑
n
=
0
N
Y
n
n
+
c
∑
n
=
0
N
Z
n
n
d=a \frac{ \sum^{N}_{n=0} X_{n}}{n} + b \frac{ \sum^{N}_{n=0} Y_{n}}{n} + c \frac{ \sum^{N}_{n=0} Z_{n}}{n}
d=an∑n=0NXn+bn∑n=0NYn+cn∑n=0NZn。
可以发现,
∑
n
=
0
N
X
n
n
\frac{ \sum^{N}_{n=0} X_{n}}{n}
n∑n=0NXn就是均值!
此时,距离d可以改写为:
d
i
=
∣
a
x
i
+
b
y
i
+
c
z
i
−
d
∣
=
∣
a
(
X
i
−
∑
n
=
0
N
X
n
n
)
+
b
(
Y
i
−
∑
n
=
0
N
Y
n
n
)
+
c
(
Z
i
−
∑
n
=
0
N
Z
n
n
)
∣
=
∣
a
(
X
i
−
X
ˉ
)
+
b
(
Y
i
−
Y
ˉ
)
+
c
(
Z
i
−
Z
ˉ
)
∣
\begin{aligned} d_{i} &= |ax_{i} + by_{i} + cz_{i}-d| \\ &= |a(X_{i} - \frac{ \sum^{N}_{n=0} X_{n}}{n} ) + b(Y_{i} - \frac{ \sum^{N}_{n=0} Y_{n}}{n} ) + c(Z_{i} - \frac{ \sum^{N}_{n=0} Z_{n}}{n} )| \\ &= |a (X_{i}-\bar{X}) + b (Y_{i}-\bar{Y}) + c (Z_{i}-\bar{Z})| \end{aligned}
di=∣axi+byi+czi−d∣=∣a(Xi−n∑n=0NXn)+b(Yi−n∑n=0NYn)+c(Zi−n∑n=0NZn)∣=∣a(Xi−Xˉ)+b(Yi−Yˉ)+c(Zi−Zˉ)∣
继续对a求偏导可得:
∂
f
∂
a
=
2
∑
n
=
0
N
(
a
(
X
i
−
X
ˉ
)
+
b
(
Y
i
−
Y
ˉ
)
+
c
(
Z
i
−
Z
ˉ
)
)
(
X
i
−
X
ˉ
)
−
2
λ
a
\frac{\partial f}{\partial a} = 2 \sum^{N}_{n=0}(a (X_{i}-\bar{X}) + b (Y_{i}-\bar{Y}) + c (Z_{i}-\bar{Z}))(X_{i}-\bar{X}) -2 \lambda a
∂a∂f=2n=0∑N(a(Xi−Xˉ)+b(Yi−Yˉ)+c(Zi−Zˉ))(Xi−Xˉ)−2λa
令
△
X
i
=
(
X
i
−
X
ˉ
)
,
△
Y
i
=
(
Y
i
−
Y
ˉ
)
,
△
Z
i
=
(
Z
i
−
Z
ˉ
)
\triangle X_{i} =( X_{i}-\bar{X}),\triangle Y_{i} =( Y_{i}-\bar{Y}),\triangle Z_{i} =( Z_{i}-\bar{Z})
△Xi=(Xi−Xˉ),△Yi=(Yi−Yˉ),△Zi=(Zi−Zˉ),则:
∂
f
∂
a
=
2
∑
n
=
0
N
(
a
△
X
i
+
b
△
Y
i
+
c
△
Z
i
)
△
X
i
−
2
λ
a
=
0
\frac{\partial f}{\partial a} = 2 \sum^{N}_{n=0}(a \triangle X_{i} + b \triangle Y_{i} + c \triangle Z_{i})\triangle X_{i}-2 \lambda a = 0
∂a∂f=2n=0∑N(a△Xi+b△Yi+c△Zi)△Xi−2λa=0
同理可得:
∂
f
∂
b
=
2
∑
n
=
0
N
(
a
△
X
i
+
b
△
Y
i
+
c
△
Z
i
)
△
Y
i
−
2
λ
b
=
0
\frac{\partial f}{\partial b} = 2 \sum^{N}_{n=0}(a \triangle X_{i} + b \triangle Y_{i} + c \triangle Z_{i})\triangle Y_{i}-2 \lambda b = 0
∂b∂f=2n=0∑N(a△Xi+b△Yi+c△Zi)△Yi−2λb=0
∂
f
∂
c
=
2
∑
n
=
0
N
(
a
△
X
i
+
b
△
Y
i
+
c
△
Z
i
)
△
Z
i
−
2
λ
c
=
0
\frac{\partial f}{\partial c} = 2 \sum^{N}_{n=0}(a \triangle X_{i} + b \triangle Y_{i} + c \triangle Z_{i})\triangle Z_{i}-2 \lambda c = 0
∂c∂f=2n=0∑N(a△Xi+b△Yi+c△Zi)△Zi−2λc=0
将三式整理成矩阵形式:
[
∑
△
X
i
△
X
i
∑
△
X
i
△
Y
i
∑
△
X
i
△
Z
i
∑
△
X
i
△
Y
i
∑
△
Y
i
△
Y
i
∑
△
Y
i
△
Z
i
∑
△
X
i
△
Z
i
∑
△
Y
i
△
Z
i
∑
△
Z
i
△
Z
i
]
⋅
[
a
b
c
]
=
λ
⋅
[
a
b
c
]
\begin{bmatrix} \sum \triangle X_{i} \triangle X_{i} && \sum \triangle X_{i} \triangle Y_{i} && \sum \triangle X_{i} \triangle Z_{i} \\ \sum \triangle X_{i} \triangle Y_{i} && \sum \triangle Y_{i} \triangle Y_{i} && \sum \triangle Y_{i} \triangle Z_{i} \\ \sum \triangle X_{i} \triangle Z_{i} && \sum \triangle Y_{i} \triangle Z_{i} && \sum \triangle Z_{i} \triangle Z_{i} \end{bmatrix} \cdot \begin{bmatrix} a \\ b \\c \end{bmatrix} = \lambda \cdot \begin{bmatrix} a \\ b \\c \end{bmatrix}
⎣⎡∑△Xi△Xi∑△Xi△Yi∑△Xi△Zi∑△Xi△Yi∑△Yi△Yi∑△Yi△Zi∑△Xi△Zi∑△Yi△Zi∑△Zi△Zi⎦⎤⋅⎣⎡abc⎦⎤=λ⋅⎣⎡abc⎦⎤
这个式子就是矩阵的特征值与特征向量的定义式。最小特征值对应的特征向量即为满足条件
a
2
+
b
2
+
c
2
=
1
a^{2} + b^{2}+c^{2}=1
a2+b2+c2=1的解。
——————————————————
假设解为X = (a,b,c),
a
2
+
b
2
+
c
2
=
1
a^{2} + b^{2}+c^{2}=1
a2+b2+c2=1。可以得 |X| = 1 ,又因为
A
x
=
λ
x
Ax=\lambda x
Ax=λx,因此
∣
(
A
x
,
x
)
∣
=
∣
(
λ
x
,
x
)
∣
=
∣
λ
(
x
,
x
)
∣
=
λ
|(Ax,x)| =| (\lambda x,x)| = |\lambda (x,x)| = \lambda
∣(Ax,x)∣=∣(λx,x)∣=∣λ(x,x)∣=λ
λ
\lambda
λ即为(Ax,x)的模长,求模长为:
(
A
x
)
T
⋅
x
=
x
T
A
T
x
=
x
T
A
x
(Ax)^{T} \cdot x = x^{T} A^{T} x = x^{T}Ax
(Ax)T⋅x=xTATx=xTAx
化简就可以得到:
λ
=
∑
n
=
0
N
(
a
△
X
i
+
b
△
Y
i
+
c
△
Z
i
)
2
=
∑
n
=
0
N
d
n
2
\lambda =\sum^{N}_{n=0}(a \triangle X_{i} + b \triangle Y_{i} + c \triangle Z_{i})^{2} = \sum^{N}_{n=0}d_{n}^{2}
λ=n=0∑N(a△Xi+b△Yi+c△Zi)2=n=0∑Ndn2
所以求距离最小就变成了
λ
\lambda
λ最小,因此最小特征值对应的特征向量为平面的法向量。
其实我是这么理解的,矩阵中平面的法向量与平面上的所有向量的点乘积为0,也就是最不重要的那一部分。对应到特征值上,那就是最小特征值啦~~(个人见解)