《基于Matlab的曲线拟合.doc》由会员分享,可在线阅读,更多相关《基于Matlab的曲线拟合.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于Matlab的曲线拟合基于Matlab的曲线拟合周丽(物理与电子工程系,10级电子信息工程,学号1008211023)摘 要在现如今的社会,工程上根据特定条件,求出离散点,再根据此离散点做连续化处理。在实际应用中,对推导过去和预测未来有着很广泛的应用。在本文中,首先介绍曲线拟合的含义和目的。其次,介绍实现曲线拟合的最常用方法最小二乘法。第三,根据最小二乘法的原理,介绍基于Matlab怎样实现曲线拟合。最后通过举例说明,从而更好的理解基于Matlab的曲线拟合在实际中的重要作用.关键词:Matlab 曲线拟合 最小二乘法ABSTRACTIn todays society, according
2、 to the specific criteria on the project, calculating the discrete point, again Doing the continuous processing based on the discrete points.In practice, the derivation of the past and predict the future has a wide range of applications.In this article, first describes the meaning and purpose of cur
3、ve fitting。Second, describes the most common method of realization of curve fitting-leastsquares method.Third, according to the principle of least squares, describes how come ture the curve fitting based on Matlab.Last by example, so as to better understand curve fitting based on Matlab in the impor
4、tant role of the actual.Key words: Matlab Curve fitting leastsquares12一 引言在生产实践和科学实验中,经常会遇到大量的不同类型的数据。这些数据提供了有用的信息,可以帮助我们认识事物的内在规律、研究事物之间的关系等。根据一组二维数据,即平面上的若干点,要求确定一个一元函数y=f(x),即曲线,使这些点与曲线总体来说尽量接近,这就是数据拟合成曲线的思想,简称为曲线拟合.曲线拟合的目的是根据实验获得的数据去建立因变量与自变量之间有效的经验函数关系,为进一步的深入研究提供线索.而实现曲线拟合的最常用准则是最小二乘法.二 最小二乘法2
5、.1最小二乘法的定义最小二乘法,又称最小平方法,是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和最小。2.2最小二乘法的工作原理从整体上考虑近似函数同所给数据点(i=0,1,m)误差 (i=0,1,,m)的大小,常用的方法有以下三种:一是误差 (i=0,1,,m)绝对值的最大值,即误差 向量的范数;二是误差绝对值的和,即误差向量r的1范数;三是误差平方和的算术平方根,即误差向量r的2范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2范数的平方,因此在曲线拟合中常采用误
6、差平方和来 度量误差 (i=0,1,m)的整体大小.数据拟合的具体作法是:对给定数据 (i=0,1,,m),在取定的函数类中,求,使误差 (i=0,1,,m)的平方和最小,即 从几何意义上讲,就是寻求与给定点 (i=0,1,,m)的距离平方和为最小的曲线(图1)。函数称为拟合函数或最小二乘解,求拟合函数的方法称为曲线拟合的最小二乘法.在曲线拟合中,函数类可有不同的选取方法.图1三 最小二乘法实现曲线拟合的方法对于实验数据可写出一组方程: 上述方程组可用矩阵形式简记为 (31)在此y=,a,X。式中的用来表示噪声(包括测量噪声等).多项式拟合问题就是由实验数据构成的y和X根据式(31)求多项式系
7、数向量a。在无噪声的情况下,由式(3-1)可知,y是X的列向量线性组合。换句话说,y在X的列所张的空间内,即yspanX.在存在噪声的情况下,若噪声为独立白噪声,且噪声与测量数据无关(它体现为E=0),那么式(31)中的数学关系可形象地用几何正交投影表示,见图2.图2在mn时可用“矩阵除”求取y在spanX上的投影长度,即多项式系数向量a如下: (3-2)需要指出的是:以上的最小二乘解的求取方法不仅适用于多项式模型,还适用其他更广泛的模型.使用该方法的条件是:只要因变量y与自变量的数据阵X满足线性关系就可。注意,这种线性关系是存在于y和X之间,而不是y与x之间。四 最小二乘法的Matlab实现
8、Matlab是一个功能十分强大,使用非常简便的工程计算语言,以矩阵运算为基础,把计算、可视化和程序设计融合到一个交互的环境。用Matlab处理实验数据仅需编写简单程序,运行后就可得到所需的结果,这样既克服了最小二乘法计算量大的缺点,又使繁琐、枯燥的数值运算变成一种简单、直观的可视化操作过程,且能较准确的标记实验数据点和绘出拟合曲线。所以实现曲线拟合,可使用Matlab内部库函数或用户自定义的方程对参变量进行多项式、指数、有理式等形式的数据拟合。下面,介绍Matlab提供的实现曲线拟合的函数:一次函数:p=polyfit(x,y,1)多项式函数:p=polyfit(x,y,n)函数的三个输入量为
9、x,y,n。其中,x和y即为需要建立相互关系的两个量的测量值,以数组的形式输入;n为多项式的次数。输出的是多项式系数的行向量,而得到的多项式是降幂的。在求得多项式系数后,为了求得多项式的值,可用 MATLAB 函数 y=polyval(p,x)求得系数为 p 的多项式在指定点 x 的函数值 y。例如,给定数据组x0、y0,求拟合三阶多项式,并图示拟合情况。x0=0:0.1:1;y0=.447,1。978,3。11,5.25,5.02,4。66,4.01,4。58,3。45,5。35,9。22;n=3;P=polyfit(x0,y0,n)xx=0:0。01:1;yy=polyval(P,xx);
10、plot(xx,yy,-b,x0,y0,。r,MarkerSize,20)legend(拟合曲线,原始数据,Location,SouthEast)xlabel(x) 图 3 采用三阶多项式所得的拟合曲线五 举例说明例一、对以下数据分别作二次和三次多项式拟合,求得多项式系数,并画出图形。表一x24567810121416y6。48。49。289.59.79.8610。210。410.510.6二次多项式拟合程序如下: x=2 4 5 6 7 8 10 12 14 16; r=6。4 8.4 9.28 9.5 9。7 9.86 10。2 10。4 10。5 10.6;n=2;xs=polyfit(
11、x,r,n); 求向量xs系数矩阵xx=2:2:16yy=polyval(xs,xx) 求得拟合出来的多项式在输入值为xx下的yy值plot(x,r,r,xx,yy,b) 画出通过数据点而拟合出来的曲线图4三次多项式拟合程序如下: x=2 4 5 6 7 8 10 12 14 16;r=6。4 8。4 9。28 9.5 9。7 9。86 10。2 10.4 10.5 10。6;xs=polyfit(x,r,3);a=xs(1) % 插值求得三次项系数b=xs(2) % 插值求得二次项系数c=xs(3) % 插值求得一次项系数d=xs(4) % 插值求得常数项系数y=polyval(xs,x)p
12、lot(x,r,r*,x,y,b-)图5例二、 对某日隔两小时测一次气温。设时间为ti气温为Ci ,i=0,2 ,4,24.数据如下:表2 温度(C i )随时间ti)变化关系ti024681012141618202224Ci15141416202328272625221816三次多项式程序如下:x=0 2 4 6 8 10 12 14 16 18 20 22 24;y=15 14 14 16 20 23 26 27 26 25 22 18 16;plot(x,y,o);grid onhold onp=polyfit(x,y,3)x1=0:0.01:24;y1=polyval(p,x1);pl
13、ot(x1,y1,r)axis(0 24 12 28) p = -0。0061 0。1474 0.0246 13.7390图6 温度变化图由图可以大致反映该天的天气变化,如果想知道某一时刻的大致温度,我们可以从图中估计出来,也可以利用polyval( )函数求出那一时刻的温度。如想要得到17 点的大致温度,先由p知拟合的曲线方程为p(x)=,所以在17 点的温度可以这样求得y=polyval(0.0061 0.1474 0。0246 13.7390,17),结果为y=25.9501。六 结束语在学习基于MATLAB曲线拟合过程中,明白了最小二乘法拟合的原理和使用,并结合Matlab,举例说明最
14、小二乘法在其中的具体使用方法,从而快速地将采样数据逼近待测函数或曲线。基于Matlab的曲线拟合,在实际运用中,对推测过去、展现现在、预测未来起到了很大的作用,如例二中举到的关于预测未来温度的问题。七 谢词在Matlab课程学习中,感谢学校为我们提供良好的学习和实验环境,让我们学无后顾之忧。感谢老师的教导,让我了解了Matlab的基本知识,也认识到Matlab的强大作用。感谢同学们的热心帮助,在我学习中遇到问题时,能够认真讲解。参考文献1 张志涌,杨祖樱等。MATLAB教程。 北京:北京航空航天大学出版社,2010.82 傅鹂,龚劬等.数学实验。 北京:科学出版社,2000。93 周品,赵新芳
15、等。MATLAB数学建模与仿真. 北京:国防工业出版社,2009.4附 录 1。若范数满足:.正定性:x0,且x=0 = x=0;.齐次性:cx=cx;.次可加性(三角不等式):x+yx+y 。AB|A| |B|注意到x+yx+y中如令y=x,再利用x=x可以得到x0,即x0在定义中不是必要的。如果线性空间上定义了范数,则称之为赋范线性空间。2.p范数:若x=x1,x2,。,xnT,那么xp=(x1p+|x2p+.+xn|p)1/p当p取1,2,的时候分别是以下几种最简单的情形:1-范数:x1=x1+x2+xn2范数:x2=(x12+x22+xn2)1/2范数:x=max(x1,x2,,xn)其中2-范数就是通常意义下的距离.对于这些范数有以下不等式:x x2 x1 n1/2x2 nx当p=q=2时就是柯西-许瓦兹不等式。