分段线性插值
应用的函数为:
y=interp1(x0,y0,x)或y=interp1(x0,y0,x,’linear’)
其中的参数表示为:
- x0,y0表示的初始的插值节点向量
-** x表示要得到的插值节点对应的横坐标向量**
-** y表示的是返回值,返回的是要求得的插值节点的纵坐标** - 注意函数当中的最后一个字符是1不是l
三次样条插值
三次样条插值是要保证插值函数要在插值节点上的导数相同
应用的函数为:
**y=interp1(x0,y0,x,’spline’)**或 y=spline(x0,y0,x)
其中的参数表示为:
- x0,y0表示的初始的插值节点向量
-** x表示要得到的插值节点对应的横坐标向量**
-** y表示的是返回值,返回的是要求得的插值节点的纵坐标**
例子
对 y=1/(1+x^2)在[-5, 5]上, 用n=11个等距分点作分段线性插值和三次样条插值, 用m=21个插值点作图,比较结果
n=11, m=21;
x=-5:10/(m-1):5;%要求得的插值节点的横坐标
y=1./(1+x.^2);%要求得的插值节点的纵坐标
z=0*x;
x0=-5:10/(n-1):5;%已知的插值节点的横坐标
y0=1./(1+x0.^2);%已知的插值节点的纵坐标
y1=interp1(x0,y0,x);
y2=interp1(x0,y0,x,'spline');
[x' y' y1' y2']
plot(x,z,'r',x,y,'k:',x,y1,'b',x,y2,'g');
gtext('Piece.-linear.'),gtext('Spline'),gtext('y=1/(1+x^2)');
结果为