yi = interp1(x,y,xi,method)
已知样本点坐标x,y,求xi处的函数值yi,插值方法是method。
function [输出变量] = 函数名称(输入变量)
% 注释
% 函数体
如下所示,是编写的一个求1到n之和的求和函数 eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头:
function [s] = eg_sum( n )
% calculate the sum of 1..n
s = 0
for i = 1:n
s = s + i
end
回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:
>>clear
>>a = eg_sum(10)
运行结果: a = 55
扩展资料:
对于函数f(x),常常不仅知道它在一些点的函数值,而且还知慎源道它在这些点的导数值。这时的插值函数P(x),自然不仅要求在这些点等于f(x)的函数值,而且要求P(x)的导数罩型在这些点也等于f(x)的导数值。这就是埃尔米特插值问题,也称带导数的插值问题。
从几何上看,这种插值要寻求的多项式曲线不仅要通过平面上的已知点组,而且在这些点(或者其中一部物孝猜分)与原曲线“密切”,即它们有相同的斜率。可见埃尔米特插值多项式比起一般多项式插值有较高的光滑逼近要求。
参考资料来源:百度百科-插值
命令 interp1功能 一维数据插值(表格查找)。该命令对数据点之间计算内插值。它找出一元函数f(x)在中间点的数值。歼改
其中函数f(x)由所给数据决定:
x:原始数据点
Y:原始数氏漏判据点
xi:插值点
Yi:插值点
格式
(1)yi = interp1(x,Y,xi)
返回插值向量yi,每一元素对应于参量xi,同时由向量x 与Y 的内插值决定。参量x 指定数据Y 的点。
若Y 为一矩阵,则按Y 的每列计算。yi 是阶数为length(xi)*size(Y,2)的输出矩阵。
(2)yi = interp1(Y,xi)
假定x=1:N,其中N 为向量Y 的长度,或者为矩阵Y 的行数。
(3)yi = interp1(x,Y,xi,method)
用指定的算法计算插值:
’nearest’:最近邻点插值,直接完成计算;
’linear’:线性插值(缺省方式),直接完成计算;
’spline’:三次样条函数插值。对于该方法,命令interp1 调用函数spline、ppval、mkpp、umkpp。这些命令生成一系列用于分段多项式 *** 作的函数。命令spline 用它们执行三次样条函数插值;
’pchip’:分段三次Hermite 插值。对于该方法,命令interp1 调用函数pchip,用于搜咐对向量x 与y 执行分段三次内插值。该方法保留单调性与数据的外形;
’cubic’:与’pchip’ *** 作相同;
’v5cubic’:在MATLAB 5.0 中的三次插值。
对于超出x 范围的xi 的分量,使用方法’nearest’、’linear’、’v5cubic’的插值算法,相应地将返回NaN。对其他的方法,interp1 将对超出的分量执行外插值算法。
(4)yi = interp1(x,Y,xi,method,'extrap')
对于超出x 范围的xi 中的分量将执行特殊的外插值法extrap。
(5)yi = interp1(x,Y,xi,method,extrapval)
确定超出x 范围的xi 中的分量的外插值extrapval,其值通常取NaN 或0。
例1
>>x = 0:10y = x.*sin(x)
>>xx = 0:.25:10yy = interp1(x,y,xx)
>>plot(x,y,'kd',xx,yy)
例2
>>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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)