关于matlab里的插值函数
matlab里是否存在直接给出几个函数点的坐标值,然后调用一个matlab里自带的函数,就可以算出牛顿插值所得的多项式?(不需要自己新写一个函数,而是调用系统提供的函数?...
matlab里是否存在直接给出几个函数点的坐标值,然后调用一个matlab里自带的函数,就可以算出牛顿插值所得的多项式?(不需要自己新写一个函数,而是调用系统提供的函数?)比方说,可以用x=[1,2,3,4,5]; y=[1.2,2.5,4.8,10,15]; a=polyfit(x,y,length(x)-1);%插值 poly2sym(a)%输出插值多项式 就可以得到lagrange插值多项式,其中只是调用了polyfit和poly这两个函数,那么求牛顿插值多项式也可以调用类似的函数吗
展开
1个回答
展开全部
命令
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:10;
y
=
x.*sin(x);
>>xx
=
0:.25:10;
yy
=
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
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:10;
y
=
x.*sin(x);
>>xx
=
0:.25:10;
yy
=
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询