本篇主要介绍在三种插值方法:拉格朗日插值、分段线性插值、三次样条插值,以及这三种方法在matlab中如何实现。

1.拉格朗日插值:

1.1基本原理:先构造一组基函数:

             

次多项式,满足

上式称为次Lagrange插值多项式。

1.2用Matlab作Lagrange插值:

matlab没有现成的lagrange函数,需要手动写,如下:

x0,y0为原始坐标点,维度必须相同。

x为待插值的点。

y是返回值,是最终插值结果。

function y=lagrange(x0,y0,x)   %x0,y0为初始坐标,x为需要插值的点,返回的y为插值结果
n=length(x0);m=length(x);
for i=1:mz=x(i);s=0;for j=1:np=1;for k=1:nif k~=jp=p*((z-x0(j))/(x0(k)-x0(j)));endends=p*y0(k)+s;endy(i)=s;
end

2.分段线性插值:

2.1基本原理:

将每两个相邻的节点用直线连起来,如此形成的一条折线就是分段线性插值函数。计算点的插值时,只用到左右的两个节点,计算量与节点个数n(初始值x0,y0的长度,n=length(x0))无关,而拉格朗日插值与n值有关。分段线性插值中n越大,分段越多,插值误差越小。

2.2Matlab实现分段线性插值:

用matlab实现分段线性插值不需要自己手动编写函数,matlab有现成的一维插值函数interp1

y=interp1(x0,y0,x,'method')

method指定插值方法,其值可为:

linear:线性插值(默认)

nearest:最近项插值

spline:逐次3次样条插值

cubic:保凹凸性 3 次插值

所有插值方法都要求x0单调。

3.三次样条插值:

使用三次样条插值有两种方法:其中一种就是第二种插值方式(分段线性插值),只需要将method修改为spline即可实现。

还有一种实现方式如下:

pp=csape(x0,y0);

y=ppval(pp,x);

其中x0,y0,x与前面含义相同,返回值y即插值结果。

4.彩蛋(例题):

表1给出的 x, y 数据位于机翼断面的下轮廓线上,假设需要得到 x 坐标每改变0.1 时的 y 坐标。试完成加工所需数据,画出曲线。要求用 Lagrange、分段线性和三次样条三种插值方法计算。

表1

x   0 3 5 7 9 11 12 13 14 15
y   0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6

解:编写代码如下:

clear,clc
x0=[0,3,5,7,9,11,12,13,14,15];
y0=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];
x1=[0:0.1:15];%拉格朗日插值
y1=lagrange(x0,y0,x1);
figure
plot(x0,y0,x1,y1,'.')
title('拉格朗日插值')%分段线性插值
y2=interp1(x0,y0,x1);
figure
plot(x0,y0,x1,y2,'.')
title('分段线性插值')%三次样条插值
y3=interp1(x0,y0,x1,'spline');
figure
plot(x0,y0,x1,y3,'.')
title('三次样条插值')

结果图为:

由图可知:拉格朗日插值误差较大,插值大量点的时候不建议使用。分段线性插值结果最好,使用的是method是linear(默认)。三次样条插值有点误差,但不是很大,得到的曲线比较光滑。

学习插值函数时的一点小心得,希望能帮到大家!

拉格朗日插值、分段线性插值、三次样条插值相关推荐

  1. matlab spline三次样条插值x,Spline(三次样条插值)

    关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...

  2. matlab用分段线性插值例题,matlab分段线性插值

    (j))^3; end end 7 结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为 1.4664 说明实验结果准确无误,通过实验可以得出,在...... 中平 ...

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

    利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...

  4. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  5. 清风数学建模学习笔记——应用matlab实现分段三次埃尔米特(Hermite)插值与三次样条插值

    插值算法   数模比赛中,常常需要根据已知的函数点进行数据.模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,模拟产生一些新的但又比较靠谱的值来满足需求 ...

  6. python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)

    啊好像距离上次写作又过了七天,啊好像我之前计划的一周两三篇,啊辣鸡小说毁我青春,啊我是一只可怜的鸽子. 不管怎样,我又回来了,并坚定地更新着hhh.再过两三天就是我们学校数学建模选拔,再过八九天就是期 ...

  7. 数值分析——分段低次插值

    分段低次插值 分段低次插值 为什么需要分段低次插值 分段线性插值 分段三次Hermite插值 三次样条插值 第一类边界条件 第二类边界条件 第三类边界条件 推导样条插值的方法 第一类边界条件解法 第二 ...

  8. 【20220207】【信号处理】三次样条插值原理详解

    方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...

  9. 计算方法:三次样条插值原理

    无论是牛顿插值还是拉格朗日插值,都只能保证在节点处的函数值没有误差.hermite插值更加复杂,可以保证一阶导数也连续,目前常用的是三次样条插值 一.三次样条插值概念 不超过3次 节点处无误差 一阶导 ...

最新文章

  1. 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
  2. remoting和webservice的区别
  3. 一个C/C++程序从编译到最终生成可执行文件的全过程分析
  4. python--open用法
  5. 技术型产品经理与系统设计
  6. ASP.NET Core 反向代理部署知多少
  7. 苹果x为什么是android,技术角度分析:这就是苹果手机和安卓手机为什么有差距的主要原因...
  8. Java多线程的三种实现方式(重点看Collable接口实现方式)
  9. SAP License:与猎头的亲密接触之你不得不知的潜规则
  10. 学习node.js的一些笔记
  11. 塑料模具计算机辅助设计,注塑模具3D计算机辅助设计系统
  12. python画数学函数_Python 绘制你想要的数学函数图形 !
  13. maven依赖的作用域\<scope>
  14. 音视频从入门到精通——视频 码率 帧率 分辨率
  15. 如何隐藏C/C++编译生成的函数符号
  16. 库克考虑卸任苹果 CEO,谁会是下一任接班人?
  17. JavaScript完整版国家-省-市地区,级联效果(带效果图哦)
  18. 程序员更容易生女孩子,是不是真的?
  19. 小米手机权限开启方法9
  20. 安卓平板倍速_推荐:安卓上本地音频播放器,可实现5秒快进快退和倍速播放...

热门文章

  1. 基于c语言的象棋游戏
  2. 【嵌入式百科】003——时钟周期、指令周期、机器周期、总线周期
  3. linux 机器开机自动运行命令的方法
  4. 小象python培训班_小象最新Python机器学习升级版视频学习教程 共24节精品课
  5. 使用nuget 打包并上传 nuget.org
  6. 2021-06-21 12点 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周六反弹失败,等待跌完,继续等待4小时第一个底分型出现。周月线持续跌势。
  7. Openid Connect(OIDC)
  8. OpenCV中图像特征提取与描述
  9. linux怎么找回普通用户密码,Ubuntu Linux系统密码找回
  10. 阿里云上发布自己的网站的方法