插值与拟合方法建模尹方平概论日常生活中,尤其是科技活动中,人们越来越频繁的和数据打交道,想方设法的获取数据,千方百计地、认真细致地分析处理数据,已成为研究许多问题的一个重要环节,一种基本技术,甚至已成为一种较为通用的分析问题、解决问题的思想方法.本课件分三个部分1.处理数据常用的插值方法和拟合方法简介2.部分相关的matlab命令简介3.与插值法或拟合法相关的建模案例方法的两个基本问题数据中含有信息的分析和利用.数据中含有误差对处理结果的影响.插值拟合插值与拟合的区别插值问题不一定得到近似函数的表达式,仅通过插值方法找到未知点所对应的值.数据拟合要求得到一个具体的近似函数表达式.方法使用情况对比插值方法适用于:数据量较少,且精度较高。拟合方法适用于:数据量较多,且含有较大的不确定性,如,数据中,同一点处有多个观测值(可能不同);再如,社会、经济统计中,随机因素对数据的影响较大,甚至与数据处于同一个数量级,拟合方法特别适用于研究数据自身所隐含的规律、趋势。实际中数据处理的例子测量细棒上若干个点处的温度(或房间内若干个点处的温度、某区域若干个点处的海水深度,汽车、飞机等的外形设计,诸如此类的空间分布数据),试确定细棒上各处的温度分布。当数据量较少,且测量误差较小时,可用插值法;当数据量很多,测量误差较大,或数据中含较大的不确定性时,可用拟合法。研究时间序列数据的变化趋势,常用拟合法。第一章插值方法此类实际问题的基本特征(以两个变量情况为例)已知:一组数据点,它对应一个确定的函数关系.我们需要求出这个函数,并希望,.例子1.测量细棒上若干个点处的温度,确定出温度的空间分布(两个变量间的一元函数).2.数控铣床加工精密工件问题(三个变量间的多元函数).()iiyfx()yfx(,),iixy1,2,,in1,2,,in第一节一元函数的多项式插值插值问题提法:已知函数在个互异的观测点,,上的函数值,.求函数,满足,.称为插值函数,称为被插值函数,称为插值节点。这种提法存在问题1.解不唯一,需要附加条件!2.作为未知的被插值函数的一个近似,用于后续的分析计算过程中,应具备形式简单、满足必要的分析性质、便于进行各种分析运算。3.在插值节点处,插值函数与被插值函数取值完全一致!插值法适用于那种观测数据精度较高的问题。()yfxixx1,2,,iniy1,2,,in()yx()iiyx1,2,,inn()yx()yfx(1,2,,)ixin适定的代数插值问题已知函数在个互异的观测点,处的函数值,.求次数不超过次的多项式,满足,.称为次插值多项式.也称为Lagrange插值多项式。该问题满足1.解存在唯一(通过指定插值函数应属的函数类实现)2.插值多项式便于构造3.代数多项式形式简单、性质良好ixx0,1,2,,in()yfx1niy0,1,2,,inn()nx()iniyx0,1,2,,in()nxnn次Lagrange插值多项式的构造记函数满足当时函数称为次代数插值的插值基函数。易得即0,1,2,,in()(0,1,2,,)ilxin1,()(0,1,2,,)0,ikkilxknki()(0,1,2,,)ilxinn0()()(0,1,2,,)()njijijjixxlxinxx0()()nniiixylx龙格(Runge)现象1.当插值节点个数很大时,一方面,插值多项式次数越来越高;另一方面,插值多项式与被插值函数取值一样的点的个数越来越多。2.将区间[-5,5]分成10等分,11个分点(含端点)作为插值节点(),构造函数的10次插值多项式21()1fxx10()x10n第二节分段多项式插值Runge现象揭示1.当时,2.应尽量避免用高次多项式作为插值函数3.低次多项式也有优点4.兼顾各方,分段低次多项式插值,效果更好仅简单介绍分段线性插值n()()nxfx分段线性插值问题已知函数在个观测点上的函数值,.求函数,满足①在每个小区间上,是线性函数(次数不超过1次的多项式);②,.称为分段线性插值函数。分段线性插值的构造当时,01nxxx()fx1niy0,1,2,,in()x()iiyx0,1,2,,in()x()x1[,](0,1,,1)iixxin1[,](0,1,,1)iixxxin1111()iiiiiiiixxxxxyyxxxx两种插值的数值算例第三节密切插值(osculatinginterpolation)实际问题中,有时不仅可以得到未知函数在观测点处的函数值,而且还可以测量出它在这些点处的一阶导数值,甚至高阶导数值,此时,可以构造密切插值函数.Hermite插值问题提法已知函数在个观测点,处的函数值和导数值,.求函数,满足①是次数不超过次的多项式.②,,.称为函数的次Hermite插值多项式.()yfx1nim0,1,2,,in21()nHx21()niiHxy0,1,2,,iniyixx0,1,2,,in21()nHx21n21()niiHxm21()nHx21n()fx第四节样条插值(splineinterpolation)当插值节点个数较多时,Lagrange插值的不收敛性,分段低次多项式插值的不够光滑,Hermite插值需要已知导数值,提出一种收敛的、具有一定光滑性的分段低次多项式插值——样条插值样条插值问题提法已知函数在个的观测点处的函数值,.求函数,满足①在每个小区间上,是次数不超过3次的多项式;②,.③.称为三次样条插值函数.注1:要保证问题的解存在唯一,需要适当的补充条件——样条插值的边界条件注2:求样条插值函数,需要解线性代数方程组.01nxxx()yfx1niy0,1,2,,in()sx()iisxy0,1,2,,in()sx()sx1[,](0,1,,1)iixxin20()[,]nsxCxx第二章matlab插值命令简介关于多项式1.多项式表示多项式可用行矢量表示,其元素按幂指数降序排列,如,可表示为一个向量2.多项式求值命令polyval(P,X)计算多项式P在X点处的值,若X是数组,则所得结果为对应点处的函数值构成的数组.42()50324Pxxxx[5,0,3,2,4]P第一节一元函数部分插值命令一元插值函数interp1()调用格式为yi=interp1(x,y,xi,method)其中①x,y为给定的插值数据,可以是数组;②xi为被插值点,yi为被插值点xi处的插值函数值,它们可以是数组,且必须维数一致;③‘method’指定所要选用的插值方法可选用的四种method①‘nearest’(最邻近插值):被插值点处函数值取值为最接近的插值节点处的值②‘linear’:分段线性插值.这是interp1函数的缺省设置③‘cubic’:分段三次插值函数④‘spline’:样条插值函数样条插值算例‘nearest’的算例函数interp1评注以上这四种方法都要求x中的数据为单调,且xi在插值节点的内部(此时为内插),但并不要求x是等距节点,对等距节点,可在method之前加上*,能提高运行速度。从运行速度、占用内存大小及插值函数的光滑度三个方面分别比较四种方法(按nearest、linear、cubic、spline顺序),结果为1.运行速度由快到慢2.内存要求从小到大3.光滑度由差到好对于’method‘没有涉及到的插值方法,相应的插值函数要自行编程实现第二节二元函数的插值及部分matlab命令二元函数的插值情况较为复杂,常按如下两个方面予以区分1.自变量所属的二维区域是规则区域还是不规则区域前者较为标准方法较多,后者可化归为前者2.给定的数据是有规律分布的还是散乱的、随机分布的前者问题较为标准,解决方法较为成熟,可选方法较多.对于后者,通常是转化为前者,但要具体问题具体分析,基本思路是:从给定的数据出发,依据一定的方法补充修复出相应于规则插值节点上的数据,转化为数据分布有规律的情形来处理二维规则区域,插值节点分布规律插值数据形如:y1y2…ynx1z11z12…z1nx2z21z22…z2n……………xmzm1zm2…zmn可用方法及matlab函数二元插值函数interp2()调用格式为zi=interp2(x,y,z,xi,yi,method)其中①x,y,z为插值数据,均为向量②zi为被插值点(xi,yi)处的插值函数值③method为可选用的插值方法可选用的四种method①‘nearest’:表示最临近插值②‘linear’:表示分片双线性插值③‘cubic’:表示分片双三次插值④'spline':表示双三次样条插值注:interp2插值方法要求x和y分别是单调的插值节点,x和y可以是不等距的.第三章数据拟合方法当观测数据量较大,且常常在同一点处有多个观测值(可能不同),或者数据中含有较大不确定性、有较大的误差时,要求近似函数过给定的数据点的插值方法难以得到满意的结果。不刻意追求微观上对每对数据的准确满足(即像插值法那样,让近似函数过给定的点),而是先提出某种整体上近似准则,在此准则下,追求一个最优的近似函数!第一节最小二乘数据拟合最小二乘数据拟合问题提法已知函数的一组观测数据若函数满足则称此函数为的拟合函数.其中,,,称为拟合函数在点处的偏差或残量xx1x2…xny=f(x)y1y2…yn()yx()yfx()iiixy1,2,,in2211[()]min()nniiiiiJxy()x()fx()xix关于数据拟合一般地,是在指定的函数类中求拟合函数数据拟合的步骤1.画散点图,由此分析确定出合适的拟合函数类,通常所选函数类构成线性空间2.拟合函数类中函数的表示,选定基函数,待求拟合函数转化为求拟合函数在这组基函数上的展开系数3.求解最小二乘问题(*),求得拟合函数(即求其在基函数的展开系数)线性最小二乘数据拟合若线性函数满足则称此函数为的线性拟合函数.注:求解线性最小二乘拟合,最终归结为求解一个线性代数方程组,此方程组通常称为最小二乘问题的正规方程组()yx2211[()]min()nniiiiiJxy()x()fx非线性最小二乘数据拟合若非线性函数满足则称此函数为的非线性拟合函数.注:求解非线性最小二乘拟合,通常应首先将其线性化最终归结为求解一个线性代数方程组,此方程组通常称为最小二乘问题的正规方程组()yx2211[()]min()nniiiiiJxy()x()fx第二节线性最小二乘数据拟合的解设由一组线性无关函数系的线性组合组成一函数类,显然它构成一个线性空间.此时,线性最小二乘拟合问题可表示为:求,使得将所求拟合函数表示成该线性空间一组基函数的线性展开0,1,,kkm()x2211[()]min()nniiiiiJxy0()()mkkkxax线性最小二乘问题的正规方程组此时,求解线性最小二乘拟合问题转化为求系数,注意到(**)式是这组系数的二次函数,所以有整理可得0,1,2,,kJkma,0,1,,kakm011()()(),1,2,,()mnnjikijikijiixxayxkm第三节matlab单变量数据拟合命令简介拟合函数的命令为:polyfit()其调用格式为a=polyfit(xdata,ydata,m)其中①m为多项式拟合函数类的最高次数②xdata,ydata为要拟合的数据,都是数组③a输出结果,即拟合多项式在选定基函数的展开系数01a[,,,]maaa一般的曲线拟合拟合函数为curvefit(),或lsqcurvefit()调用格式分别为p