做网站用什么做,100个免费邮箱号码,定制网站模板站,做网站厦门x0:2*pi;
ysin(x);
xx0:0.5:2*pi;%interp1对sin函数进行分段线性插值#xff0c;调用interp1的时候#xff0c;默认的是分段线性插值
y1interp1(x,y,xx);
figure
plot(x,y,o,xx,y1,r)
title(分段线性插值)%临近插值
y2interp1(x,y,xx,nearest);
figure
plot(x,y,o,xx,y2,r);
…x0:2*pi;
ysin(x);
xx0:0.5:2*pi;%interp1对sin函数进行分段线性插值调用interp1的时候默认的是分段线性插值
y1interp1(x,y,xx);
figure
plot(x,y,o,xx,y1,r)
title(分段线性插值)%临近插值
y2interp1(x,y,xx,nearest);
figure
plot(x,y,o,xx,y2,r);
title(临近插值)%球面线性插值
y3interp1(x,y,xx,spline);
figure
plot(x,y,o,xx,y3,r)
title(球面插值)%三次多项式插值法
y4interp1(x,y,xx,cubic);
figure
plot(x,y,o,xx,y4,r);
title(三次多项式插值) (1) Nearest方法速度最快占用内存最小但一般来说误差最大插值结果最不光滑。
(2) Spline三次样条插值是所有插值方法中运行耗时最长的插值函数及其一二阶导函数都连续是最光滑的插值方法。占用内存比cubic方法小但是已知数据分布不均匀的时候可能出现异常结果。
(3) Cubic三次多项式插值法中插值函数及其一阶导数都是连续的所以插值结果比较光滑速度比Spline快但是占用内存最多。 语法形式 说明 yinterp1(x,Y,xi) 由已知点集(x,Y)插值计算xi上的函数值 yinterp1(x,Y,xi) 相当于x1:length(Y)的interp(x,Y,xi) yinterp1(x,Y,xi,method) 用指定插值方法计算插值点xi上的函数值 yinterp1(x,Y,xi,method,’extrap’) 对xi中超出已知点集的插值点用指定插值方法计算函数值 yinterp1(x,Y,xi,method,’extrap’,extrapval) 用指定方法插值xi上的函数值超出已知点集处函数值取extrapval yinterp1(x,Y,xi,method,’pp’) 用指定方法插值但返回结果为分段多项式 Method 方法描述 ‘nearest’ 最邻近插值:插值点处函数值与插值点最邻近的已知点函数值相等 ‘liner’ 分段线性插值插值点处函数值由连接其最邻近的两侧点的线性函数预测。Matlab中interp1的默认方法。 ‘spline’ 样条插值默认为三次样条插值。可用spline函数替代 ‘pchip’ 三次Hermite多项式插值可用pchip函数替代 ‘cubic’ 同’pchip’三次Hermite多项式插值
更新日志2020-11-3
有个小老弟问我怎么把这个插值函数获取到后续调用然后去看了一眼官方文档有一句话
pp interp1(x,v,method,pp)
分段多项式以可传递到 ppval 函数进行计算的结构体的形式返回。
也就是说这个插值函数可以使用上述代码获取到函数然后使用ppval执行这个函数在某个特定位置的插值结果比如
%test interpolate
clear;clc;close all
N1200;
x 1:0.5:6;
y sin(x);
pp interp1(x,y,pchip,pp);xq 1:0.1:6;
result ppval(pp,xq);
plot(x,y,o,xq,result,-.)
上述代码就是将函数以pp变量返回然后使用ppval调用此函数获取在xq处的值