LSCM最小二乘保角参数化
最小二乘思想
已知一组点的数据(x,y)
x | x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | … | x n x_n xn |
---|---|---|---|---|---|
y | y 1 y_1 y1 | y 2 y_2 y2 | y 3 y_3 y3 | … | y n y_n yn |
可以近似为线性关系 y = a x + b y=ax+b y=ax+b ,目标为确定常数 a a a , b b b ;
解法:找到 a a a , b b b ,使得所有 y i y_i yi 与 a x i + b ax_i+b axi+b 偏差的平方和
Q = ∑ i = 1 n ( y i − a x i − b ) 2 Q=\sum_{i=1}^n(y_i-ax_i-b)^2 Q=i=1∑n(yi−axi−b)2
最小,此方法为最小二乘法, y = a x + b y=ax+b y=ax+b 视为 y y y 与 x x x 之间的近似函数关系
确定常数 a a a , b b b ,使用函数求无条件极值的方法,让 Q Q Q 对 a a a , b b b 分别求导通过求其驻点来得到 Q Q Q 的极值点,令
∂ Q ∂ a = − 2 ∑ i = 1 n ( y i − a x i − b ) x i = ( 2 ∑ i = 1 n x i 2 ) a + ( 2 ∑ i = 1 n x i ) b − 2 ∑ i = 1 n x i y i = 0 \frac{\partial Q}{\partial a}=-2\sum_{i=1}^n(y_i-ax_i-b)x_i=(2\sum_{i=1}^nx_i^2)a+(2\sum_{i=1}^nx_i)b-2\sum_{i=1}^nx_iy_i=0 ∂a∂Q=−2i=1∑n(yi−axi−b)xi=(2i=1∑nxi2)a+(2i=1∑nxi)b−2i=1∑nxiyi=0
∂ Q ∂ b = − 2 ∑ i = 1 n ( y i − a x i − b ) = ( 2 ∑ i = 1 n x i ) a + ( 2 ∑ i = 1 n 1 ) b − 2 ∑ i = 1 n y i = 0 \frac{\partial Q}{\partial b}=-2\sum_{i=1}^n(y_i-ax_i-b)=(2\sum_{i=1}^nx_i)a+(2\sum_{i=1}^n1)b-2\sum_{i=1}^ny_i=0 ∂b∂Q=−2i=1∑n(yi−axi−b)=(2i=1∑nxi)a+(2i=1∑n1)b−2i=1∑nyi=0
于是得到线性方程组
( ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i n ) ( a b ) = ( ∑ i = 1 n x i y i ∑ i = 1 n y i ) \left(\begin{matrix} \sum_{i=1}^nx_i^2&\sum_{i=1}^nx_i\\ \sum_{i=1}^nx_i&n \end{matrix}\right) \left(\begin{matrix} a\\ b \end{matrix}\right)= \left(\begin{matrix} \sum_{i=1}^nx_iy_i\\ \sum_{i=1}^ny_i \end{matrix}\right) (∑i=1nxi2∑i=1nxi∑i=1nxin)(ab)=(∑i=1nxiyi∑i=1nyi)
接下来就可以通过矩阵求解解出 a a a, b b b的值
梯度的概念
假设有一向量值函数 f f f ,在三角形的三个点处值已知记为 f ( x i ) = f i = ( u i , v i ) f(\pmb{x_i})=f_i=(u_i,v_i) f(xixixi)=fi=(ui,vi) , f ( x j ) = f j = ( u j , v j ) f(\pmb{x_j})=f_j=(u_j,v_j) f(xjxjxj)=fj=(uj,vj) , f ( x k ) = f k = ( u k , v k ) f(\pmb{x_k})=f_k=(u_k,v_k) f(xkxkxk)=fk=(uk,vk) , 在三角形的其他点处对其进行插值如图所示
f ( x ) = f i B i ( x ) + f j B j ( x ) + f k B k ( x ) f(\pmb{x})=f_iB_i(\pmb{x})+f_jB_j(\pmb{x})+f_kB_k(\pmb{x}) f(xxx)=fiBi(xxx)+fjBj(xxx)+fkBk(xxx)
其中 B i ( x ) = S i ( x ) S B_i(\pmb{x})=\frac{S_i(\pmb{x})}{S} Bi(xxx)=SSi(xxx) , S i ( x ) S_i(\pmb{x}) Si(xxx) 为点 x i x_i xi 的对边与点 x x x 所构成的三角形面积, S S S 为原三角形的面积,于是
▽ f ( x ) = f i ▽ B i ( x ) + f j ▽ B j ( x ) + f k ▽ B k ( x ) \triangledown f(\pmb{x})=f_i\triangledown B_i(\pmb{x})+f_j\triangledown B_j(\pmb{x})+f_k\triangledown B_k(\pmb{x}) ▽f(xxx)=fi▽Bi(xxx)+f