数据拟合建模_第1页
数据拟合建模_第2页
数据拟合建模_第3页
数据拟合建模_第4页
数据拟合建模_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 数据拟合一、拟合的概念二、调用MATLAB命令实现拟合三、范例1 在一项工程实践中,通过观测,得到了一个离散的函数关系(xi,yi) i=1,2,n。由于工程的需要,我们希望揭示出反映这组离散数据的一个解析的函数关系。 再用几何术语来表达:根据平面上的观测点,要求确定一个函数曲线y=f(x), 使曲线尽量接近这些点。实现这个愿望的方法简称为曲线拟合(fitting a curve). 在生产实践和科学实验中,经常会遇到大量的不同类型的数据(data).这些数据提供了有用的信息,可以帮助我们认识事物的内在规律等. 曲线拟合是根据实验获得的数据,建立自变量与因变量之间的函数关系,为进一步的

2、深入研究提供工具。一、拟合的概念2 引例:浓度变化规律 在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一组数据如表5.13表 5.1t 时间 1 2 3 4 5 6 7 8y浓度 4 6.4 8.0 8.4 9.28 9.5 9.7 9.86t时间 9 10 11 12 13 14 15 16y浓度 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6 表5.1中的数据反映了浓度随时间变化的函数关系,它是一种离散关系.若需要推断第20、40分钟的浓度值,就要用一个解析的函数y=f(t)来拟合表5.1中的离散数据,然后再算浓度f(20),f(40)。 首先

3、将这些离散数据描绘在直角坐标系下,得到散点图。然后观察浓度与时间之间呈现什么规律。 4 图5.1,浓度 y 随时间 t 呈“抛物线”(二次函数)状变化. 根据散点图,可以认为y与t的函数为y=a+bt+ct2,其中a,b,c为待定,称为参数。参数的选择需要科学的方法和实验修正。提示5 函数形式确定以后,关键是要确定函数中含有的待定参数a,b,c.常用的方法是最小二乘法(method of least squares),下面介绍该方法的基本原理。6最小二乘法 平面上的点 (xi,yi) i=1,2,n。揭示出一个离散的函数关系; 设有连续可微的函数y=f(x)很接近上述离散的函数关系。但一般来说

4、因此,我们的愿望降低为是:如何选取 f(x) 的参数使达到yi f(xi) i=1,2,n。 7对应的几何意义:诸点到曲线的距离平方和最小8二、曲线拟合的MATLAB实现多项式函数拟合: a=polyfit(xdata,ydata,n)其中(xdata,ydata)为观测数据,n为你认定的适合观测数据的多项式的次数。输出为 a =a1,an,an+1即与多项式f(x)=a1xn+anx+an+1对应9回到引例中的问题t=1:16;y=4 6.4 8.0 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6;a=polyf

5、it(t,y,2)a = -0.0445 1.0711 4.3252即拟合函数为f(t)=a(1)*t2+a(2)*t+a(3)10 对拟合函数的拟合效果如何检测?仍然以图形来检测,我们将客观的散点与主观的拟合曲线画在一个画面上即可看出。 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)11一般的曲线拟合:p=lsqcurvefit(Fun

6、,p0,xdata,ydata) (xdata,ydata)是观测数据。对于这组观测数据我们选择了自认为是拟合效果比较好的函数形式f(x),其中参数以字母表示,取值待定 .我们把这个函数形式写入名为Fun的M文件.例如:对于上述观测数据所选择的拟合函数为 y=ae-bx+ce-dx编写M文件ex.mfunction y=ex(p, x)y= p(1)*exp( -p(2)*x)+ p(3)*exp( -p(4)*x);12输入形参为x , 在 lsqcurvefit 命令中xdata为实参。待定参数写为 p(1) , p(2) , ,p(n) 此外,我们对待定参数应有一个大致的估计,体现在拟合

7、命令 lsqcurvefit 中的初始向量p0中。13调用后返回的p就是按照最小二乘原则求得的待定参数。这时再把p的分量对位代入函数形式的相应位置,就得到了完整的拟合函数。minp sum( fun(p,xdata) ydata ).2 lsqcurvefit()命令的求解原理是在所有可能的参数p中挑选使sum最小的函数法则待定参数p观测到的函数值序列观测到的自变量序列14例如:x=0:0.1:1;y= 4.0000 2.8297 2.0183 1.4524 1.0550 0.7739 0.5733 0.4290 0.3242 0.2473 0.1903;绘图认识观测数据体现的函数关系:plo

8、t(x,y) 15选择了拟合函数的形式为 y=ae-bx+ce-dx1、编写M文件ex.mfunction y=ex(p, x)y=p(1)*exp(-p(2)*x)+p(3)*exp(-p(4)*x);2、调用p=lsqcurvefit(ex,1 2 1 4,x,y);拟合函数为 y= p(1)*exp(-p(2)*x)+p(3)*exp(-p(4)*x)16注:若要求算点x处的函数值可用程序f=ex(p,x)计算。如 x=0:0.1:1; y=ex(p,x); plot(x,y)练习函数绘图3、评价拟合效果plot(x,y, o)hlod onxi=0:0.01:1;yi=ex(p,xi)

9、;plot(x,y)17x=0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416;y=0 1.6180 1.9021 0.6180 -1.1756 -2.0000 -1.1756 0.6180 1.9021 1.6180 0.0000;三、范例课堂练习:对下述观测数据,给出拟合函数提示:1.绘图估计解析关系2.建立解析关系的M文件3.调用lsqcurvefit命令4.针对解析关系绘图,与观测点对比,评价拟合函数优劣。18Malthus模型中的参数估计 为了让指数增长模型较好地拟合美国人口统计数据。我们来讨论公式中的参数2. 在工作区定义向量. t=0:1:21; Matlab的命令如下1. 建立M文件 function x = renkou(p,t) x =p(1)*exp(p(2)*t); 19x=3.9 5.3 7.2 9.6 281.4;203. 调用拟合函数. p=lsqcurvefit (renkou,p0,t,x) 结果为 p(1)=x0=14.9935 p(2)

温馨提示

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

评论

0/150

提交评论