用MATLAB进行数据插值资料.pptx
《用MATLAB进行数据插值资料.pptx》由会员分享,可在线阅读,更多相关《用MATLAB进行数据插值资料.pptx(107页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 我们经常会遇到大量的数据需要处理,我们经常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,例如而处理数据的关键就在于这些算法,例如数据拟合、参数估计、插值等数据处理算数据拟合、参数估计、插值等数据处理算法。此类问题在法。此类问题在MATLAB中有很多现成的中有很多现成的函数可以调用,熟悉函数可以调用,熟悉MATLAB,这些方法,这些方法都能游刃有余的用好。都能游刃有余的用好。一、一、概述概述第1页/共107页 数据拟合在很多赛题中有应用,与图形数据拟合在很多赛题中有应用,与图形处理有关的问题很多与插值和拟合有关系,处理有关的问题很多与插值和拟合有关系,例如例如9898年美国赛年美国
2、赛A A题,生物组织切片的三维插题,生物组织切片的三维插值处理,值处理,9494年年A A题逢山开路,山体海拔高度的题逢山开路,山体海拔高度的插值计算,插值计算,20032003年吵的沸沸扬扬的年吵的沸沸扬扬的“非典非典”问题也要用到数据拟合算法,观察数据的走问题也要用到数据拟合算法,观察数据的走向进行处理,向进行处理,20052005年的雨量预报的评价的插年的雨量预报的评价的插值计算。值计算。20012001年的公交车调度拟合问题,年的公交车调度拟合问题,20032003年的饮酒驾车拟合问题。年的饮酒驾车拟合问题。第2页/共107页预测点和实测点的图形预测点和实测点的图形插值后的图形插值后的
3、图形第3页/共107页喝两瓶酒的拟合曲线喝1-5瓶酒的拟合曲线第4页/共107页 在实际中,常常要处理由实验或测量所在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函数或寻求某个近似函数,使所得到的近似函数与已知数据有较高的拟合精度。数与已知数据有较高的拟合精度。如果要求这个近似函数(曲线或曲面)如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为经过所已知的所有数据点,则称此类问题为插值问题插值问题。
4、(不需要函数表达式)(不需要函数表达式)二、二、基本概念基本概念第5页/共107页 如果不要求近似函数通过所有数据点,如果不要求近似函数通过所有数据点,而是要求它能较好地反映数据变化规律的近而是要求它能较好地反映数据变化规律的近似函数的方法称为似函数的方法称为数据拟合数据拟合。(必须有函数。(必须有函数表达式)表达式)近似函数不一定(曲线或曲面)通过所近似函数不一定(曲线或曲面)通过所有的数据点。有的数据点。第6页/共107页1 1、联系、联系都是根据实际中一组已知数据来构造一个能够都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。反映数据变化规律的近似函数的方法。2
5、2、区别、区别插值问题插值问题不一定得到近似函数的表达形式,仅不一定得到近似函数的表达形式,仅通过插值方法找到未知点对应的值。通过插值方法找到未知点对应的值。数据拟合数据拟合要求得到一个具体的近似函数的表达式。要求得到一个具体的近似函数的表达式。三、插值与三、插值与拟合的区别和联系拟合的区别和联系第7页/共107页 插插 值值 当数据量不够,需要补充,且认定已有数据可信时,通常利用函数插值方法。实际问题当中碰到的函数 f(x)是各种各样的,有的表达式很复杂,有的甚至给不出数学的式子,只提供了一些离散数据,警如,某些点上的函数值和导数值。第8页/共107页拉格朗日插值分段线性插值三次样条插值一一
6、 维维 插插 值值一、一、插值的定义插值的定义二、插值的方法二、插值的方法三、用三、用Matlab解插值问题解插值问题返回第9页/共107页返回二维插值二维插值一、一、二维插值定义二维插值定义二、网格节点插值法二、网格节点插值法三、用三、用MatlabMatlab解插值问题解插值问题最邻近插值最邻近插值分片线性插值分片线性插值双线性插值双线性插值网格节点数据的插值网格节点数据的插值散点数据的插值散点数据的插值第10页/共107页一维插值的定义一维插值的定义已知已知 n+1个节点个节点其中其中互不相同,不妨设互不相同,不妨设求任一插值点求任一插值点处的插值处的插值节点可视为由节点可视为由产生产生
7、,,表达式复杂表达式复杂,,或无封闭形式或无封闭形式,,或未知或未知.。第11页/共107页 构造一个构造一个(相对简单的相对简单的)函数函数通过全部节点通过全部节点,即即再用再用计算插值,即计算插值,即返回第12页/共107页 称为拉格朗日插值基函数拉格朗日插值基函数。已知函数f(x)在n+1个点x0,x1,xn处的函数值为 y0,y1,yn。求一n次多项式函数Pn(x),使其满足:Pn(xi)=yi,i=0,1,n.解决此问题的拉格朗日插值多项式公式如下其中Li(x)为n次多项式:拉格朗日拉格朗日(Lagrange)插值插值第13页/共107页拉格朗日拉格朗日(Lagrange)插值插值特
8、别地特别地:两点一次两点一次(线性线性)插值多项式插值多项式:三点二次三点二次(抛物抛物)插值多项式插值多项式:第14页/共107页 拉格朗日多项式插值的这种振荡现象叫 Runge现象现象 采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形.例例返回To MatlabTo Matlablch(larg1)lch(larg1)第15页/共107页第16页/共107页分段线性插值分段线性插值n越大,误差越小.xjxj-1xj+1x0 xnxoy第17页/共107页To MATLABxch11,xch12,xch13,xc
9、h14返回例例用分段线性插值法求插值用分段线性插值法求插值,并观察插值误差并观察插值误差.1.在在-6,6中平均选取中平均选取5个点作插值个点作插值(xch11)4.在在-6,6中平均选取中平均选取41个点作插值个点作插值(xch14)2.在在-6,6中平均选取中平均选取11个点作插值个点作插值(xch12)3.在在-6,6中平均选取中平均选取21个点作插值个点作插值(xch13)第18页/共107页第19页/共107页比分段线性插值更光滑。比分段线性插值更光滑。xyxi-1 xiab 在数学上,光滑程度的定量描述是:函数(曲线)的k阶导数存在且连续,则称该曲线具有k阶光滑性。光滑性的阶次越高
10、,则越光滑。是否存在较低次的分段多项式达到较高阶光滑性的方法?三次样条插值就是一个很好的例子。三次样条插值三次样条插值第20页/共107页 三次样条插值g g(x x)为被插值函数为被插值函数。第21页/共107页例例用三次样条插值选取用三次样条插值选取11个基点计算插值个基点计算插值(ych)返回To MATLABych第22页/共107页用用MATLABMATLAB作插值计算作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果nearest :最邻近插值:最邻近插值linea
11、r :线性插值;线性插值;spline :三次样条三次样条插值;插值;cubic :立方插值。立方插值。缺省时:缺省时:分段线性插值。分段线性插值。注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,并且是单调的,并且xi不能够超过不能够超过x的范的范围。围。第23页/共107页 (1 1)nearestnearest方法速度最快,占用内存最小,但一般方法速度最快,占用内存最小,但一般来说误差最大,插值结果最不光滑;来说误差最大,插值结果最不光滑;(2)liner (2)liner分段线性插值:插值点处函数值由连接其分段线性插值:插值点处函数值由连接其最邻近的两侧点的线性函数预
12、测,最邻近的两侧点的线性函数预测,MATLABMATLAB中中interp1interp1的默认方法的默认方法 (3 3)splinespline三次样条插值是所有插值方法中运行耗三次样条插值是所有插值方法中运行耗时最长的,其插值函数以及插值函数的一阶、二阶导时最长的,其插值函数以及插值函数的一阶、二阶导函数都连续,因此是最光滑的插值方法,占用内存上函数都连续,因此是最光滑的插值方法,占用内存上比比cubiccubic方法小,但当已知数据点不均匀分布时可能出方法小,但当已知数据点不均匀分布时可能出现异常结果。现异常结果。(4 4)cubiccubic三次多项式插值法中插值函数及其一阶导三次多项
13、式插值法中插值函数及其一阶导数都是连续的,因此其插值结果也比较光滑,运算速数都是连续的,因此其插值结果也比较光滑,运算速度比度比splinespline方法略快,但占用内存最多。在实际的使用方法略快,但占用内存最多。在实际的使用中,应根据实际需求和运算条件选择合适的算法。中,应根据实际需求和运算条件选择合适的算法。第24页/共107页例例 用其他一维插值方法对以下用其他一维插值方法对以下7 7个离散数据点个离散数据点(1,3.5)(1,3.5)、(2,2.1)(2,2.1)、(3,1.3)(3,1.3)、(4.0.8)(4.0.8)、(5,2.9)(5,2.9)、(6,4.2)(6,4.2)、
14、(7,5.7)(7,5.7)进行一维插值方法。进行一维插值方法。解:解:在在MATLABMATLAB命令窗口中输入以下命令窗口中输入以下命令:命令:x=1 2 3 4 5 6 7;x=1 2 3 4 5 6 7;y=3.5 2.1 1.3 0.8 2.9 4.2 5.7;y=3.5 2.1 1.3 0.8 2.9 4.2 5.7;xx=1:0.5:7;xx=1:0.5:7;y1=interp1(x,y,xx,nearest);y1=interp1(x,y,xx,nearest);y2=interp1(x,y,xx,spline);y2=interp1(x,y,xx,spline);y3=int
15、erp1(x,y,xx,cubic);y3=interp1(x,y,xx,cubic);plot(x,y,o,xx,y1,-,xx,y2,-plot(x,y,o,xx,y1,-,xx,y2,-.,xx,y3,:).,xx,y3,:)第25页/共107页第26页/共107页 例:在例:在1-121-12的的1111小时内,每隔小时内,每隔1 1小时测量一次温小时测量一次温度,测得的温度依次为:度,测得的温度依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。试估计每隔。试估计每隔1/101/10小时的温小时的温度值。度值。To
16、 MATLAB(temp)hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t=interp1(hours,temps,h,spline);(直接输出数据将是很多的)plot(hours,temps,+)hold onplot(h,t,hours,temps,r:)%作图xlabel(Hour),ylabel(Degrees Celsius)第27页/共107页第28页/共107页xy机翼下轮廓线例例 已知飞机下轮廓线上数据如下,求已知飞机下轮廓线上数据如下,求x每改变每改变0.1时的时的y值。值。To MATLAB(pl
17、ane)返回第29页/共107页第30页/共107页二维插值的定义二维插值的定义 xyO O第一种(网格节点):第一种(网格节点):第31页/共107页 已知已知 m n个节点个节点 其中其中互不相同,不妨设互不相同,不妨设 构造一个二元函数构造一个二元函数通过全部已知节点通过全部已知节点,即即再用再用计算插值,即计算插值,即第32页/共107页第二种(散乱节点):第二种(散乱节点):yx0 0第33页/共107页已知已知n个节点个节点其中其中互不相同,互不相同,构造一个二元函数构造一个二元函数通过全部已知节点通过全部已知节点,即即再用再用计算插值,即计算插值,即返回第34页/共107页 注意
18、:注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。最邻近插值最邻近插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)O O 二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。返回第35页/共107页 将四个插值点(矩形的四个顶点)处的函数值依次简记为:分片线性插值分片线性插值xy (xi,yj)(xi,yj+1)(xi+1,yj)(xi+1,yj+1)O Of(xi,yj)=f1,f(xi+1,yj)=f2,f(xi+1,yj+1)=f3,f(xi,yj+1)=f4第36页/共107页插值函数为:第二片(上三角形区域):(x,y)满足插值函
19、数为:注意注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;分两片的函数表达式如下:第一片(下三角形区域):(x,y)满足返回第37页/共107页 双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。双线性插值双线性插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)O O返回第38页/共107页 要求要求x0,y0 x0,y0单调;单调;x x,y y可取可取为矩阵,或为矩阵,或x x取取行向量,行向量,y y取为列向量,取
20、为列向量,x,yx,y的值分别不能超出的值分别不能超出x0,y0 x0,y0的范围。的范围。z=interp2(x0,y0,z0,x,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearestnearest 最邻近插值最邻近插值linearlinear 双线性插值双线性插值cubiccubic 双三次插值双三次插值缺省时缺省时,双线性插值双线性插值第39页/共107页例:测得平板表面例:测得平板表面3*53*5网格点处的温度分别为:网格点处的温度分别为:82 81 80 82 84 82 81 80 82 84 79 63
21、61 65 81 79 63 61 65 81 84 84 82 85 86 84 84 82 85 86 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面z=f(x,y)z=f(x,y)的图形。的图形。输入以下命令:x=1:5;y=1:3;temps=82 81 80 82 84;79 63 61 65 81;84 84 82 85 86;mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图.2以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.第40页/共107页第41页/共107页再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi
22、=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图.To MATLAB(wendu)第42页/共107页第43页/共107页例x,y=meshgrid(-3:.6:3,-2:.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z),第44页/共107页选较密的插值点,用默认的线性插值算法进行插值x1,y1=meshgrid(-3:.2:3,-2:.2:2);z0=interp2(x,y,z,x1,y1);surf(x1,y1,z0)第45页/共107页立方和样条插值:z1=interp
23、2(x,y,z,x1,y1,cubic);z2=interp2(x,y,z,x1,y1,spline);surf(x1,y1,z1),axis(-3,3,-2,2,-0.7,1.5)figure;surf(x1,y1,z2),axis(-3,3,-2,2,-0.7,1.5)第46页/共107页算法误差比较z=(x1.2-2*x1).*exp(-x1.2-y1.2-x1.*y1);surf(x1,y1,abs(z-z1)figure;surf(x1,y1,abs(z-z2)figure;surf(x1,y1,abs(z-z0)第47页/共107页山区地形地貌图已知某处山区地形选点测量坐标数据为:
24、x=00.511.522.533.544.55y=00.511.522.533.544.555.56海拔高度数据为:z=899087859291969390878292969899959189868482849698959290888584838185808182899596939289868682858798999697888582838285899495939291868488889293949589878683819292969798969395848281848585818280808185909395848681989998979695848780818582838487909586
25、8880828184858683828180828788899899979698949287第48页/共107页山区地形地貌图 程序原始地貌图程序:x=0:.5:5;y=0:.5:6;xx,yy=meshgrid(x,y);z=899087859291969390878292969899959189868482849698959290888584838185808182899596939289868682858798999697888582838285899495939291868488889293949589878683819292969798969395848281848585818280
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 进行 数据 资料
限制150内