利用MatLab对数据进行插值计算(分段插值和三次样条插值)

利用MatLab对数据进行插值计算

分段线性插值

应用的函数为:
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)');

结果为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值