最小二乘法的应用比较_第1页
最小二乘法的应用比较_第2页
最小二乘法的应用比较_第3页
最小二乘法的应用比较_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最小二乘法的应用摘要在测绘学科总体最小二乘的研究虽然近几年刚开展,但是已受到越来越多学者的关注,正在成为测绘数据处理研究的热点问题之一。对工程实践中测得的数据进行理论分析,用恰当的函数去模拟数据原型是一类十分重要的问题,最常用的逼近原那么是让实测数据和估计数据之间的距离平方和最小,这即是最小二乘法。本节最小二乘法的理论推导过程的根底上,针对不同类型的拟合问题,包括一般的非线性问题,用具体实例的形式给出了如何使用MATLAB去求解它们。关键词:最小二乘法;MATLAB;测量平差;信号处理;1最小二乘法的根本原理及MATLAB实现1.1线性拟合最小二乘法是测量数据处理的最根本、应用最广泛的方法,对于经典的最小二乘法是只考虑观测向量的误差,假设系数阵没有误差或不考虑系数阵的误差。然而系数矩阵包含误差的情况在测量数据实践中是存在的。有一组实测数据:x0.10.20.30.40.50.60.70.80.91.0y2.32012.64702.90703.28853.00083.90904.21474.51914.82325.1235该数据可能满足的原型函数为y=ax+b,试求出满足上面数据的最小二乘解的值。首先绘出离散点图;〔图1.1〕在图1.1中我们用红五星代表离散点。从图形来看,离散点大致落在一条直线上,故可以用线性拟合来求出离散点间满足的关系。假设所求直线为y=ax+b,下面应用最小二乘法原理求出a和b。令,最小二乘法原理就是求出使M取得最小值时的a和b,如果把M看作是自变量为a和b的函数,由多元函数取最值的条件可知,上述问题可以通过求方程:,整理得:由初始数据可得到:5.5,,代入方程组(1)得:由此解得:因此拟合曲线为:y=3.13x十2.01,该拟合曲线在图1.1中用蓝色实线表示。上述解题过程在MATLAB环境下,可以直接使用polyfit函数实现,具体的命令格式为:>>plot(x,y)>>x=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0];y=[2.3201,2.6470,2.9070,3.2885,3.6008,3.9090,4.2147,4.5191,4.8232,5.1235];>>p=polyfit(x,y,1)p=3.12802.0149>>plot(x,y)其中polyfit函数中的输入参数1表示采用一次多项式方式拟合,即线性拟合。输出参数P是一个12的行向量,其中p(1)是x的系数,p(2)是常数项。1.2多项式拟合假设数据满足的函数原型为n次多项式,那么polyfit函数用上述最小二乘法原理同样可以求出,其命令格式为:,其中输入参数x和y分别是己知数据的横坐标和纵坐标数组,n指明采用的拟合多项式的次数;输出参数P是一个1(n+1)的行向量,具体来说,p(1)是x的系数,p(2)是的系数,……,P(n+1)是常数项。1.3一般的非线性拟合x367793418628137910054y16.5150.6263.124.7208.59.92.7对上表中的数据,理论分析得到数据满足的函数原型为:那么根据最小二乘法原理,如何求得a(1),a(2)和a(3)呢?对这类问题,可以利用MATLAB提供的Isqcurvefit函数解决,具体步骤为:首先在M文本编辑器里编写用户自定义函数:functionF=myfun(a,x)F=a(1)*x.^2+a(2)'sin(x)+a(3)*x.^3然后在脚本函数中调用lspcurvefit函数,详细程序如下:>>x=[3.6,7.7,9.3,4.1,8.6,2.8,1.3,7.9,10.0,5.4];>>y=[16.5,150.6,263.1,24.7,208.5,9.9,2.7,163.9,325.0,54.3];>>a0=[000];>>a=Isqcurvefit(@myfun,a0,x,y)其中a0为a的最初预测值,@myfun表示myfun的函数句柄,通过上述程序可求得:a=[0.2269,0.3385,0.3022]即:请注意,最终得到的结果与最初预测值a0无关。如果不想编写自定义函数,我们也可用下面的方式求解,只需将脚本函数中的最后一条语句改为:a=lsqcurvefit(@(a,act(1)*x.^2+a(2)*sin(x)+a(3)*x.^3,a0,x,y)得到的结果是一样,下面给出离散点图和拟合曲线,如图1.2:(图1.2)最小二乘法原理在很多领域都有着广泛的应用,利用MATLAB求解非常方便,但一定要主要问题的类型,尤其是对非线性问题,最终得到的结果要保证收敛并且在有效的误差范围内,如果不能满足上述要求,那么要根据具体问题的要求,依据最小二乘法的原理去重新编写程序.2最小二乘法在测量平差中的应用平差问题是由于测量中进行了多余观测而产生,不管采用何种平差模型,平差的最终目的都是求取观测值的最或然值,并评定其精度,由于多余观测而产生的平差数字模型都不肯能直接获得唯一解,例如:单三角测量中,分别观测了三角形的三个内角,而条件却只有一个,即:此时只有一个方程却有三个待求量,显然,有无穷多解,而测量平差的目的就是要在这无穷多解中附加某种约束,找出一组最为适宜的解,这种约束就是采用某种准那么实现的,其中族广泛采用的就是最小二乘原理。所谓最小二乘原理就是在满足的前提下,解出观测值的估值,参照上面的例子设:〔式中A、B、C为观测值的真值,为观测值,、、为改正值〕那么所求出来的改正值要在满足:++=180-〔〕=w的条件下,同时又满足很明显这是一个多元函数的条件极值问题,高等数学中求解极值问题的方法称为拉格朗日乘子法。平差问题形式千变万化,公式繁琐,令人眼花缭乱,但依据最小二乘法,实质上也只有一句话,将理论闭合差w分成n个数vvv之和,如何分法才能使。下面我们用拉格朗日乘子法来求解。令:其中为目标函数,=0为约束条件。那么原问题为研究条件极值问题:s.t=0构造辅助函数:=-=〔〕-〔〕分别对及求导,那么有:…………可得到:所以有:至此,条件极值的解已经求出,但问题仍没完全解决,因为,从纯数学的角度来看,所求解完全有可能是另外一种我们最不愿看到的情况—最大值。在这单要直接证明方程的解是最小值是困难的,但是借助于逻辑学中的排中律,如果能证明方程的解不是最大值那么必然是最小值,仔细看看前面的式子,在满足的前题下,存在吗?(可以这样不太严谨却十分简单的举例理解,例如当V=10000,V=-10000,V=10000,V=-10000……V=w,我们总可以使=w,但却可能趋向无穷大,亦即的极大值不存在)既然其最大值不存在,那么必然就是最后的解了。最后,综上所述,结合实际,做一个简单的补充,以最简单的单三角测量为例。己知,同精度观测值求三个观测值的平差值。依据条件列程:++=180-〔〕=9这里只有一个方程却有三个未知量,显然有无穷多个解,例如:或:但是依据上面的条件极值的理论,我们只会选择这组解,因此这种是先在符和条件的前题下,计算出来的唯一解,所以,它肯定满足我们所需要的条件,即=27;事实上,我们可以做个简单的计算,当时,=51;当时,=33;而当时,=27。依据条件极值的理论,利用拉格朗日乘子法,可求出函数的极值,至于到底是极大值还是极小值,那么需要结合问题本身的数学、物理意义及实际背景。条件极值理论可帮助我们方便的解决一些理论上的难题,更重要的是,在工程建设及实际生活中条件极值理论在节省本钱、节约材料方面有很大的实用价值,这在提倡节约型社会的今天尤其具有现实意义。参考文献:[1]同济大学应用数学系.高等数学[M].

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论