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