论文710707107郑洪滟.docx
《论文710707107郑洪滟.docx》由会员分享,可在线阅读,更多相关《论文710707107郑洪滟.docx(18页珍藏版)》请在冰豆网上搜索。
论文710707107郑洪滟
本科生毕业论文
基于MATLAB的不同曲线拟合方式的比较研究
郑洪滟
院系:
电子信息工程学系
专业:
测控技术与仪器
班级:
071
学号:
710707107
指导教师:
肖郑颖
职称(或学位):
助理实验师/硕士
2011年5月
原创性声明
本人郑重声明:
所呈交的论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体已经发表或撰写过的作品成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律结果由本人承担。
学生签名:
年月日
指导声明
本人指导的同学的毕业论文(设计)题目大小、难度适当,且符合该同学所学专业的培养目标的要求。
本人在指导过程中,通过网上文献搜索及文献比对等方式,对其毕业论文(设计)内容进行了检查,未发现抄袭现象,特此声明。
指导教师签名:
年月日
目录
1引言2
2软件介绍2
2.1MATLAB简介2
2.2MATLAB曲线拟合工具箱简介2
3曲线拟合4
3.1曲线拟合理论4
3.2最小二乘法拟合4
4基于MATLAB的曲线拟合5
4.1曲线拟合数据来源5
4.2指数函数曲线拟合6
4.3最小二乘法多项式曲线拟合7
4.4内插式曲线拟合8
4.5平滑样条曲线拟合9
5曲线拟合结果的比较11
6结论12
致谢13
参考文献13
基于MATLAB的不同曲线拟合方式的比较研究
郑洪滟
(电子信息工程学系指导教师:
肖郑颖)
摘要:
随着现代计算机技术的快速发展,计算机软件的应用范围越来越广泛。
基于MATLAB软件曲线拟合的方法也越来越广泛地应用到工程分析和科学研究中。
采用MATLAB曲线拟合工具箱对数据集进行拟合处理,可以快速地在简单易用的环境中实现许多基本的曲线拟合。
文章对曲线拟合进行理论分析和数学描述,引入可视化高性能的工具软件MATLAB对曲线进行最小二乘法拟合、指数函数拟合、内插式曲线拟合和平滑样条式曲线拟合。
最后结合具体问题和曲线拟合各个要素从中选择最优拟合方式。
关键词:
MATLAB;曲线拟合;最小二乘法;曲线拟合工具箱
Abstract:
Withtherapiddevelopmentofmoderncomputertechnology,thecomputersoftwareiswidelyused.BasedontheMATLABsoftwarecurvefittingmethodisalsomoreandmorewidelyappliedtoengineeringanalysisandscientificresearch.UsingMATLABtoolboxofcurffittingtodealwithdatasetscanquicklyineasy-to-useenvironmenttorealizemanybasiccurvefitting.Inthepapercurvefittingistheoreticallyanalyzedandmathematicaldescribed,andadoptstheMATLABtothecurvefortheleastsquarefitting,exponentialfunctionfitting,interpolantcurvefitting,andsmoothingsplinecurvefitting.Finally,theoptimalwayistobeselectedfromeveryelementsofthecurvefittingconsideringthespecificproblemsofvariousfactors.
Keywords:
MATLAB;curvefitting;leastsquaremethod;curvefittingtoolbox
1引言
在应用领域中,经常面对大量的数据,我们总希望能找到一个解析函数用它来描述这些点的变化规律且可以用来预测,这就要用到曲线拟合[1]。
曲线拟合的目的是找到一条光滑的曲线使它能够最佳的拟合数据,但不要求该曲线一定要经过每一点。
曲线拟合应用非常广泛,在计算科学领域中占有非常重要地位。
人们对某一未知领域的研究,为了探索其内在的规律,建立了相应的数学模型,而模型中往往含有某些待定的参数,要确定这些参数,就要用到数据拟合[2]。
可见曲线拟合方式的全面研究对科学计算具有重大的现实意义。
MATLAB作为一种用于数值计算和可视化图形的高级计算软件。
它有着开放式可扩充体系结构,又可以灵活修改、补充和扩展MATLAB能力[3]。
MATLAB提供了两种曲线拟合方法:
一种是采用函数形式,使用编程对数据进行拟合,使用这种方法对拟合函数要有较好的了解;还有一种是用图形窗口进行操作,具有简便、快速,可操作性强的优点[4]。
本文研究的内容是利用MATLAB对曲线进行最小二乘法拟合,指数函数拟合,内插式曲线拟合和平滑样条式曲线拟合,相互比较得到最优的拟合方式。
2软件介绍
2.1MATLAB简介
MATLAB的名字是由Matrix和Laboratory两个词的前三个字母组成的[5]。
MATLAB作为一种科学计算软件,它主要用于矩阵的运算及控制和信息处理领域分析及设计。
以模块化的计算方法、丰富的矩阵运算、可视化与智能化的人机互换功能、图形绘制和数据处理函数,成为系统设计和仿真领域中最受欢迎的软件系统。
MATLAB是“矩阵实验室”(MatrixLaboratoy)的缩写,它是一种以矩阵运算为基础的交换式程序语言,专门针对科学、工程计算机绘图的需求[6]。
MATLAB的主要特点是简洁和智能化,它适应科技人员的思维方式和书写习惯,使编程和调试效率大大提高。
它采用解释方式工作,输入程序马上得出结果,人机交互性能好,因此深得科技人员的喜爱,尤其是它可以适应多种平台,随计算机软硬件的更新及时的升级。
MATLAB语言在国外的大学,特别是用数值计算频繁的电子信息类学科中,它已成为每个学生的工具了。
据调查在工业部门和设计研究单位,MATLAB已被认为是高效研究和开发的首选工具。
学习掌握MATLAB软件,可以说在科学计算软件工具上与国际相接轨。
2.2MATLAB曲线拟合工具箱简介
采用MATLAB做曲线拟合可以内建函数或曲线拟合工具箱(CurveFittingToolbox)。
这个工具箱集成了用MATLAB建立的图形用户界面GUIS和M文件函数[7]。
GUIS界面是一个可视化的图形界面,具有较强的图形拟合功能:
①用散点图来表示数据集;②用残差和置信区间可视化地估计拟合结果的好坏[8];③采用多种拟合方式对数据拟合。
利用GUIS界面,可以快速地实现许多基本的曲线拟合。
访问曲线拟合工具箱之前,输入一份供分析的数据;打开曲线拟合工具箱,请输入cftool。
该命令可以打开CurveFittingTool窗口(见图1)。
然后选择Data按钮,打开Data窗口可以访问工作区中的数据并从下拉表中选择变量X、Y(见图2)。
在Datasetname位置指定一个数据集名称,否则MATLAB将默认一个数据集名称。
这时关闭Data窗口。
回到CurveFittingTool窗口,选择Fitting按钮,打开的窗口中可以选择拟合方法。
这时单击Newfit按钮,并从Typeoffit的下拉列表中选择一种拟合方式。
可以试用多种拟合方式,以找出最佳图形。
以直线拟合为例,选择一种插值方式,使曲线进过所有的数据点。
曲线拟合结果如图3所示。
例:
x=0:
6;
y=[01030556789120];
cftool
图1CurveFittingTool窗口
图2Data窗口
图3直线拟合
3曲线拟合
3.1曲线拟合理论
曲线拟合就是拟合测量数据的曲线。
在寻找自变量和因变量关系的过程中,由于观察数据
来源于实验,往往不精确,因此不要求函数关系
经过所有的观测点,而是只要求在观测点上的误差
按某种给定的标准最小[9]。
如果记
,研究中就是要寻找使范数
最小的函数关系式。
这就是我们通常说的曲线逼近或曲线拟合。
拟合的标准通常随着范数的不同而不同,范数越大计算就越难,所以经常使用的拟合方式是最小二乘拟合。
3.2最小二乘法拟合
在工作中,通常情况是要找出两个量之间的关系。
这时需要对两个量的多组对应数据采用经验公式表示,因为经验公式形式较紧凑,便于从理论知识上进一步分析。
曲线拟合的最小二乘法可以描述为:
根据已知的数据组
,选一个近似函数
,使得
最小。
这种近似函数的方法称为曲线拟合(CurveFitting)的最小二乘法,函数
称为这组数据的最小二乘函数(MethodofLeastSquares)[10]。
用最小二乘法做曲线拟合首先要确定拟合模型
,通常根据各科的知识来大致确定函数的所属类,倘若不具备这些知识,则从问题的运动规律以及给定数据的散点图来确定拟合方式。
4基于MATLAB的曲线拟合
4.1曲线拟合数据来源
霍尔式传感器是由两个环形磁钢组成梯度磁场和位于梯度磁场中的霍尔元件组成[11]。
当通过电流恒定时,霍尔元件则在梯度磁场中上下移动,其输出的霍尔电势V值取决于其在磁场中位移量X值。
下面就通过霍尔式传感器的特性试验所获取的数据集,来看一下曲线拟合工具箱在数据处理方面的应用。
相关数据如表1。
表1采样点
X
V
X
V
7.37
0
9.87
-0.36
7.87
-0.07
10.37
-0.40
8.37
-0.15
10.87
-0.44
8.87
-0.22
11.37
-0.46
9.37
-0.29
11.87
-0.48
打开MATLAB软件,在主窗口输入,如下:
>>x=7.37:
0.5:
11.87;
>>v=[0-0.07-0.15-0.22-0.29-0.36-0.40-0.44-0.46-0.48];
>>cftool
按回车键打开曲线拟合工具箱,选取相应的变量可获得散点图如图4。
图4变量可获得散点图
4.2指数函数曲线拟合
在曲线拟合工具箱界面单机fitting按钮,在Typeoffit选项框中选取拟合方式Exponential(指数),
指数拟合有两种函数
和
。
拟合效果图如图5。
图5指数函数拟合
曲线fit1的指数拟合公式
,曲线fit2的指数拟合公式
,从图形上看,曲线fit1指数拟合曲线不适合本文的数据集,所以我们选取曲线fit2的指数拟合方式。
Fit2指数曲线拟合并没有通过每一个数据点遗漏的数据点较多,只是近似的经过数据点。
拟合参数结果如下:
GeneralmodelExp2:
f(x)=a*exp(b*x)+c*exp(d*x)
Coefficients(with95%confidencebounds):
a=-11.61(-4075,4052)
b=-0.1021(-5.312,5.107)
c=15.01(-4037,4067)
d=-0.1368(-5.735,5.462)
Goodnessoffit:
SSE(误差平方和):
0.0009876
R-square(相关指数R):
0.9962
AdjustedR-square(调整自由度以后的相关指数R):
0.9943
RMSE(根的均方误差):
0.01283
4.3最小二乘法多项式曲线拟合
在曲线拟合工具箱界面单机fitting按钮,在Typeoffit选项框中选取拟合方式为polynomial(多项式)多项式拟合可以从一阶到九阶,在拟合结果界面中有误差平方和SSE的值,从SSE值的大小比较中选出最优的最小二乘法多项式曲线拟合。
本文直接采用MATALB曲线拟合工具想对其进行曲线拟合并截取最小二乘法中二次多项式曲线拟合和四次多项式曲线拟合效果图,拟合效果如图6。
图6最小二乘法曲线拟合
从图形上看红色曲线明显遗漏多个数据点,蓝色曲线经过每个数据点,说明最小二乘法四次多项式比二次多项式拟合效果好。
下面从参数结果图上对两种拟合方式进一步比较。
最小二乘法二次多项式曲线拟合结果如下:
LinearmodelPoly2:
f(x)=p1*x^2+p2*x+p3
Coefficients(with95%confidencebounds):
p1=0.01682(0.01306,0.02058)
p2=-0.434(-0.5065,-0.3615)
p3=2.297(1.953,2.641)
Goodnessoffit:
SSE:
0.0005847
R-square:
0.9978
AdjustedR-square:
0.9971
RMSE:
0.009139
最小二乘法四次多项式曲线拟合如下:
LinearmodelPoly4:
f(x)=p1*x^4+p2*x^3+p3*x^2+p4*x+p5
Coefficients(with95%confidencebounds):
p1=-0.001189(-0.002519,0.0001416)
p2=0.04865(-0.002567,0.09987)
p3=-0.7211(-1.454,0.01222)
p4=4.478(-0.1476,9.104)
p5=-9.809(-20.66,1.04)
Goodnessoffit:
SSE:
8.619e-005
R-square:
0.9997
AdjustedR-square:
0.9994
RMSE:
0.004152
最小二乘法二次多项式曲线拟合的SSE(误差平方和)为0.0005847,最小二乘法四次多项式曲线拟合的SSE=8.619e-0005,显然最小二乘法中四次多项式的误差平方和比二次的更接近于0,误差平方和SSE越接近于零曲线拟合效果越好。
不管从图形还是参数的比较都可以得出,最小二乘法中四次多项式曲线拟合的效果比二次多项式拟合好。
4.4内插式曲线拟合
如果不考虑曲线拟合参数只想得到一条光滑且通过各个数据点的曲线,可以采用内插式曲线拟合,这种拟合方式也成为非参数拟合。
内插式法有linear(线性内插)、Nearestneighbor(最近邻内插)、Cubicspline(三次样条内插)和Shape-preserving(分段三次艾米尔内插)。
内插式曲线拟合效果如图7。
图7内插式曲线拟合
红色曲线是用最近邻内插法Nearestneighbor得到的曲线,蓝色曲线是用三次样条内插拟合法得到的拟合曲线。
这两种内插法拟合效果差别较大,具有不同的用途。
最邻近内插法的内插点在最相邻两个数据点之间,最后得到一个锯齿的图形。
倘若不考虑曲线的物理意义,则可以考虑三次样条内插法拟合。
4.5平滑样条曲线拟合
本文用默认的平滑参数、平滑参数为0.5和平滑参数为1分别对数据集进行平滑内插拟合,图中fit6为默认平滑参数的拟合结果,fit7为给定参数0.5时的拟合曲线,fit8为给定平滑参数为1的拟合曲线。
平滑样条曲线拟合效果如图8。
图8平滑样条曲线拟合
平滑参数为0.5的平滑样条拟合结果如下:
Smoothingspline:
f(x)=piecewisepolynomialcomputedfromp
Smoothingparameter:
p=0.5
Goodnessoffit:
SSE:
0.001125
R-square:
0.9957
AdjustedR-square:
0.9944
RMSE:
0.01274
默认平滑参数平滑样条拟合结果如下:
Smoothingspline:
f(x)=piecewisepolynomialcomputedfromp
Smoothingparameter:
p=0.98630137
Goodnessoffit:
SSE:
4.186e-005
R-square:
0.9998
AdjustedR-square:
0.9996
RMSE:
0.003551
平滑参数为1的平滑样条拟合结果如下:
Smoothingspline:
f(x)=piecewisepolynomialcomputedfromp
Smoothingparameter:
p=1
Goodnessoffit:
SSE:
0
R-square:
1
AdjustedR-square:
NaN
RMSE:
NaN
从图中兼数据结果可以看出Fit6默认平滑值参数的曲线拟合效果最好,fit7给定平滑参数0.5的曲线拟合效果最差,fit8给定平滑参数为1的拟合结果接近于三次样条,且经过每个参数点。
5曲线拟合结果的比较
曲线拟合工具箱的Results罗列了各种拟合参数,包括置信区间大于95%的相关系数和显示拟合效果好坏的参数。
测量时用X和V表示实验中得到的数据。
根据测量值得到的曲线拟合函数表示成
。
假设存在n组拟合数据集,根据曲线拟合函数分别代入x值,就可以得到相应的拟合值
,从而得到对应的残余误差
。
(1)误差平方和SSE(sumofsquaresduetoerror),SSE值越接近于0曲线拟合效果就越好。
SSE的数学表达式:
(2)相关指数R-Square,是SSR与SST的比值,其中SSR和SST的定义为:
R-Square的取值范围是[0,1],R2越接近于“1”,表示所拟合的曲线效果越好[12]。
(3)调整自由度以后的残差平方AdjustedR-Square,自由度是响应数据个数n减去被拟合的相关系
数m。
AdjustedR-Square值越接近1,曲线的拟合效果越好[13]。
(4)根的均方误差RMSE,数学表达式:
RMSE的值越接近于0,曲线拟合效果就越好。
表2是指数函数拟合、最小二乘法四次多项式拟合、三次样条内插式拟合和默认平滑参数的平滑样条拟合的相关误差参数的结果。
表2拟合误差参数对照表
Type
SSE
R-square
AdjustedR-square
RMSE
指数函数拟合
0.0009876
0.9962
0.9943
0.01283
最小二乘法四次多项式拟合
8.619e-005
0.9997
0.9994
0.004152
三次样条内插式拟合
0
1
NaN
NaN
平滑样条拟合
4.186e-005
0.9998
0.9996
0.003551
6结论
指数函数拟合同其它三种曲线拟合方式相比可见:
误差平方和SSE值最大,相关指数R2同其它三种拟合方式相比更远离1,还有AdjustedR-square和RMSE指标也比较差,这个结果与曲线拟合图形相吻合。
这说明本文的数据集采用基于MATLAB曲线拟合的四种拟合方式中指数函数拟合效果最差。
最小二乘法四次多项式拟合同其它三种曲线拟合方式相比可见:
最小二乘法四次多项式拟合的各项指标均比指数函数拟合好却不如三次样条内插式拟合和平滑样条拟合,但最小二乘法四次多项式拟合可以写出相对应的曲线拟合方程式,而三次样条内插式拟合和平滑样条拟合两种拟合方式只能较好的拟合出曲线却写不出对应的数学关系式。
三次样条内插式曲线拟合和其它三种曲线拟合相比可见:
三次样条内插式曲线拟合的精度最高,因为它不考虑拟合参数只要曲线经过每一个数据点,所以内插式曲线拟合能较佳的拟合出曲线。
但三次样条内插式曲线拟合与平滑样条曲线拟合一样不能写出曲线对应的数学表达式。
平滑曲线拟合同其它三种曲线拟合方式相比可见:
平滑样条曲线拟合的误差平方和、相关指数R2、调整后的残余平方和AdjustedR-square和根的均方误差RMSE四项指标虽然比三次样条内插式曲线拟合略逊一点,但与最小二乘法四次多项式拟合的结果相比好一点,所以精度相对较高,曲线也比较光滑。
平滑样条曲线拟合虽然给出了拟合的平滑程度值,却也写不出相应的数学表达式。
综合以上各种曲线拟合方式,如果已知数据集的数学方程可以直接选择相应函数的拟合方式;如果不懂得曲线拟合函数模型的可以采用尝试法,一般最小二乘法的多项式就可以很好的拟合出曲线并给出相应的函数关系式和误差参数;如果不考虑曲线拟合参数或物理意义,只要曲线经过每一个数据点可以采用内插式曲线拟合或平滑样条拟合,平滑样条拟合可以选择曲线的平滑参数。
用MATLAB曲线拟合工具箱对数据集进行处理,能够快捷的得到比较满意的曲线拟合。
MATLAB软件在许多工程分析和科学研究中也越来越重要,MATLAB的广泛应用,必将使它成为未来科技人员的必备工具。
致谢:
文章已基本完成。
在此,首先感谢我的指导老师肖郑颖老师,感谢她在我毕业设计过程中对我的耐心指导和诚挚的关怀,老师严谨的工作态度和创新精神深深地感染着我;同时感谢莆田学院电子信息工程学系给我提供了一个良好的学习、生活环境;还要感谢在学习、生活上给予我帮助的同学们。
谢谢你们的参与,是你们让我的生活更加的精彩。
参考文献:
[1]周国清.应用MATLAB软件处理曲线拟合[J].重庆职业技术学院学报,2003,2
(1):
38-39.
[2]郑文.曲线拟合[D].重庆:
西南大学,2008.
[3]王吉钧,叶臣,叶倩.基于MATLAB的离心泵特性曲线的拟合方法[J].电脑应用技术,2006,4(66):
36-37.
[4]唐家德.基于MATLAB的非线性曲线拟合[J].计算机与现代化,2008,6(6):
15-19.
[5]王丹力,赵剡,邱志平.MATLAB控制系统设计仿真应用[M].北京:
中国电力出版社,2007.
[6]陈怀琛,龚杰民.线性代数实践及MATLAB入门[M].北京:
电子工业出版社,2009.
[7]胡庆婉.使用MATLAB曲线拟合工具箱做曲线拟合[J].电脑知识与技术,2010,6(21):
582-583.
[8]伦冠德.MATLAB曲线拟合工具箱在试验数据处理上的应用[J].拖拉机与农用运输车,2006,3(4):
90-91.
[9]冯元珍,屠小明,罗建平.MATLAB在曲线拟合中的应用[J].福建电脑,2007,5(4):
160-161.
[10]刘春凤,何亚丽.应用数值分析[M].北京:
冶金工业出版社,2009.
[11]传感器及其工作原理[EB/OL].(2008-03-28)[2011-3-5].
[12]林振衡,林锋.基于MATLAB的MoSi_2发热体电阻率曲线拟合[J].