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/130722.html原文链接:https://javaforall.net

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


相关推荐

  • 解释ER图并说明它的作用_er图中属性用什么表示

    解释ER图并说明它的作用_er图中属性用什么表示展开全部1、描述现实世界关系62616964757a686964616fe78988e69d8331333431356566概念模型的有效方法。2、表示概念关系模型的一种方式。3、用“矩形框”表示实体型,矩形框内写明实体名称;用“椭圆图框”表示实体的属性,并用“实心线段”将其与相应关系的“实体型”连接起来;4、用”菱形框“表示实体型之间的联系成因,在菱形框内写明联系名,并用”实心线段“分别与有关实…

    2022年9月16日
    0
  • 数据可视化之美 — 以Matlab、Python为工具

    数据可视化之美 — 以Matlab、Python为工具在我们科研、工作中,将数据完美展现出来尤为重要。数据可视化是以数据为视角,探索世界。我们真正想要的是—数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。下面介绍一些数据可视化的作品(包含部分代码),主要是地学领域,可迁移至其他学科。Example1:importnumpyasnpimportmatplotlib.pyplotasplt#创建随机数n=100000x=np.random.randn(n)y=(1.5*x)+np.ra

    2025年6月15日
    0
  • C#简单串口调试助手【傻瓜教程】chanson_chapter01[通俗易懂]

    C#简单串口调试助手【傻瓜教程】chanson_chapter01[通俗易懂]简易串口调试助手制作教程【C#.Winform】chanson_chapter01[说明]:本教程基于win10x64位操作系统,软件环境为MicrosoftVisualStudioCommunity2015(以下简称VS)(新建工程文件)【1】打开VS,[文件]–>[新建]–>[项目],弹出窗体如下:(布局方法)【2】开始布局

    2022年5月10日
    35
  • html 转换成 markdown,将HTML转换为Markdown

    html 转换成 markdown,将HTML转换为Markdown我在这个博客上最大的一个错误就是没有找到一个WordPress插件可以让我用markdown来写我的文章;直到今天,我仍然需要在“视觉”模式下写文章,然后手动将文章转换为“文本”模式的HTML。有一天,我想转换现有的帖子Markdown,然后启用一个插件,将Markdown转换为HTML。这个痛苦的过程让我问自己:有没有一种方法我可以使用Node.jsJavaScript转换HTML到Markd…

    2022年7月17日
    16
  • kubeedge 安装部署(适用于Ubuntu)「建议收藏」

    kubeedge 安装部署(适用于Ubuntu)「建议收藏」kubeedge安装部署(适用于Ubuntu)基础环境:安装了Ubuntu18.04操作系统的两台虚拟机(查看操作系统版本命令:cat/etc/os-release)部署kubeedge1.1.0版本根据keadm源码安装部署步骤整理(无法直接使用keadm工具完成部署)一、配置源,写入以下内容到/etc/apt/sources.listroot@ubuntu:…

    2022年7月21日
    25
  • 小李打怪兽——01背包

    小李打怪兽——01背包题目描述小李对故乡的思念全部化作了对雾霾天气的怨念,这引起了掌控雾霾的邪神的极大不满,邪神派去了一只小怪兽去对付小李,由于这只怪兽拥有极高的IQ,它觉得直接消灭小李太没有难度了,它决定要和小李在智力水平上一较高下。我们可否帮助小李来战胜强大的怪兽呢?问题是这样的:给定一堆正整数,要求你分成两堆,两堆数的和分别为S1和S2,谁分的方案使得S1*S1-S2*S2的结果小(规定S1>=S2)…

    2022年7月19日
    12

发表回复

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

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