MATLAB-一维插值运算

news2025/1/21 2:50:31

一维插值是指对一维函数进行插值。已知n+1个结点(x,y,),其中x,互不相同(j=0,1,2,... n),求任意插值点x*处的插值y*。

求解一维插值问题的主要思想是:设结点由未知的函数g(x)产生,函数g(x)为连续函数且g(x)=y;(j=0,1,...,n);接着构造相对简单的且容易实现的函数f(x)来逼近函数g(x),使f(x)可以经过n+1个结点,即f(x)=y;(j=0,1,2,,n), 接着使用函数f(x)计算插值点x*处的插值,即y* =f(x*)。

在MATLAB中,使用interp1函数可以实现一维插值,该函数是利用多项式插值函数,将被插值的函数近似为一个多项式函数,其调用格式如下。

yi= interpl(x,y ,xi, method) %对数据向量x和y依次选用合适的方法进行插值函数的构造,并计算xi

%处的函数值,返回给yi, “method"为指定的插值方法。其中,x必须是矩

%阵,y既可以是向量也可以是矩阵。若y是向量,则长度必须与x相同,

%此时xi可以是标量、向量或任意维矩阵,yi与xi大小相同;若y是矩阵, %则其大小必须是[ n,d1 ,d2,.",dk],n为向量x的长度,函数对d1 *d2*

%...*dk组y值都进行插值

yi= interpl(x,y ,xi,method, 'extrap ' ) % 对数据向量x和y依次选用合适的方法进行插值函数的构

%造,并计算xi处的函数值,返回给yi,"method"为指定的插值

%方法,并对超出数据范围的插值数据指定外推方法

yi= interpl(x,y ,xi,method, extrapval) % 对数据向量x和y依次选用合适的方法进行插值函数的构

%造,并计算xi处的函数值,返回给yi," method"为指定的插 %值方法,并对超出数据范围的插值数据返回extrapval 值,一 %般设为NaN或者0

yi=iterp1(x,y,xi,'pp ') %对数据向量 x和y依次选用合适的方法进行插值函数的构造,并计算xi

%处的函数值,返回给yi,"method"为指定的插值方法,返回值pp为数据y

%的分段多项式形式

yi= interpl(y,xi) %ox 和method均为默认设置,即x=1:N,其中N=size( Y); method= linear

%此外,若数据点是不等间距分布式,则interplq函数比interp1函数执行的速度快,

%因为前者是不检查已知数据点是否等间距,但inteplq函数要求x必须是单调递增的

在一维插值方法中,具有多种不同的指定插值方法,每种插值方法在速度、平滑性、内存使用方面都是有所不同的,下面将对“method”中这些指定的插值方法进行介绍。

1)最邻近插值法( nearest): 在已知数据的最邻近点设置插值点,对插值点的数进行四舍五人,对超出范围的点将返回NaN。该插值方法速度最快,但结果的平滑性差。

2)线性插值法(linear): 对未指定插值方法时所采用的方法。直接连接相邻的两点,对超出范围的点将返回NaN,占用的内存比最邻近插值法多,运行时间略长,生成的结果是连续的且在顶点处存在坡度变化。

3)三次样条插值(spline):使用三次样条丽数获取插值点。在已知点为端点的情况下,插值函数至少具有相同的一阶和二阶导数,为非常有用的插值方法。该方法处理速度最慢,占用内存小于分段三次厄米多项式插值,产生最光滑的结果,但当输人的数据分布不均匀或数据点间距过近时将产生错误。

4)三次插值( eubic):该参数取值的特点可参考帮助文档,需要更多内存,运行时间比最邻近法和线性插值要长;需要插值数据及其导数都是连续的。

5)三次多项式插值( v5eubic):该参数取值的特点可参考帮助文档,相比线性插值,其处理速度慢、内存消耗较多,使用三次多项式函数对已知数据进行拟合。

6)分段三次厄米多项式插值(pchip): 该参数取值的特点可参考帮助文档,在处理速度和内存消耗方面比线性插值差,插值得到的数据和--阶导数是连续的。

在MATALAB中常用的4种插值方法分别是最邻近插值法.线性插值法、三次样条插值法和三次插值法,其特点见表。

通常,插值运算分为以下两种。

1)内插值是指只对已知数据点集内部的点进行插值。该插值方法可以根据已知的数据点分布,构建可以代表分布特性的函数关系,可以较为准确地估计插值点上的函数值。

2)外插值是指对已知数据点集外部的点进行插值。想要较为准确地估计外插丽数值是很难的。

例:使用不同的方法对cos函数进行插值。

输人以下代码,生成的结果如图所示。

>>x=0:10;

y=cos(x);

xi=0:.25:10;

yi= interp1(x,y,xi);

subplot(221);

plot(x,y,'o',xi,yi);

xlabel( '(a)linear插值算法');

yi = interp1(x,y,xi, nearest ');

subplo(222);

plot(x,y,'o' ,xi,yi);

xlabel('(b) nearest插值算法');

yi= interp1(x,y,xi, ' v5cubic ');

subplot(223) ;

plot(x,y,'o',xi,yi);

xlabel('(c) v5cubic插值算法');

yi= interp1(x,y,xi, ' spline ');

subplot( 224) ;

plot(x,y,'o',xi,yi);

xlabel( '(d) spline插值算法');

例:外插运算的方法。

输人以下代码,生成的结果如图所示。

x=0:15;

y=cos(x);

xi=0:.25:15;

yi=sin(xi);

y1=interp1(x,y,xi,'nearest','extrap');

y2=interpl(x,y,xi,'linear','extrap');

y3=interp1(x,y,xi,'spline','extrap');

y4=interp1(x,y,xi,'vScubic','extrap');

y4=interpl(x,y,xi,'pchip','extrap');

plot(x,y,'o',xi,yi,xi,yl,xi,y2,xi,y3,xi,y4);

legend('data','cos','nearest','linear','spline','pheip',2);

xlabel('x');

ylabel('y');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/151944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北大硕士LeetCode算法专题课---算法复杂度介绍

算法复杂度中大O的含义 推荐教程:北大硕士带你手撕Leetcode算法题 大O复杂度表示法 算法面试中, 经常会被问到,你写的算法复杂度是多少, 或者设计一个复杂度为 O(nlogn) 的算法复杂度分析是估算算法执行效率的方法,…

大厂的格局在细节上是怎么被拉低的

讲几个例子,都是大厂,作为大厂小散沙客户,也就是平头老百姓的角度来反观一下几个问题 第一个【脉脉】 今天(2023年1月9日)偶尔相等一下买买查看一下信息,由于手机没有安装APP.想借助PC的web端登录一下 它提…

小程序中无法播放阿里云的视频点播

背景视频直接存在自己的服务器,视频大了会存在卡顿现象,只能用阿里云或其它服务商的相关服务。原来在APP中已有了视频播放的功能,而且已经能正常使用,但视频的url是 http。现在期望在小程序中也添加视频播放的功能。初期操作申请相…

css——扁平圆弧(底部弧度)

案例演示 使用伪类处理,先将元素自身定位为relative,伪类设置content:‘’,并相对定位为absolute,再设置下left ,top 值,然后通过改变width和和left就可以调节弧度。宽度需大于100%,将left设为(…

微分方程(人口预测与传染病模型)

一、定义 微分方程:含导数或微分的方程 微分方程的阶数:所含导数或微分的最高阶数,如y’’’2y’’-2x0是三阶微分方程 微分方程的解:使得微分方程成立的函数 例如y’-2x0的解可以为x或者x1 微分方程的通解和特解:特…

基于Arduino Pro Micro的游戏手柄制作

基于Arduino Pro Micro的游戏手柄开发 1. Arduino IDE下载及安装 在Arduino官网Software | Arduino下载最新版Arduino IDE并安装。 或使用QQ群中提供的免安装版Arduino IDE,安装完成后Arduino Pro Micro的pin脚定义使用下面路径下的leonardo: 2. Arduino Pro Micr…

GrapeCity 文档处理商业系列Crack-6.0.2Version

GrapeCity 文档处理商业系列Crack文档 API 使用高速、直观的文档 API 全面控制您的文档 包括: Documents for Excel, .NET Documents for Data Viewer Documents for PDF Documents for PDF Viewer Documents for Word Documents for Imaging Documents for Image V…

数据库MySQL基础入门之MySQL隐式转换

一、问题描述 rootmysqldb 22:12: [xucl]> show create table t1\G *************************** 1. row *************************** Table: t1Create Table: CREATE TABLE t1 ( id varchar(255) DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8 1 row in set (0.0…

ArcGIS基础实验操作100例--实验74灾害影响缓冲区分析

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验74 灾害影响缓冲区分析 目录 一、实验背景 二、实验数据 三、实验步骤 (…

剑指offer----C语言版----第十四天

表示数值的字符串 原题链接:剑指 Offer 20. 表示数值的字符串 - 力扣(LeetCode)1.1 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。数值(按顺序)可以分成以下几个部分&a…

常见胶片的分类和结构

胶片的分类方法非常多,本质上属于高分子材料范畴,很多类别已经超出笔者的认知范围,我们只对与档案数字资源长期保存和异质备份相关的胶片分类方法进行介绍。笔者整理了十大分类如下图所示: 各分类简要介绍 1. 按宽度尺寸分类 常…

【Linux】进程信号万字详解(上)

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

194: vue+openlayers 根据卫星lat,lon,alt,俯仰角,方位角,绘制地面的拍摄的区域

第194个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中研究卫星的拍摄范围。 根据卫星的高度,经度,纬度,方位角,俯仰角以及拍摄的幅宽,幅长等参数,绘制拍摄的矩形框和中心点。这里用到了一些公式,参考代码,尤其是大部分使用的是弧度而非角度,需…

青铜到王者,8本最好的Python从入门到进阶的书

春节长假还有1周了,是时候囤一些书充充电了!新的一年群里很多小伙伴开始想学Python, 无论是准备转行的,还是想多学一份技能提高职场竞争力的,都想选择Python赛道,下面给大家推荐一些非常不错的Python入门到…

联合证券|利好叠加有望实质兑现 机构加码布局装修建材

组织加码布局装饰建材板块。据了解,受房地产利好方针带动、职业竞赛格式持续改进及原材料本钱下降等多重利好叠加,装饰建材板块有望迎来实质性利好,虽然曩昔两个多月来相关公司有所反弹,但组织以为行情仍然在路上。 多重利好推进 …

架构设计---高可用的处理

前言: 系统的高可用架构就是要在上述各种故障情况下,保证系统依然可用提供服务,具体包括以下几种架构方案。 冗余备份: 各种服务器故障是不可避免的,架构设计上就要保证,当服务器故障的时候,…

简短通俗理解动态规划算法--最短路径问题

问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径——最短路径。在博客动态规划算法中介绍了动态规划的基本思想已经建立动态规划模型的步骤,下面将其中的方法分析最短路径问题。 最短路径有…

CBAM: Convolutional Block Attention Module

https://arxiv.org/pdf/1807.06521.pdf 摘要: 我们提出了卷积块注意模块(CBAM),一个简单而有效的用于前馈卷积神经网络的注意模块。给定中间特征图,我们的模块依次推导出沿通道和空间两个独立维度的注意图,然后将注意图乘到输入…

vue-seamless-scroll数据量少时,暂停滚动,继续滚动

需求内容 大屏项目:指定dom元素内,如果子元素内容过多,超出父元素的最高高度,可以发生自动滚动;如果子元素内容没有超出父元素的最高高度,不可以发生自动滚动。 . 实现方案 获取数据后并渲染到dom后&am…

并查集的查询与合并详解

文章目录 一、并查集的概念 二、并查集的实现 2、1 并查集不同集合(树)的形成 2、2 find()函数找一个元素集合的编号(元素所属于树的祖宗) 2、3 合并两个不同集合(合并两棵不同的树&#xff09…