数据拟合与插值1课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据拟合与插值1课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 拟合 课件
- 资源描述:
-
1、数据拟合与插值数据拟合与插值山东建筑大学山东建筑大学贺长伟贺长伟一、引言一、引言 在解决实际问题的生产(或工程)实践和科学在解决实际问题的生产(或工程)实践和科学实验过程中,通常需要通过研究某些变量之间的函实验过程中,通常需要通过研究某些变量之间的函数关系来帮助我们认识事物的内在规律和本质属性,数关系来帮助我们认识事物的内在规律和本质属性,而这些变量之间的未知函数关系又常常隐含在从试而这些变量之间的未知函数关系又常常隐含在从试验、观测得到的一组数据之中。因此,能否根据一验、观测得到的一组数据之中。因此,能否根据一组试验观测数据找到变量之间相对准确的函数关系组试验观测数据找到变量之间相对准确的函
2、数关系就成为解决实际问题的关键。就成为解决实际问题的关键。例如在工程实践和科学实验中,常常需要从一例如在工程实践和科学实验中,常常需要从一组试验观测数据组试验观测数据 之中找到自之中找到自变量变量x x与因变量与因变量y y 之间的函数关系,一般可用一个之间的函数关系,一般可用一个近似函数近似函数y y=f f(x x)来表示。函数来表示。函数y y=f f(x x)的产生的产生办法因观测数据和要求不同而异,通常可采用数据办法因观测数据和要求不同而异,通常可采用数据拟合与函数插值两种办法来实现。拟合与函数插值两种办法来实现。二、拟合和插值二、拟合和插值 数据拟合数据拟合主要是考虑到观测数据受随
3、机观测误差的主要是考虑到观测数据受随机观测误差的影响,进而寻求整体误差最小、能较好反映观测数影响,进而寻求整体误差最小、能较好反映观测数据的近似函数据的近似函数y y=f f(x x),此时,此时并不要求并不要求所得到的所得到的近似函数近似函数y y=f f(x x)满足满足 函数插值函数插值则要求近似函数则要求近似函数y y=f f(x x)在每一个观测在每一个观测点点 处处一定要满足一定要满足 在这种情况下,通常要求观测数据相对比较准确,在这种情况下,通常要求观测数据相对比较准确,即不考虑观测误差的影响。即不考虑观测误差的影响。ix 在实际问题中,通过观测数据能否正确揭示在实际问题中,通过
4、观测数据能否正确揭示某些变量之间的关系,进而正确认识事物的内在某些变量之间的关系,进而正确认识事物的内在规律与本质属性,往往取决于规律与本质属性,往往取决于两方面因素两方面因素。其一是观测数据的准确性或准确程度,这是其一是观测数据的准确性或准确程度,这是因为在获取观测数据的过程中一般存在随机测量因为在获取观测数据的过程中一般存在随机测量误差,导致所讨论的变量成为随机变量。误差,导致所讨论的变量成为随机变量。其二是对观测数据处理方法的选择,即到底其二是对观测数据处理方法的选择,即到底是采用插值方法还是用拟合方法,插值方法之中、是采用插值方法还是用拟合方法,插值方法之中、拟合方法之中又选用哪一拟合
5、方法之中又选用哪一种插值或拟合技巧来处种插值或拟合技巧来处理观测数据。理观测数据。三、数据拟合三、数据拟合 在科学计算中经常要建立实验数据的数学模型。在科学计算中经常要建立实验数据的数学模型。给定函数的实验数据,需要用比较简单和合适的给定函数的实验数据,需要用比较简单和合适的函数来函数来逼近逼近(或拟合)实验数据。这种逼近的特(或拟合)实验数据。这种逼近的特点是:点是:(a)(a)适度的精度是需要的;适度的精度是需要的;(b)(b)实验数据有小的误差;实验数据有小的误差;(c)(c)对于某些问题,可能有某些特殊的信息能够对于某些问题,可能有某些特殊的信息能够用来选择实验数据的数学模型。用来选择
6、实验数据的数学模型。数据拟合基本方法数据拟合基本方法 逼近离散数据的基本方法就是曲线拟合,常采用逼近离散数据的基本方法就是曲线拟合,常采用最小二乘拟合最小二乘拟合。曲线拟合问题的数学描述是,已知一组(二维)曲线拟合问题的数学描述是,已知一组(二维)数据数据 即平面上的即平面上的n n个点个点 互不相同。寻求一个函数(曲线)互不相同。寻求一个函数(曲线)y y=f f(x x),使,使f f(x x)在某种准则下与所有数据点在某种准则下与所有数据点最为接近,即曲线拟合得最好。最为接近,即曲线拟合得最好。最小二乘拟合分为最小二乘拟合分为线性最小二乘拟合和非线性线性最小二乘拟合和非线性最小二乘拟合。
7、最小二乘拟合。ix3.1 线性最小二乘拟合线性最小二乘拟合 线性最小二乘法是解决曲线拟合问题最常用的方线性最小二乘法是解决曲线拟合问题最常用的方法,基本思路是,令法,基本思路是,令 (1.11.1)其中其中 是一组事先选定的线性无关是一组事先选定的线性无关 的函数,的函数,是一组待定系数。寻求系数是一组待定系数。寻求系数 使得使得 与与 的距离的距离 的的平方平方和最小和最小。这种准则称为最小二乘准则,其求系数。这种准则称为最小二乘准则,其求系数 的方法称为线性最小二乘拟合方法的方法称为线性最小二乘拟合方法。iy()if x1 1、系数系数 的求法的求法若记若记 (1.21.2)则则J J 为
8、为 的二次函数。由数学分析(或高的二次函数。由数学分析(或高等数学)的极值理论,等数学)的极值理论,J J 达到最小的充分必要条件达到最小的充分必要条件是是 满足满足于是得到求使于是得到求使J J 达到最小的达到最小的 方法方法1,.maa1,.maa1,.maa 是求解线性方程组(称为法方程组)是求解线性方程组(称为法方程组)(1.31.3)即求解线性方程组即求解线性方程组 (1.41.4)若记若记 (1.51.5)则方程组(则方程组(1.41.4)可表示为)可表示为 (1.61.6)由于当由于当 线性无关时,线性无关时,R R列满秩,列满秩,可逆,所以方程组(可逆,所以方程组(1.61.6
9、)有唯一解)有唯一解 (1.71.7)2 2、函数组函数组 的选取的选取 面对一组数据面对一组数据 ,用线,用线性最小二乘法作曲线拟合时,首要的、也是关键性最小二乘法作曲线拟合时,首要的、也是关键的一步是恰当地选取的一步是恰当地选取 如果通过机理分析,能够知道如果通过机理分析,能够知道y y 与与x x之间应该之间应该有什么样的函数关系,则有什么样的函数关系,则 容易确定。容易确定。若无法知道若无法知道y y 与与x x之间的关系,通常可以将之间的关系,通常可以将数据数据 作图作图,直观地判断应该,直观地判断应该用什么样的曲线去作拟合。用什么样的曲线去作拟合。人们常用的曲线有人们常用的曲线有(
10、1 1)直线直线(2 2)多项式多项式(3 3)双曲线双曲线(一支)(一支),拟合前作变量,拟合前作变量 替换替换t=1/x,t=1/x,求解求解a1,a2a1,a2较简单。较简单。(4 4)指数曲线指数曲线 ,拟合前作变量代换,拟合前作变量代换 z=lny,tz=lny,t=1/x,=1/x,则指数曲线转化为线性函数则指数曲线转化为线性函数 ,求解求解a1,a2a1,a2较简单。较简单。小结小结 在实际计算过程中,面对一组已知数据,到在实际计算过程中,面对一组已知数据,到底用什么样的曲线拟合最好,可以在直观判断的底用什么样的曲线拟合最好,可以在直观判断的基础上,选几种曲线分别拟合,然后比较,
11、看哪基础上,选几种曲线分别拟合,然后比较,看哪条曲线的最小二乘指标条曲线的最小二乘指标J J 最小。最小。3.2 非线性最小二乘拟合非线性最小二乘拟合 非线性最小二乘法是假设非线性最小二乘法是假设f f(x x)是待定系数是待定系数的任意非线性函数,在最小二乘准则下求其系数的任意非线性函数,在最小二乘准则下求其系数 例如上述人们常用的双曲线和指数曲线就是非线例如上述人们常用的双曲线和指数曲线就是非线性最小二乘拟合中最常用的非线性函数,只不过在性最小二乘拟合中最常用的非线性函数,只不过在上面使用中将它们转变成线性最小二乘拟合方法。上面使用中将它们转变成线性最小二乘拟合方法。对于给定的实验数据,通
12、常应根据实验数据的走对于给定的实验数据,通常应根据实验数据的走向、趋势选择合适的数学模型,即拟合函数。向、趋势选择合适的数学模型,即拟合函数。例如当实验数据具有单调性和凸性时,可选择例如当实验数据具有单调性和凸性时,可选择下述适当的数学模型下述适当的数学模型y y=f f(x x)来拟合实验数据。来拟合实验数据。等,其中等,其中a a、b b 为参数。为参数。在有可能的情况下,一般将非线性拟合函数转在有可能的情况下,一般将非线性拟合函数转化为线性拟合函数求解,这一方面是如此求解简单,化为线性拟合函数求解,这一方面是如此求解简单,另一方面也是因为一般情况下求解法方程组另一方面也是因为一般情况下求
13、解法方程组 得到的通常仅是得到的通常仅是J J 的驻点,不一的驻点,不一定是极值点。也可以直接解定是极值点。也可以直接解J J 极小化问题。极小化问题。3.3 最小二乘拟合法的最小二乘拟合法的Matlab实现实现1.解方程组方法解方程组方法例例1 1 用最小二乘法求一个形如用最小二乘法求一个形如 的经验公式,使它与下表所示的数据拟合的经验公式,使它与下表所示的数据拟合。x 19 25 31 38 44 y 19.0 32.3 49.0 73.3 97.8解解 编写程序如下编写程序如下 x=19 25 31 38 44;y=19.0 32.3 49.0 73.3 97.8;r=ones(5,1)
14、,x.2;ab=ry x0=19:0.1:44;y0=ab(1)+ab(2)*x0.2;plot(x,y,o,x0,y0,r)2yabx2.线性最小二乘拟合(多项式拟合)方法线性最小二乘拟合(多项式拟合)方法 在线性最小二乘拟合中,用的较多的是多项在线性最小二乘拟合中,用的较多的是多项式拟合。如果取式拟合。如果取 即用即用m m 次多项式拟合给定数据,则次多项式拟合给定数据,则MatlabMatlab中有现中有现成的函数成的函数 a=polyfit(x0,y0,m)a=polyfit(x0,y0,m)其中输入参数其中输入参数x0,y0 x0,y0为要拟合的数据,为要拟合的数据,m m为拟合多为
15、拟合多项式的次数,输出参数项式的次数,输出参数a a为拟合多项式为拟合多项式 系数系数 多项式在多项式在x x处的值处的值y y可用下面的函数计算可用下面的函数计算 y=polyval(a,xy=polyval(a,x)10.mmya xa xa10,.,maaa a将例将例1 1中的数据拟合成一个二次方程中的数据拟合成一个二次方程 x=19 25 31 38 44;x=19 25 31 38 44;y=19.0 32.3 49.0 73.3 97.8;y=19.0 32.3 49.0 73.3 97.8;ab=polyfit(x,y,2)ab=polyfit(x,y,2)x0=19:0.1:
16、44;x0=19:0.1:44;y0=ab(3)+ab(2)y0=ab(3)+ab(2)*x0+ab(1)x0+ab(1)*x0.2;x0.2;plot(x,y,o,x0,y0,r)plot(x,y,o,x0,y0,r)结果:结果:abab=0.0497 0.0193 0.6882 0.0497 0.0193 0.6882例例2 2 某乡镇企业某乡镇企业1990-19961990-1996年的生产利润如下表:年的生产利润如下表:年份年份 1990 1991 1992 1993 1994 1995 19961990 1991 1992 1993 1994 1995 1996利润(万元)利润(万元
17、)70 122 144 152 174 196 20270 122 144 152 174 196 202试预测试预测19971997年和年和19981998年的利润。年的利润。解解 作已知数据的的散点图,作已知数据的的散点图,x0=1990 1991 1992 1993 1994 1995 1996;x0=1990 1991 1992 1993 1994 1995 1996;y0=70 122 144 152 174 196 202;y0=70 122 144 152 174 196 202;plot(x0,y0,plot(x0,y0,*)发现该乡镇企业的年生产利润几乎直线上升。发现该乡镇企
18、业的年生产利润几乎直线上升。因此,我们可以用因此,我们可以用 作为拟合函数来预测作为拟合函数来预测该乡镇企业未来的年利润。编写程序如下:该乡镇企业未来的年利润。编写程序如下:x0=1990 1991 1992 1993 1994 1995 1996;x0=1990 1991 1992 1993 1994 1995 1996;y0=70 122 144 152 174 196 202;y0=70 122 144 152 174 196 202;a=polyfit(x0,y0,1)a=polyfit(x0,y0,1)y97=polyval(a,1997)y97=polyval(a,1997)y98
19、=polyval(a,1998)y98=polyval(a,1998)求得求得19971997年的生产利润年的生产利润y97=233.4286y97=233.4286,19981998年的生产利年的生产利润润y98=253.9286y98=253.9286。10ya xa3 非线性最小二乘拟合非线性最小二乘拟合 MatlabMatlab的优化工具箱中提供了两个求非线性最的优化工具箱中提供了两个求非线性最小二乘拟合的函数:小二乘拟合的函数:curvefitcurvefit和和leastsqleastsq。使用这。使用这两个命令时,都要先建立两个命令时,都要先建立M M文件文件fun.mfun.m
20、,但它们定义,但它们定义f f(x x)的方式是不同的。的方式是不同的。1.curvefit1.curvefit 设已知设已知 xdataxdata=(xdata1,xdata2,=(xdata1,xdata2,xdata,xdatan n ),),ydata ydata=(ydata1,ydata2,=(ydata1,ydata2,ydata,ydata n n),),curvefit curvefit用以求含参量用以求含参量x x(向量)的向量值函数(向量)的向量值函数 中的参变量中的参变量x x(向量),使得(向量),使得 最小。最小。输入格式为:输入格式为:1.x=curvefit(f
21、un,x0,xdata,ydata)1.x=curvefit(fun,x0,xdata,ydata);2.x=curvefit(fun,x0,xdata,ydata,options)2.x=curvefit(fun,x0,xdata,ydata,options);3.x=curvefit(fun,x0,xdata,ydata,options,grad)3.x=curvefit(fun,x0,xdata,ydata,options,grad);4.x4.x,options=curvefit(fun,x0,xdata,ydata,options=curvefit(fun,x0,xdata,ydat
22、a,)5.x,options,funval=curvefit(fun,x0,xdata,ydata,5.x,options,funval=curvefit(fun,x0,xdata,ydata,)6.x,options,funval,Jacob=curvefit(fun,x0,xdata,ydat6.x,options,funval,Jacob=curvefit(fun,x0,xdata,ydata,a,).).输出目标函数值格式:输出目标函数值格式:f=fun(x,xdataf=fun(x,xdata).).其中其中x0 x0为迭代初值,为迭代初值,optionsoptions为控制参数。为
23、控制参数。2.leastsq2.leastsq设已知设已知 xdataxdata=(xdata1,xdata2,=(xdata1,xdata2,xdata,xdatan n ),),ydata ydata=(ydata1,ydata2,=(ydata1,ydata2,ydata,ydata n n),),leastsq leastsq 用以求含参量用以求含参量x x(向量)的向量值函数(向量)的向量值函数 中的参变量中的参变量x x(向(向 量),使得量),使得 最小。其中最小。其中输入格式为:输入格式为:(1 1)x=leastsqx=leastsq(fun,x0)(fun,x0);(2 2
24、)x=leastsqx=leastsq(fun,x0,options)(fun,x0,options);(3 3)x=leastsqx=leastsq(fun,x0,options,grad)(fun,x0,options,grad);(4 4)xx,options=leastsqoptions=leastsq(fun,x0,(fun,x0,);(5 5)xx,options,funvaloptions,funval=leastsq(fun,x0,=leastsq(fun,x0,)例例3 3 用下面一组数据拟合函数用下面一组数据拟合函数 中的参数中的参数a a,b b,k k。_ 100 20
25、0 300 400 500 600 700 800 900 1000100 200 300 400 500 600 700 800 900 1000 4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59 4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59_ 解解 该问题即解最优化问题该问题即解最优化问题1.1.用命令用命令curvefitcurvefit。此时。此时(1 1)编写编写M M文件文件curvefun1.mcurvefun1.mfunction f=curvefun1(x,tdata)fu
展开阅读全文