TA的每日心情 | 奋斗 2024-7-1 22:21 |
---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2014-8-23 10:15
|只看该作者
|
|邮箱已经成功绑定
Least Squares Fitting
1、最小二乘法:
通过最小化误差的平方和找到一组数据的最佳函数匹配。例如:已知点集(x1,y1),(x2,y2)...., 要拟合的模型表达式为y=f(x), 最小二乘法通过使 ∑|yi-f(xi)|^2最小,可以通过对其求导得出关于每个系数的方程,将点集带入解次超定方程组进而可求得个系数的值,最终得到方程表达式。f(x)可以是直线表达式、曲线表达式等。
2、最小二乘法直线拟合
直线方程为y=kx+b,应用上述原理,得误差表达式为e=∑(yi-k*xi-b))^2,分别对其关于k和b求导得
de/dk=∑(xi*yi-k*xi^2-xi*b)=0
de/db=∑(yi-k*xi-b)=0
整理得:
k*∑xi^2+b*∑xi=∑xi*yi
k∑xi+b=∑yi
设A=∑xi^2,B=∑xi,C=∑yixi,D=∑yi,则方程化为:
Ak+Bb=C
Bk+nb=D
解出a,b得:
k=(Cn-BD)/(An-BB)
b=(AD-CB)/(An-BB)
这就是最小二乘法拟合直线的完整过程。
尽管这是个经典问题的标准线性解,但实际上在视觉应用中没有什么用处,由于这个过程太依赖于坐标系-它把直线的纵坐标的差作为误差(yi-k*xi-b,此即所谓的 vertical distance-垂直距离或竖直距离),以至于此方法完全不能表示竖直的直线。实际中,我们可以用点到直线的实际距离,即根据点到直线的距离公式所得的距离来求。使用直线方程a*x+b*y+c=0,求最小二乘总误差:
∑(a*x+b*y+c)^2
最小,因此约束条件 a^2+b^2=1, 以及Lagrange乘子λ(原理见另一篇blog),得
F=∑(a*x+b*y+c)^2 + λ(a^2+b^2-1)
对其关于a,b,c一次求导按上述方法组成超定方程组求解。 |
|