《matlab内置函数-插值.ppt》由会员分享,可在线阅读,更多相关《matlab内置函数-插值.ppt(17页珍藏版)》请在三一办公上搜索。
1、1,数值计算Matlab的内置函数,-插值-,1一维插值,2二维插值,2,用MATLAB内置函数作插值计算,一维插值函数:,yi=interp1(x,y,xi,method),nearest:最邻近插值linear:分段线性插值;spline:三次样条插值;cubic:立方插值。缺省时:分段线性插值。,注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。,3,例:在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。,hours=1:12;temps=5 8 9 15 2
2、5 29 31 30 22 25 27 24;h=1:0.1:12;t1=interp1(hours,temps,h,spline);%(直接输出数据将是很多的)t2=interp1(hours,temps,h,nearest);t3=interp1(hours,temps,h,linear);t4=interp1(hours,temps,h,cubic);subplot(2,2,1);plot(hours,temps,bo,h,t1,r);title(spline);%作图subplot(2,2,2);plot(hours,temps,bo,h,t2,r);title(nearest);su
3、bplot(2,2,3);plot(hours,temps,bo,h,t3,r);title(linear);subplot(2,2,4);plot(hours,temps,bo,h,t4,r,h,t1,g);title(cubic-spline);,4,5,返回,二维插值(了解),一、二维插值定义,二、网格节点插值法,三、用Matlab解插值问题,最邻近插值,分片线性插值,双线性插值,网格节点数据的插值,散点数据的插值,6,二维插值的定义,第一种(网格节点):,7,已知 mn个节点,8,第二种(散乱节点):,9,10,注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。,最邻
4、近插值,二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。,网格节点插值法1:,11,将四个插值点(矩形的四个顶点)处的函数值依次简记为:,分片线性插值,f(x1,y1)=z1,f(x2,y1)=z2,f(x2,y2)=z3,f(x1,y2)=z4,网格节点插值法2:,12,插值函数为:,若插值点在上三角形区域):即(x,y)满足,插值函数为:,注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;,分两片的函数表达式如下:,若插值点在下三角形区域:即(x,y)满足,返回,13,双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下
5、:,其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确定四个系数。,双线性插值,网格节点插值法3:,14,要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。,z=interp2(x0,y0,z0,x,y,method),用MATLAB作网格节点数据的插值,nearest 最邻近插值linear 双线性插值cubic 双三次插值缺省时,双线性插值,15,例:测得平板表面3*5网格点处的温度分别为:82 81 80 82 84 79 63 61 65 81 84 84 82 85 86 试作出平板表面
6、的温度分布曲面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个单位的地方进行插值.,16,再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图.,17,插值函数griddata格式为:,cz=griddata(x,y,z,cx,cy,method),用MATLAB作散点数据的插值计算,要求cx取行向量,cy取为列向量。,nearest 最邻近插值linear 双线性插值cubic 双三次插值v4-Matlab提供的插值方法缺省时,双线性插值,