思路:用已知的三维点坐标拟合一个平面
- 三维平面方程
cos α ⋅ X i + cos β ⋅ Y i + cos γ ⋅ Z i + d = 0 \cos \alpha \cdot X_i+\cos \beta \cdot Y_i+\cos \gamma \cdot Z_i +d=0 cosα⋅Xi+cosβ⋅Yi+cosγ⋅Zi+d=0 - 点到直线距离
d i s t a n c e = ∣ A x 0 + B y 0 + C z 0 + D ∣ A 2 + B 2 + C 2 distance=\frac{|Ax_0+By_0+Cz_0+D|}{\sqrt{A^2+B^2+C^2}} distance=A2+B2+C2∣Ax0+By0+Cz0+D∣ - 优化的目标函数
d i = ∣ cos α ⋅ X i + cos β ⋅ Y i + cos γ ⋅ Z i − d ∣ d_i = |\cos\alpha\cdot X_i+\cos\beta\cdot Y_i+\cos \gamma \cdot Z_i-d| di=∣cosα⋅Xi+cosβ⋅Yi+cosγ⋅Zi−d∣
约束条件: cos 2 α + cos 2 β + cos 2 γ = 1 \cos^2\alpha+\cos^2 \beta+\cos^2\gamma=1 cos2α+cos2β+cos2γ=1
拉格朗日对偶问题:
f = ∑ n = 0 N d i 2 − λ ⋅ ( cos 2 α + cos 2 β + cos 2 γ − 1 ) f=\sum_{n=0}^N d_i^2-\lambda\cdot(\cos^2\alpha+\cos^2\beta+\cos^2\gamma-1) f=∑n=0Ndi2−λ⋅(cos2α+cos2β+cos2γ−1) - 求目标函数f的极小值
∂ f ∂ d i = 2 ⋅ ∑ n = 0 N d i = 2 ∑ n = 0 N ∣ cos α ⋅ X i + cos β ⋅ Y i + cos γ ⋅ Z i − d ∣ = 0 \frac{\partial f}{\partial d_i}= 2\cdot\sum_{n=0}^N d_i = 2\sum_{n=0}^N|\cos\alpha\cdot X_i+\cos\beta\cdot Y_i+\cos \gamma \cdot Z_i-d|=0 ∂di∂f=2⋅n=0∑Ndi=2n=0∑N∣cosα⋅Xi+cosβ⋅Yi+cosγ⋅Zi−d∣=0
由上式可得:
d = cos α ⋅ ∑ n = 0 N X i n + cos β ⋅ ∑ n = 0 N Y i n + cos γ ⋅ ∑ n = 0 N Z i n d=\cos\alpha\cdot \frac{\sum_{n=0}^N X_i}{n}+\cos\beta\cdot \frac{\sum_{n=0}^N Y_i}{n}+\cos\gamma\cdot \frac{\sum_{n=0}^N Z_i}{n} d=cosα⋅n∑n=0NXi+cosβ⋅n∑n=0NYi+cosγ⋅n∑n=0NZi
∑ n = 0 N X i n , ∑ n = 0 N Y i n , ∑ n = 0 N Z i n \frac{\sum_{n=0}^N X_i}{n},\frac{\sum_{n=0}^N Y_i}{n},\frac{\sum_{n=0}^N Z_i}{n} n∑n=0NXi,n∑n=0NYi,n∑n=0NZi为四个点的重心(均值),因此用 X ‾ . Y ‾ , Z ‾ \overline{X}.\,\overline{Y},\overline{Z} X.Y,Z代替
d = cos α ⋅ X ‾ + cos α ⋅ Y ‾ + cos α ⋅ Z ‾ d = \cos\alpha\cdot\overline{X}+\cos\alpha\cdot\overline{Y}+\cos\alpha\cdot\overline{Z} d=cosα⋅X+cosα⋅Y+cosα⋅Z
将d代入到 d i d_i di中
d i = ∣ cos α ⋅ ( X i − X ‾ ) + cos β ⋅ ( Y i − Y ‾ ) + cos γ ⋅ ( Z i − Z ‾ ) ∣ d_i=|\cos\alpha\cdot(X_i-\overline{X})+\cos\beta\cdot(Y_i-\overline{Y})+\cos\gamma\cdot(Z_i-\overline{Z})| di=∣cosα⋅(Xi−X)+cosβ⋅(Yi−Y)+cosγ⋅(Zi−Z)∣
f的新形式:
f = ∑ n = 0 N ( cos α ⋅ ( X i − X ‾ ) + cos β ⋅ ( Y i − Y ‾ ) + cos γ ⋅ ( Z i − Z ‾ ) ) 2 − λ ⋅ ( cos 2 α + cos 2 β + cos 2 γ − 1 ) f=\sum_{n=0}^N(\cos\alpha\cdot(X_i-\overline{X})+\cos\beta\cdot(Y_i-\overline{Y})+\cos\gamma\cdot(Z_i-\overline{Z}))^2-\lambda\cdot(\cos^2\alpha+\cos^2\beta+\cos^2\gamma-1) f=n=0∑N(cosα⋅(Xi−X)+cosβ⋅(Yi−Y)+cosγ⋅(Zi−Z))2−λ⋅(cos2α+cos2β+cos2γ−1)
f对 cos α , cos β , cos γ \cos\alpha,\cos\beta,\cos\gamma cosα,cosβ,cosγ求偏导等于0
∂ f ∂ cos α = 2 ⋅ ∑ n = 0 N ( cos α ⋅ Δ X + cos β ⋅ Δ Y + cos γ ⋅ Δ Z ) ⋅ Δ X − 2 ⋅ λ ⋅ cos α \frac{\partial f}{\partial \cos\alpha}=2\cdot\sum_{n=0}^N (\cos\alpha\cdot\Delta X+\cos\beta\cdot\Delta Y+\cos\gamma\cdot\Delta Z)\cdot\Delta X-2\cdot\lambda\cdot\cos\alpha ∂cosα∂f=2⋅n=0∑N(cosα⋅ΔX+cosβ⋅ΔY+cosγ⋅ΔZ)⋅ΔX−2⋅λ⋅cosα
∂ f ∂ cos β = 2 ⋅ ∑ n = 0 N ( cos α ⋅ Δ X + cos β ⋅ Δ Y + cos γ ⋅ Δ Z ) ⋅ Δ Y − 2 ⋅ λ ⋅ cos β \frac{\partial f}{\partial \cos\beta}=2\cdot\sum_{n=0}^N (\cos\alpha\cdot\Delta X+\cos\beta\cdot\Delta Y+\cos\gamma\cdot\Delta Z)\cdot \Delta Y-2\cdot\lambda\cdot\cos\beta ∂cosβ∂f=2⋅n=0∑N(cosα⋅ΔX+cosβ⋅ΔY+cosγ⋅ΔZ)⋅ΔY−2⋅λ⋅cosβ
∂ f ∂ cos β = 2 ⋅ ∑ n = 0 N ( cos α ⋅ Δ X + cos β ⋅ Δ Y + cos γ ⋅ Δ Z ) ⋅ Δ Z − 2 ⋅ λ ⋅ cos γ \frac{\partial f}{\partial \cos\beta}=2\cdot\sum_{n=0}^N (\cos\alpha\cdot\Delta X+\cos\beta\cdot\Delta Y+\cos\gamma\cdot\Delta Z)\cdot \Delta Z-2\cdot\lambda\cdot\cos\gamma ∂cosβ∂f=2⋅n=0∑N(cosα⋅ΔX+cosβ⋅ΔY+cosγ⋅ΔZ)⋅ΔZ−2⋅λ⋅cosγ
将上述3个式子写成矩阵的形式:
∑ n = 0 N [ Δ X ⋅ Δ X Δ X ⋅ Δ Y Δ X ⋅ Δ Z Δ X ⋅ Δ Y Δ Y ⋅ Δ Y Δ Y ⋅ Δ Z Δ X ⋅ Δ Z Δ Y ⋅ Δ Z Δ Z ⋅ Δ Z ] [ cos α cos β cos γ ] = λ [ cos α cos β cos γ ] \sum_{n=0}^N\left[ \begin{matrix} \Delta X\cdot\Delta X & \Delta X\cdot\Delta Y & \Delta X\cdot\Delta Z \\\Delta X\cdot\Delta Y & \Delta Y\cdot\Delta Y & \Delta Y\cdot\Delta Z \\ \Delta X\cdot\Delta Z & \Delta Y\cdot\Delta Z &\Delta Z\cdot\Delta Z \end{matrix} \right]\left[\begin{matrix} \cos\alpha\\ \cos\beta\\\cos\gamma\end{matrix}\right]=\lambda\left[\begin{matrix}\cos\alpha\\\cos\beta\\\cos\gamma\end{matrix}\right] n=0∑N⎣⎡ΔX⋅ΔXΔX⋅ΔYΔX⋅ΔZΔX⋅ΔYΔY⋅ΔYΔY⋅ΔZΔX⋅ΔZΔY⋅ΔZΔZ⋅ΔZ⎦⎤⎣⎡cosαcosβcosγ⎦⎤=λ⎣⎡cosαcosβcosγ⎦⎤
由上式可以看出,求解最佳法向量变成了求解特征值特征向量。
cos 2 α + cos 2 β + cos 2 γ = 1 , x = ( cos α , cos β , cos γ ) , ∣ x ∣ = 1 \cos^2\alpha+\cos^2\beta+\cos^2\gamma=1,x=(\cos\alpha,\cos\beta,\cos\gamma),|x|=1 cos2α+cos2β+cos2γ=1,x=(cosα,cosβ,cosγ),∣x∣=1
A x ⋅ x = λ x ⋅ x Ax\cdot x=\lambda x\cdot x Ax⋅x=λx⋅x
有: λ = A x ⋅ x = x T ⋅ A ⋅ x \lambda=Ax\cdot x=x^T\cdot A\cdot x λ=Ax⋅x=xT⋅A⋅x
代入A矩阵整理得:
λ = ∑ n = 0 N ( cos α ⋅ Δ X + cos β ⋅ Δ Y + cos γ ⋅ Δ Z ) 2 \lambda=\sum_{n=0}^N(\cos\alpha\cdot \Delta X+\cos\beta\cdot \Delta Y+\cos\gamma\cdot\Delta Z)^2 λ=n=0∑N(cosα⋅ΔX+cosβ⋅ΔY+cosγ⋅ΔZ)2
d i d_i di最小即 λ \lambda λ最小,接下来就是求A得特征分解,得到A的最小特征值,法向量即最小特征值对应的向量。(从上式看出$\lambda $ 大小和 d i d_i di相关,所以选取最小特征值对应的向量)https://blog.csdn.net/weixin_42595206/article/details/116129832