《matlab内置函数-插值.ppt》由会员分享,可在线阅读,更多相关《matlab内置函数-插值.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数值计算数值计算Matlab的内置函数的内置函数-插值插值-11一维插值一维插值22二维插值二维插值1用用MATLABMATLAB内置函数作插值计算内置函数作插值计算一维插值函数:一维插值函数:yi=interp1(x,y,xi,method)插值方法插值方法被插值点被插值点插值节点插值节点xixi处的插处的插值结果值结果nearest :最邻近插值:最邻近插值linear :分段:分段线性插值;线性插值;spline :三次样条插值;三次样条插值;cubic :立方插值。立方插值。缺省时:缺省时:分段线性插值。分段线性插值。注意:所有的插值方法都要求注意:所有的插值方法都要求x x是单调的,
2、并且是单调的,并且xi不不能够超过能够超过x的范围。的范围。2 例:在例:在1-121-12的的1111小时内,每隔小时内,每隔1 1小时测量一次温度,小时测量一次温度,测得的温度依次为:测得的温度依次为:5 5,8 8,9 9,1515,2525,2929,3131,3030,2222,2525,2727,2424。试估计每隔。试估计每隔1/101/10小时的温度值。小时的温度值。hours=1:12;temps=5 8 9 15 25 29 31 30 22 25 27 24;h=1:0.1:12;t1=interp1(hours,temps,h,spline);%(直接输出数据将是很多的
3、)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);subplot(2,2,3);plot(hours,temps,bo,h,t3,r);title(linear);subplot(2,2,4);plot(hours
4、,temps,bo,h,t4,r,h,t1,g);title(cubic-spline);34返回返回二维插值(了解)二维插值(了解)一、一、二维插值定义二维插值定义二、网格节点插值法二、网格节点插值法三、用三、用MatlabMatlab解插值问题解插值问题最邻近插值最邻近插值分片线性插值分片线性插值双线性插值双线性插值网格节点数据的插值网格节点数据的插值散点数据的插值散点数据的插值5二维插值的定义二维插值的定义 xyO O第一种(网格节点):第一种(网格节点):6 已知已知 m n个节点个节点 其中其中互不相同,不妨设互不相同,不妨设 构造一个二元函数构造一个二元函数通过全部已知节点通过全部
5、已知节点,即即再用再用计算插值,即计算插值,即7第二种(散乱节点):第二种(散乱节点):yx0 08已知已知n个节点个节点其中其中互不相同,互不相同,构造一个二元函数构造一个二元函数通过全部已知节点通过全部已知节点,即即再用再用计算插值,即计算插值,即9 注意:注意:最邻近插值一般不连续。具有连续性的最简单的插值是分片线性插值。最邻近插值最邻近插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)O O 二维或高维情形的最邻近插值,与被插值点最邻近的节点的函数值即为所求。网格节点插值法网格节点插值法1 1:10将四个插值点(矩形的四个顶点)处的函数值依次简记为:分片线性插值分片线性
6、插值xy (x1,y1)(x1,y2)(x2,y1)(x2,y2)O Of(x1,y1)=z1,f(x2,y1)=z2,f(x2,y2)=z3,f(x1,y2)=z4网格节点插值法网格节点插值法2 2:11插值函数为:若插值点在上三角形区域):即(x,y)满足插值函数为:注意注意:(x,y)当然应该是在插值节点所形成的矩形区域内。显然,分片线性插值函数是连续的;分两片的函数表达式如下:若插值点在下三角形区域:即(x,y)满足返回返回12 双线性插值是一片一片的空间二次曲面构成。双线性插值函数的形式如下:其中有四个待定系数,利用该函数在矩形的四个顶点(插值节点)的函数值,得到四个代数方程,正好确
7、定四个系数。双线性插值双线性插值x y(x1,y1)(x1,y2)(x2,y1)(x2,y2)O O网格节点插值法网格节点插值法3 3:13 要求要求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,y,method)被插值点插值方法用用MATLAB作网格节点数据的插值作网格节点数据的插值插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear
8、双线性插值双线性插值cubic cubic 双三次插值双三次插值缺省时缺省时,双线性插值双线性插值14例:测得平板表面例:测得平板表面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 试作出平板表面的温度分布曲面试作出平板表面的温度分布曲面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
9、 85 86;mesh(x,y,temps)1.先在三维坐标画出原始数据,画出粗糙的温度分布曲图.2为平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.15再输入以下命令:xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi,yi,cubic);mesh(xi,yi,zi)画出插值后的温度分布曲面图.16 插值函数插值函数griddata格式为格式为:cz=griddata(x,y,z,cx,cy,method)用用MATLABMATLAB作散点数据的插值计算作散点数据的插值计算 要求要求cxcx取行向量,取行向量,cycy取为列向量取为列向量。被插值点插值方法插值节点被插值点的函数值nearest nearest 最邻近插值最邻近插值linear linear 双线性插值双线性插值cubic cubic 双三次插值双三次插值v4-Matlab提供的插值方法提供的插值方法缺省时缺省时,双线性插值双线性插值17
限制150内