资源描述:
《数据拟合_建模》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章数据拟合一、拟合的概念二、调用MATLAB命令实现拟合三、范例在一项工程实践中,通过观测,得到了一个离散的函数关系(xi,yi)i=1,2,…,n。由于工程的需要,我们希望揭示出反映这组离散数据的一个解析的函数关系。再用几何术语来表达:根据平面上的观测点,要求确定一个函数曲线y=f(x),使曲线尽量接近这些点。实现这个愿望的方法简称为曲线拟合(fittingacurve).在生产实践和科学实验中,经常会遇到大量的不同类型的数据(data).这些数据提供了有用的信息,可以帮助我们认识事物的内在规律等.曲线拟合是根据实验获得的数据,建立自变量与因变量之间的函数关系,
2、为进一步的深入研究提供工具。一、拟合的概念引例:浓度变化规律在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如表5.1表5.1t时间12345678y浓度46.48.08.49.289.59.79.86t时间910111213141516y浓度1010.210.3210.4210.510.5510.5810.6表5.1中的数据反映了浓度随时间变化的函数关系,它是一种离散关系.若需要推断第20、40分钟的浓度值,就要用一个解析的函数y=f(t)来拟合表5.1中的离散数据,然后再算浓度f(20),f(40)。首先将这些离散数据描绘在直角坐标系下,得到散点图
3、。然后观察浓度与时间之间呈现什么规律。图5.1,浓度y随时间t呈“抛物线”(二次函数)状变化.根据散点图,可以认为y与t的函数为y=a+bt+ct2,其中a,b,c为待定,称为参数。参数的选择需要科学的方法和实验修正。提示函数形式确定以后,关键是要确定函数中含有的待定参数a,b,c.常用的方法是最小二乘法(methodofleastsquares),下面介绍该方法的基本原理。最小二乘法平面上的点(xi,yi)i=1,2,…,n。揭示出一个离散的函数关系;设有连续可微的函数y=f(x)很接近上述离散的函数关系。但一般来说因此,我们的愿望降低为是:如何选取f(x)的参数使
4、达到yi≠f(xi)i=1,2,…,n。对应的几何意义:诸点到曲线的距离平方和最小二、曲线拟合的MATLAB实现多项式函数拟合:a=polyfit(xdata,ydata,n)其中(xdata,ydata)为观测数据,n为你认定的适合观测数据的多项式的次数。输出为a=[a1…,an,an+1]即与多项式f(x)=a1xn+…+anx+an+1对应回到引例中的问题t=1:16;y=[46.48.08.49.289.59.79.861010.210.3210.4210.510.5510.5810.6];a=polyfit(t,y,2)a=-0.04451.07114
5、.3252即拟合函数为f(t)=a(1)*t^2+a(2)*t+a(3)对拟合函数的拟合效果如何检测?仍然以图形来检测,我们将客观的散点与主观的拟合曲线画在一个画面上即可看出。xi=linspace(0,16,160);yi=polyval(a,xi);plot(x,y,’o’,xi,yi)%图略右图是以8次多项式拟合的效果a=polyfit(t,y,8);xi=linspace(0,16,160);yi=polyval(a,xi);plot(t,y,'o',xi,yi,'g')一般的曲线拟合:p=lsqcurvefit(’Fun’,p0,xdata,ydata)(xd
6、ata,ydata)是观测数据。对于这组观测数据我们选择了自认为是拟合效果比较好的函数形式f(x),其中参数以字母表示,取值待定.我们把这个函数形式写入名为Fun的M文件.例如:对于上述观测数据所选择的拟合函数为y=ae-bx+ce-dx编写M文件ex.mfunctiony=ex(p,x)y=p(1)*exp(-p(2)*x)+p(3)*exp(-p(4)*x);输入形参为x,在lsqcurvefit命令中xdata为实参。待定参数写为p(1),p(2),…,p(n)此外,我们对待定参数应有一个大致的估计,体现在拟合命令lsqcurvefit中的初始向量p0中。调用
7、后返回的p就是按照最小二乘原则求得的待定参数。这时再把p的分量对位代入函数形式的相应位置,就得到了完整的拟合函数。min{p}{sum(fun(p,xdata)–ydata).^2}lsqcurvefit()命令的求解原理是在所有可能的参数p中挑选使sum最小的函数法则待定参数p观测到的函数值序列观测到的自变量序列例如:x=0:0.1:1;y=[4.00002.82972.01831.45241.05500.77390.57330.42900.32420.24730.1903];绘图认识观测数据体现的函数关系:plot(x,y