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

MatLab数据分析 专栏收录该内容
4 篇文章 0 订阅

利用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)');

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

  • 0
    点赞
  • 0
    评论
  • 6
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

APANGG123

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值