资源描述:
《matlab数据拟合实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验八Matlab数据拟合实验在科学实验和生产实践中,往往需要从一组实验数据(x.,x)a=h2,•••/?)中,寻找变量兀和y之I'可的函数关系y=/(x)的某种近似表达式$(兀)。上一个实验中介绍的插值方法可以构造一个插值函数逼近己知函数。但是,一般來说,给定的实验数据(斥,牙)(d=l,2,…仍的数量较大,且由于观测误差的原因,准确度不一•定高,其至在个别点有很大的谋差,形象地称之为“噪声”。如果用插值法來求y=fM的近似表达式,要使$(x)满足插值条件,势必将“噪声”带进近似函数s(x),因而不能较好地描绘y=f(x)
2、o为了尽可能减少这种观测误差的影响,本次实验我们介绍数据拟合和关的方法及其Matlab实现。8.1实验目的1、熟悉W.Matlab•!«各种常见的拟合:8.2实验基本知识2、能够灵活编程來解决数据拟合的实际印数据的拟合主要分为曲线拟合(curvefitting)曲面拟合(surfacefitting)0它试图从散点数据中拟合出-•个有规律的解析式世该解析音的某些資数(系数)是不运的未知量■数据拟合的H的就是要根据散点数据在“最小误差"的意义下确定出解析式中这些不定参数。举一个简单的叶子,对于…条直线y=kx+bi;该式屮有比和
3、b两个未知参数需要求岀。由基本的数学知识我们可以知道,只要有两个点就可以确疋出这两个参数〔但是若有更多的点,比如实验数据往往仃很多点,这些点山于有j赛差并不一足在一条直线上,需要找'漆直线离这吐点“最近尸这就悬嚟从上面的例?I们可拟两標兄(1)点数(已知数据数目)即方程的个数要大于待求参数的个数;(2)方程所代表的曲线、曲面等并不一定通过这些已知的点。在上一段中,“最近〃的定义冇很多种,不同的定义对应着数据拟合的不同准则。下面我们介绍常见的儿种数据拟合的准则。切比雪夫(Chebyshev)近似准则给定某种函数类型y=/(%)和
4、m个数据点(x.,x)的一个集合,对整个集合极小化最人绝对偏差卜厂/(兀)
5、,即确定函数类型y=f(x)的参数从而极小化数量:Maxinum
6、y.-/(x.)
7、i=1,2,…,zn这种准则通常被称为切比雪夫(Chebyshev)近似准则。这种准则在实际应用中通常很复杂,应用这一准则所产生的最优化问题通常可以表示为线性规划问题,这可能需要高级的数学方法,或者要用计算机的数值算法。所以在对冇限的数据点拟合一条曲线时不常使用该准则,然而当极小化最大绝对偏差很重要的时候仍应考虑这一准则。另外,用一个简单函数代替在一个区间上定义的另一个
8、复杂函数时•,构成该准则的原则是极其重要的,在该区间上两个函数间的最人差异必须达到最小,因此这一•准则在函数逼近问题中具有很重要的应用。极大化绝对偏差之和极小化绝对偏差之和准则可以归纳为:给定某种函数类型y=f(x)和加个数据点(再」)的集合,极小化绝对偏差
9、x--/(%,-)
10、的和,也就是确定函数类型y=/(x)的参数,极小化:/=1如果令尺=卜厂/(忑)
11、,心1,2,…,加,代表每一个绝对偏差,那么该准则可以解释成将一条由数量K加在一起构成的直线的长度极小化。由于这一准则里出现了绝对值,这个和式的各种微分不是连续的,要解决
12、这个最优化问题时,将该和式对每个未知参数进行求导时,问题会变得不可解,因此在常见的数据拟合问题中,该准则也不常用。但是需要注意的E特殊的场景卜,变的9前IBi相同的记号,ll'uj题是确定函数X=1用此方普解决产生的最优化问题仅需使用儿个变量的演算,所以容易普及,Matlab软件中提供的数据拟合方法也基本都是基*该准则的。数据拟合根据0变量的及选収的拟合函数的形式,川以分另;;三元线性拟合、-「見非线性拟合、多元拟合等不同的问题场最。卜両我们就分别介绍这几种类型问题下最小二乘拟合的Matlab实现,并在最后介绍Matlab曲线
13、拟也工具箱的使用。■8.2.1一元线性拟合多项式拟合多项式拟合是线性拟合中最常见的形式,它的目标是找出一组多项式系数即心1,2,…,+1,使得多项式j(x)=axx+a2x+・・・+g“x+g“+]能够在最小二乘的意义下最好地拟合原始数据。多项式拟合可以通过Matlab提供的polyfit()函数实现。该函数的调用格式为:[p/S]=polyfit(x,y/n)其中,x,y是输入的实验数据,n是拟合计算用到的多项式的次数,返回值p是拟合多项式的系数,S是用來估计误差和预测数据的结构体。与polyfit()函数配合使用的函数是p
14、olyval(),这个函数根据拟合出来的多项式系数p计算给定数据x处的y值。其调用格式如下:Y=polyval(p,X)其中X是给定的需要计算拟合值的向量,p是polyfit()函数的返回值,返回值Y是根据p计算出来的X处的多项式的值。例8J利用函数y=/+2兀+3,在区间x