MATLAB插值函数interp1

MATLAB插值函数interp1插值法    插值法又称“内插法”,是利用函数f(x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f(x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。线性插值法    线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。    

大家好,又见面了,我是你们的朋友全栈君。

插值法

        插值法又称“内插法”,是利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值,这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。


线性插值法

        线性插值法是指使用连接两个已知量的直线来确定在这两个已知量之间的一个未知量的值的方法。

        假设我们已知坐标(x0,y0)(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。根据图中所示,我们得到两点式直线方程:

MATLAB插值函数interp1

MATLAB插值函数interp1

        假设方程两边的值为α,那么这个值就是插值系数—从x0到x的距离与从x0x1距离的比值。由于x值已知,所以可以从公式得到α的值:

MATLAB插值函数interp1

        同样:

MATLAB插值函数interp1

        这样,在代数上就可以表示成为:

        y = (1 − α)y0 + αy1

        或者,

        y = y0 + α(y1 − y0)

        这样通过α就可以直接得到 y。实际上,即使x不在x0x1之间并且α也不是介于0到1之间,这个公式也是成立的。在这种情况下,这种方法叫作线性外插—参见 外插值。

  已知y求x的过程与以上过程相同,只是x与y要进行交换。

MATLAB中的使用

%{
    MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')           
    其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 
    'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
        'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
    注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}
x = 0:2*pi;  
y = sin(x);  
xx = 0:0.5:2*pi;  

% interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值  
y1 = interp1(x,y,xx,'linear');  
subplot(2,2,1);
plot(x,y,'o',xx,y1,'r')  
title('分段线性插值')  
  
% 临近插值  
y2 = interp1(x,y,xx,'nearest');  
subplot(2,2,2);
plot(x,y,'o',xx,y2,'r');  
title('临近插值')  
  
%球面线性插值  
y3 = interp1(x,y,xx,'spline');  
subplot(2,2,3);
plot(x,y,'o',xx,y3,'r')  
title('球面插值')  
  
%三次多项式插值法  
y4 = interp1(x,y,xx,'pchip');  
subplot(2,2,4);
plot(x,y,'o',xx,y4,'r');  
title('三次多项式插值')  

MATLAB插值函数interp1

一个例子

%{
    MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')           
    其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 
    'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
        'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
    注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}

%{
    例如:在一 天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为
            12,9,9,1,0,18 ,24,28,27,25,20,18,15,13,
    推测中午12点(即13点)时的温度.
%}
x = 0:2:24;
y = [12   9   9   10   18  24   28   27   25   20  18  15  13];
a = 13;
y1 = interp1(x,y,a,'spline')
% 结果为:  27.8725

% 若要得到一天24小时的温度曲线,则:
xi = 0:1/3600:24;
% 插值点可以是向量,则返回的也就是对应的向量
yi = interp1(x,y,xi, 'spline');
plot(x,y,'o' ,xi,yi);

MATLAB插值函数interp1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130724.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 工作流程引擎:流程引擎对比「建议收藏」

    工作流程引擎:流程引擎对比「建议收藏」一.简介工作流引擎LiteFlow 需要提前定义好执行流程,不支持分布式执行,支持xml,json,yml,支持逻辑执行AirFlow ***** 支持分布式算子执行,不支持java算子执行,支持pythonDolphinScheduler ***** Azkaban可以跨服务执行,跨平台执行,flow支持dsl语法Oozie managerhadoopjobs,大数据任务调度框架KettleServerFlowable 与Activiti非常类似A

    2022年10月20日
    0
  • Mysql索引整理总结

    一、索引概述1. 简介索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。举例说明索引:如果把数据库中的某一张看成一本书,那么索引就像是书的目录,可以通过目录快速查找书中指定内容的位置,对于数据库表来说,可以通过索引快速查找表中的数据。2. 索引的原理索引一般以文件形式存在磁盘中(也可以存于内存中),存储的索引的原理大致概括为以空…

    2022年2月27日
    50
  • 最长上升子序列nlogn算法

    最长上升子序列nlogn算法最长上升子序列nlogn算法题目描述:给定一个整型数组,求这个数组的最长严格递增子序列的长度。譬如序列12243的最长严格递增子序列为1,2,4或1,2,3.他们的长度为3。输入:输入可能包含多个测试案例。对于每个测试案例,输入的第一行为一个整数n(1输入的第二行包括n个整数,代表这个数组中的数字。整数均在int范围内。

    2022年6月2日
    38
  • AdventureWorks2008R2安装过程可能会遇到的一些问题及解决方案

    AdventureWorks2008R2安装过程可能会遇到的一些问题及解决方案AdventureWorks2008R2范例数据库对于学习SQLServer2008R2是一个非常好的学习案例库,里面包含了一些详尽的数据库案例(官网下载)。但是如果直接安装的话,可能会遇到一些问题,下面介绍安装的一些必要前提:1.安装的数据库账户应具有系统权限。2.你所安装的数据库至少是”SQLServerExpresswithAdvancedServices“版本(我所安…

    2022年9月11日
    0
  • 云服务器续费太贵,直接在家搭一台,再也不受约束了

    云服务器续费太贵,直接在家搭一台,再也不受约束了杀熟,劳神伤财,废旧利用,性能对比,费用,灵活性,优化,缺点,开机吧,少年,局域网访问,外网访问最终迁移

    2022年5月3日
    49
  • wireshark怎么抓包保存_wireshark保存抓包信息

    wireshark怎么抓包保存_wireshark保存抓包信息wireshark抓包使用wireshark抓包分析-抓包实用技巧前言本文整理一下日常抓包使用的一些方法及抓包分析的一些方法。本文基于wireshark2.2.6版本进行抓包处理。其他版本使用方式大同小异。自定义捕获条件wireshark可以将抓包数据保存到硬盘上。若需要长时间抓包的话,需要防止内存过大,因此一般需要指定一定大小切包,释放内存。在捕获-选项菜单中可以设置捕获包的一些配置。输入配置在…

    2022年9月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号