5.3 matlab数据插值(线性插值、最近点插值、埃尔米特插值、三次样条插值)
①数据插值可以根据有限个点的取值状况,合理估算出附近其他点的取值,从而节约大量的实验和测试资源,节省大量的人力、物力和财力。
②数据插值能够根据已知数据推算未知数据,这使得人们解决问题的能力得到了拓展和延伸。
1、引例-零件加工问题
例1、在飞机制造中,机翼的加工是一项关键技术。由于机翼尺寸很大,通常在图纸中只能标出一些关键点的数据。下表给出了某型飞机机翼的下缘轮廓线数据,求x每改变0.1时y的值。
它前段采样点稀疏,后段采样点密集,说明这段曲线前面可能比较规律、平滑,后段比较复杂
x = [0 3 5 7 9 11 12 13 14 15];
y = [0 1.2 1.7 2 2.1 2 1.8 1.2 1 1.6];
plot(x,y) %为插值前的曲线
hold on;
x1 = 0:0.1:15; %x每改变0.1要插一个值
y1 = interp1(x,y,x1,'spline'); %插值函数interp1:计算出这些插值点在y方向上的值存入y1中,y1很长
plot(x1,y1) %完成插值后的曲线,曲线变得光滑很多
legend('y原曲线','y1插值后的曲线')
title('零件加工问题','color','r','fontsize',18)
2、数据插值的计算机制
从数学上来说,数据插值是一种函数逼近的方法。
(1)interp1( ):一维插值函数。调用格式:
Y=interp1(X,Y,X1,method)
根据X、Y的值,计算函数在×1处的值。其中,X、Y是两个等长的已知向量,分别表示采样点和采样值。X是一个向量或标量,表示要插值的点。
3、数据插值的实现方法
(1)一维插值method用于指定插值方法,常用的取值有以下四种:
①linear:线性插值,默认方法。
将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。
②nearest:最近点插值。
选择最近样本点的值作为插值数据。如果是中间点,则取后一个数据点的值。
③pchip:分段3次埃尔米特插值。
采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。
④ spline :3次样条插值。
每个分段内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。(进—步提高了曲线的光滑性)
例2:以例1为例,进行四种数据插值的实现
x = [0 3 5 7 9 11 12 13 14 15];
y = [0 1.2 1.7 2 2.1 2 1.8 1.2 1 1.6];
x1 = 0:0.1:15; %x每改变0.1要插一个值
% plot(x,y)
% hold on
subplot(2,2,1)
y1 = interp1(x,y,x1,'linear'); %插值函数interp1:计算出这些插值点在y方向上的值存入y1中,y1很长
plot(x,y,x1,y1) %完成插值后的曲线
xlabel('interp1(x,y,x1,''linear'')','color','b')
legend('y','y1','location','northwest')
title('method = ''linear''','color','r','fontsize',14)subplot(2,2,2)
y1 = interp1(x,y,x1,'nearest'); %插值函数interp1:计算出这些插值点在y方向上的值存入y1中,y1很长
plot(x,y,x1,y1) %完成插值后的曲线
xlabel('interp1(x,y,x1,''nearest'')','color','b')
legend('y','y1','location','northwest')
title('method = ''nearest''','color','r','fontsize',14)subplot(2,2,3)
y1 = interp1(x,y,x1,'pchip'); %插值函数interp1:计算出这些插值点在y方向上的值存入y1中,y1很长
plot(x,y,x1,y1) %完成插值后的曲线
xlabel('interp1(x,y,x1,''pchip'')','color','b')
legend('y','y1','location','northwest')
title('method = ''pchip''','color','r','fontsize',14)subplot(2,2,4)
y1 = interp1(x,y,x1,'spline'); %插值函数interp1:计算出这些插值点在y方向上的值存入y1中,y1很长
plot(x,y,x1,y1) %完成插值后的曲线
xlabel('interp1(x,y,x1,''spline'')','color','b')
legend('y','y1','location','northwest')
title('method = ''spline''','color','r','fontsize',14)
四种方法的比较:
(1)线性插值和最近点插值方法比较简单。其中线性插值方法的计算量与样本点n无关。n越大,误差越小。
(2)3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性;而3次样条插值要求其二阶导数也连续,所以插值函数的性态更好。
(2)interp2():二维插值函数。调用格式:
Z1=interp2(X,Y,Z,X1,Y1,method)
其中,X、Y是两个向量,表示两个参数的采样点,Z是采样点对应的函数值。X1、YI是两个标量或向量,表示要插值的点。method与一维插值方法相同,但不支持pchip方法。
为什么这两种插值方法都用3次多项式而不用更高次的?
答:多项式次数并非越高越好。次数越高,越容易产生震荡而偏离原函数,这种现象称为龙格(Runge)现象。
5.3 matlab数据插值(线性插值、最近点插值、埃尔米特插值、三次样条插值)相关推荐
- Matlab数值分析实例:三次样条插值
Matlab数值分析实例:三次样条插值 任务要求 分析 代码实现 总结 任务要求 湖水在夏天会出现分层现象,接近湖面温度较高,越往下温度变低.这种上热下冷的现象影响了水的对流和混合过程,使得下层水域缺 ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- matlab用分段线性插值例题,matlab分段线性插值
(j))^3; end end 7 结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为 1.4664 说明实验结果准确无误,通过实验可以得出,在...... 中平 ...
- 【matlab】三次埃尔米特插值与三次样条插值的实际应用代码
要求:完成下列这些数据的插值,并将结果保存到一个EXCEL表格中.要求至少选取两种插值方法,并对1号池中的这些指标做出插值后图像(显示在同一个图像中) Z.mat load Z.mat x=Z(1,: ...
- 【插值】牛顿插值、拉格朗日插值、三次样条插值的Python代码实现
插值简介 插值即根据有限的离散点绘制出穿过所有样本点的曲线,从直观上想象似乎画一条穿过n个特定点的曲线有无数种画法,但从数学意义上来说我们希望画出的曲线能够尽量平滑,震荡幅度尽量小能够在非样本点上符合 ...
- [MATLAB]--数据插值(interp1/2多维插值)
本试验取材于中南大学<科学计算与MATLAB应用> 一.引例–零件加工问题 >> x1=0:0.1:15; >> x=[0,3,5,7,9,11,12,13,14, ...
- 利用MatLab对数据进行插值计算(分段插值和三次样条插值)
利用MatLab对数据进行插值计算 分段线性插值 三次样条插值 例子 分段线性插值 应用的函数为: y=interp1(x0,y0,x)或y=interp1(x0,y0,x,'linear') 其中的 ...
- matlab数据整周期截断,凯塞窗四谱线插值FFT的电力谐波分析方法
论文写作指导:请加QQ229366758 摘 要:针对在采用快速傅里叶变换分析电力谐波时,对信号非同步采样以及非整周期截断的情况下,会产生频谱泄露和栅栏效应,无法有效检测谐波的各参数值等问题,提出了加 ...
- [数值分析拟合]Matlab三次样条插值拟合数据
三次样条插值是一种运用极为广泛的工程插值算法,本文章编写的函数默认使用端点处的导数值代替给定的两端点的导数值使用三转角构造法进行插值(该函数也可传入端点导数数值进行分析),对数据进行方便而迅速的拟合( ...
最新文章
- (5)hibernate多对一,一对多,一对一,多对多
- Nodejs ORM框架Sequelize
- Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)
- Openresty 学习笔记(三)扩展库之neturl
- jwt 长度_跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)
- 一份最新的、全面的NLP文本分类综述
- 电商平台销售数据查询工具(电商运营必备工具)
- 【ASO项目使用的技术】(例如:1、hook CFUserNotificationCreat 截取Header 部分信息、Message内容 进行任务处理2、设备信息的修改、清理数据3、js逆向)
- CAD中打开CAD图纸看不到内容怎么办?
- 移动端 touch 手机拖动 css停止问题
- 本周最新文献速递20220306
- CAD异常闪退的原因
- android ibinder类接口编辑
- 为什么ps因为计算机限制,photoshop为什么经常崩溃 ps防止崩溃解决办法
- 12个优雅的 python 代码使用案例
- 微信小程序H5预览页面框架
- html自动点击屏幕,虚拟按键大师(屏幕自动点击辅助器)
- gbq可以算出土建量吗_广联达bim土建算量软件|广联达BIM土建算量GCL2013下载 - 121下载站...
- YOLO3+残差网络+FPN详解
- 【随手记】共振峰的特性、与音高pitch
热门文章
- 类C语言--栈与队列习题:回文是指正读反读均相同的字符序列,如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)
- Mysql 5.7 表名大写遇到的坑 error: 1146: Table 'your_table' doesn't exist
- 近30所高校,获教育部点名表扬!
- 微信小程序,引入WeUI组件库 扩展组件库
- 迈卡名车茂品牌LOGO全新升级
- 关于无刷电机驱动器的布板建议(FOC)
- os.path.dirname(os.path.realpath(__file__))函数
- YUV和RGB的区别(以及YUV444 YUV422 YUV411 YUV420的介绍)
- Excel 自动调整行高后增加高度
- 线路/信道编码技术(1)——8B/10B编码