数学建模社区-数学中国

标题: 一维数据插值—— interp1 [打印本页]

作者: 森之张卫东    时间: 2015-8-18 21:50
标题: 一维数据插值—— interp1

命令1  interp1

功能 一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。其中函数f(x)由所给数据决定。各个参量之间的关系示意图为图2-14


2-14  数据点与插值点关系示意图

格式 yi = interp1(x,Y,xi)        %返回插值向量yi,每一元素对应于参量xi,同时由向量xY的内插值决定。参量x指定数据Y的点。若Y为一矩阵,则按Y的每列计算。yi是阶数为length(xi)*size(Y,2)的输出矩阵。

yi =interp1(Y,xi)          %假定x=1:N,其中N为向量Y的长度,或者为矩阵Y的行数。

yi = interp1(x,Y,xi,method)  %用指定的算法计算插值:

’nearest’:最近邻点插值,直接完成计算;

’linear’:线性插值(缺省方式),直接完成计算;

’spline’:三次样条函数插值。对于该方法,命令interp1调用函数splineppvalmkppumkpp。这些命令生成一系列用于分段多项式操作的函数。命令spline用它们执行三次样条函数插值;

’pchip’:分段三次Hermite插值。对于该方法,命令interp1调用函数pchip,用于对向量xy执行分段三次内插值。该方法保留单调性与数据的外形;

’cubic’:与’pchip’操作相同;

’v5cubic’:在MATLAB 5.0中的三次插值。

对于超出x范围的xi的分量,使用方法’nearest’’linear’’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1将对超出的分量执行外插值算法。

yi =interp1(x,Y,xi,method,'extrap')     %对于超出x范围的xi中的分量将执行特殊的外插值法extrap

yi =interp1(x,Y,xi,method,extrapval)  %确定超出x范围的xi中的分量的外插值extrapval,其值通常取NaN0

2-31

>>x = 0:10; y = x.*sin(x);

>>xx = 0:.25:10; yy = interp1(x,y,xx);

>>plot(x,y,'kd',xx,yy)

插值图形为图2-15

2-32

>> year = 1900:10:2010;

>> product = [75.995  91.972 105.711  123.203  131.669 150.697  179.323  203.212 226.505  249.633  256.344 267.893 ];

>>p1995 = interp1(year,product,1995)

>>x = 1900:1:2010;

>>y = interp1(year,product,x,'pchip');

>>plot(year,product,'o',x,y)

插值结果为:

p1995 =

        252.9885

插值图形为图2-16

     

2-15  一元函数插值图形                2-16  离散数据的一维插值图


2-14.PNG (8.86 KB, 下载次数: 141)

2-14.PNG

2-15--2-16.PNG (24.48 KB, 下载次数: 125)

2-15--2-16.PNG






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5