matlab数据插值实现,数据插值的matlab实现

41528d3028836879cd698677c3999917.gif数据插值的matlab实现

实验8 插值 实验目的: 1.了解插值的基本原理; 2.熟练掌握插值的Matlab实现; 3.会用插值方法解决一些实际问题。 实验内容: 在数学中,有时需要查表,如对数表。在具体查表时,需要的数据表中可能没有,这时一般可以先找出它相邻的数,再从表中查出其相应结果,然后按一定的关系把这些相邻的数以及它相应的结果加以修正,就可求出要查数的数据结果的近似值.这个修正关系就是一种插值. 在实践中,常常需要测量某些数据,但由于客观条件的限制,所测得的数据可能不够细密,满足不了实践的需要,这时便可以通过插值方法对数据进行加密处理。此外,对于给定的离散数据对,如果要找一个函数来近似描述其对应关系,常常也需要插值。 8.1 插值简介 《微积分》中,用函数描述一条平面曲线,但在实际问题中,此函数关系往往通过实验观测得到的一组数据给出,如表8-1。 表8-1 …… …… 怎样根据表8-1中的数据,找出自变量与因变量之间的关系的表达式?可以采用插值。 所谓插值,就是根据给定的数据表,寻找一个解析形式的函数,来近似地代替实际关系,并且满足。对于解析函数,可选择不同的类型,最常用的是代数多项式。不同的插值问题,构造插值多项式的方法有时也不相同,较为常用的有拉格朗日(Lagrange)插值、分段线性插值和样条插值。 8.2 一维插值的MATLAB实现 MATLAB中常用的一维插值指令为 interp1(x,y,cx,’’) 其中,x,y分别表示数据点的横坐标和纵坐标向量;cx为待插值的横坐标数据向量,它不能超出x的范围;为插值的使用方法,包括:nearest(最近邻点插值)、linear(线性插值)、spline(三次样条插值)和cubic(三次插值)。 例1 试用分段线性插值和三次样条插值分别对函数()进行插值,并与实际曲线图比较。 解:假设已知给定曲线的初始节点为-5,且步长为1,则用分段线性插值和三次样条插值分别对其插值作图,相应程序如下: x0=-5:5;y0=1./(1+x0.^2); %产生节点(x0,y0) x=-5:0.1:5;y=1./(1+x.^2); %产生插值点x y2=interp1(x0,y0,x);figure(2),plot(x,y, b ,x,y2, k: ),grid %使用分段线性插值并作图 y3=interp1(x0,y0,x, spline );figure(3),plot(x,y, b ,x,y3, k: ),grid %使用三次样条插值并作图 运行得图形见图8.1和图8.2。 图8.1 分段线性插值与实际曲线比较图 图8.2 三次样条插值与实际曲线比较图 由图可见,分段线性插值与三次样条插值效果较好,而后者更好,其插值曲线与所给曲线几乎重合。此外需要注意的是,分段线性插值函数在节点处不可导,所以在实际应用时如果光滑程度要求较高,则应采用三次样条插值。 例2 在一天24小时内,从零点开始每间隔2小时测得的环境温度为(摄氏度) 12,9,9,10,18,24,28,27,25,20,18,15,13,推测在每一秒时的温度.并利用不同的插值方法描绘温度曲线 键入: x=0:2:24; y=[12 9 9 10 18 24 28 27 25 20 18 15 13]; xi=0:1/3600:24; yi=interp1(x,y,xi, nearest );hold on plot(xi,yi, r ); yi=interp1(x,y,xi, linear );plot(xi,yi, g ); yi=interp1(x,y,xi, spline ); plot(xi,yi, b ); yi=interp1(x,y,xi, cubic ); plot(xi,yi, y ); 8.3 二维插值的MATLAB实现 对二维插值,MATLAB分别给出了针对插值基点为网格点的插值函数interp2和针对插值基点为散乱节点的插值函数griddata,其格式分别为 (1) N维插值函数interpN(x,y,z,cx,cy, ) 其中N可以为2,3,…,如N=2为二维插值,调用格式为 zi=interp2(x,y,z,Xi,Yi,’’) 其中x,y为横纵坐标上的坐标点,{(x,y)}=mashgrid(x,y)生成平面网格点,z为观测到的在网格点上的二元函数值.{(x,y,z)}构成空间插值节点.引入两个向量xi,yi.xi为横坐标上的插值点,yi为纵坐标上的插值点.便可给出 [Xi,Yi]=meshgrid(xi,yi) zi为新的或者是加细了的网格点上产生的插值结果(函数值). 表示采用的插值方法.`nearest` 最邻近插值,`linear`线性插值,`cubic`双三次插值.缺省时表示线性插值.所有的插值方法都要求x和y是单调的网格,x和y可以是等距的也可以是不等距的。 (2)griddata(x,y,z,cx,cy, ) 其中,x,y,z分别为数据点的横坐标、纵坐标和竖坐标向量,要求x和y的分量值必须单调;cx,cy分别为待插值点的横坐标和纵坐标的数据向量,它不能超出x的范围;为插值的使用方法,包括:nearest(最近邻点插值)、linear(线性插值)、v4(MATLAB中所提供的插值方法)和cubic(三次插值)。 例3 在某山区(平面区域内,单位:m)测得一些点的高度(单位:m)见表8-2,试作出该山区的地貌图。 表8-2 某山区一些点的高度表 1200 1600 2000 2400 2800 3200 3600 4000 4400 4800 1200 1130 1250 1280 1230 1040 900 500 700 780 750 1600 1320 1450 1420 1400 1300 700 900 850 840 380 2000 1390 1500 1500 1400 900 1100 1060 950 870 900 2400 1500 1200 1100 1350 1450 1200 1150 1010 880 1000 2800 1500 1200 1100 1550 1600 1550 1380 1070 900 1050 3200 1500 1550 1600 1550

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值