拉格朗日插值、分段线性插值、三次样条插值
本篇主要介绍在三种插值方法:拉格朗日插值、分段线性插值、三次样条插值,以及这三种方法在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(默认)。三次样条插值有点误差,但不是很大,得到的曲线比较光滑。
学习插值函数时的一点小心得,希望能帮到大家!
拉格朗日插值、分段线性插值、三次样条插值相关推荐
- matlab spline三次样条插值x,Spline(三次样条插值)
关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...
- matlab用分段线性插值例题,matlab分段线性插值
(j))^3; end end 7 结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为 1.4664 说明实验结果准确无误,通过实验可以得出,在...... 中平 ...
- 利用MatLab对数据进行插值计算(分段插值和三次样条插值)
利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- 清风数学建模学习笔记——应用matlab实现分段三次埃尔米特(Hermite)插值与三次样条插值
插值算法 数模比赛中,常常需要根据已知的函数点进行数据.模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,模拟产生一些新的但又比较靠谱的值来满足需求 ...
- python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)
啊好像距离上次写作又过了七天,啊好像我之前计划的一周两三篇,啊辣鸡小说毁我青春,啊我是一只可怜的鸽子. 不管怎样,我又回来了,并坚定地更新着hhh.再过两三天就是我们学校数学建模选拔,再过八九天就是期 ...
- 数值分析——分段低次插值
分段低次插值 分段低次插值 为什么需要分段低次插值 分段线性插值 分段三次Hermite插值 三次样条插值 第一类边界条件 第二类边界条件 第三类边界条件 推导样条插值的方法 第一类边界条件解法 第二 ...
- 【20220207】【信号处理】三次样条插值原理详解
方程组的求解本文不做介绍. 一.三次样条插值 1. 定义 三次样条插值(Cublic Spline Interpolation),简称 Spline 插值,是通过一系列样本点的光滑曲线,数学上通过求解 ...
- 计算方法:三次样条插值原理
无论是牛顿插值还是拉格朗日插值,都只能保证在节点处的函数值没有误差.hermite插值更加复杂,可以保证一阶导数也连续,目前常用的是三次样条插值 一.三次样条插值概念 不超过3次 节点处无误差 一阶导 ...
最新文章
- 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
- remoting和webservice的区别
- 一个C/C++程序从编译到最终生成可执行文件的全过程分析
- python--open用法
- 技术型产品经理与系统设计
- ASP.NET Core 反向代理部署知多少
- 苹果x为什么是android,技术角度分析:这就是苹果手机和安卓手机为什么有差距的主要原因...
- Java多线程的三种实现方式(重点看Collable接口实现方式)
- SAP License:与猎头的亲密接触之你不得不知的潜规则
- 学习node.js的一些笔记
- 塑料模具计算机辅助设计,注塑模具3D计算机辅助设计系统
- python画数学函数_Python 绘制你想要的数学函数图形 !
- maven依赖的作用域\<scope>
- 音视频从入门到精通——视频 码率 帧率 分辨率
- 如何隐藏C/C++编译生成的函数符号
- 库克考虑卸任苹果 CEO,谁会是下一任接班人?
- JavaScript完整版国家-省-市地区,级联效果(带效果图哦)
- 程序员更容易生女孩子,是不是真的?
- 小米手机权限开启方法9
- 安卓平板倍速_推荐:安卓上本地音频播放器,可实现5秒快进快退和倍速播放...
热门文章
- 基于c语言的象棋游戏
- 【嵌入式百科】003——时钟周期、指令周期、机器周期、总线周期
- linux 机器开机自动运行命令的方法
- 小象python培训班_小象最新Python机器学习升级版视频学习教程 共24节精品课
- 使用nuget 打包并上传 nuget.org
- 2021-06-21 12点 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 周六反弹失败,等待跌完,继续等待4小时第一个底分型出现。周月线持续跌势。
- Openid Connect(OIDC)
- OpenCV中图像特征提取与描述
- linux怎么找回普通用户密码,Ubuntu Linux系统密码找回
- 阿里云上发布自己的网站的方法