线性内插interp1函数用法

线性内插interp1函数用法线性内插是假设在二个已知数据中的变化为线性关系,因此可由已知二点的座标(a,b)去计算通过这二点的斜线,公式如下:其中 a 在上式的 b 点即是代表要内插的点,f(b) 则是要计算的内插函数值。下图即是一个以二种内插法的比较\pcxfile[12cm,5cm]{fig9_1.pcx}\caption{线性式与spline函数的曲线契合}线性内插是最简单的内插方

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

线性内插是假设在二个已知数据中的变化为线性关系,因此可由已知二点的座标(a, b)去计算通过这二点的 斜线,公式如下:

线性内插interp1函数用法

其中 a<b<c 在上式的 b 点即是代表要内插的点,f(b) 则是要计算的内插函数值。下图即是一个以二种内插 法的比较

\pcxfile[12cm,5cm]{fig9_1.pcx}

\caption{线性式与 spline 函数的曲线契合}

线性内插是最简单的内插方法,但其适用范围很小;如果原来数据的函数f有极大的变化,假设其数据点之 间为线性变化并不合理。所以我们可以用二次、三次方程式或是另一种称为spline函数来近似原来数据的函 数。MATLAB的一维内插函数是interp1,其语法为interp1(x,y,xi),interp1(x,y,xi,’method’);其中的x,y是原已知的 数据的x,y值,而xi则是要内插的数据点,另外method可以设定内插方法有 linear,cubic,spline,分别是一次、三 次方程式和spline函数,其中预设方法是linear。如果数据的变化较大,以 spline函数内插所形成的曲线最平滑 ,所以效果最好。而三次方程式所得到的内插曲线平滑度,则介于线性与spline函数之间。

我们以下面的例子说明。假设有一个汽车引擎在定转速下,温度与时间(单位为sec)的三次量测值如下


time

temp1

temp2

temp3

0

0

0

0

1

20

110

176

2

60

180

220

3

68

240

349

4

77

310

450

5

110

405

503

其中温度的数据从 20oC变化到 503oC,如果要估计在t=2.6, 4.9 sec 的温度,可以下列指令计算

>> x=[0 1 2 3 4 5]’; % 键入时间

>> y=[0 20 60 68 77 110]’; % 键入第一组时间

>> y1=interp1(x,y,2.6) % 要内插的数据点为 2.6

y1 = % 对应 2.6 的函数值为 64.8

64.8

>> y1=interp1(x,y,[2.6 4.9]) % 内插数据点为 2.6, 4.9,注意用[ ]将多个内插点放在其中

y1 =

64.8

106.7

>> y1=interp1(x,y,2.6,’cubic’) % 以三次方程式对数据点 2.6 作内插

y1 = % 对应 2.6 的函数值为 66.264

66.264

>> y1=interp1(x,y,2.6,’spline’) % spline函数对数据点 2.6 作内插

y1 = % 对应 2.6 的函数值为 66.368

66.368

以下的例子还配合绘图功能,用以比较不同内插方法的差异。

>> h=1:12;

>> temp=[5 8 9 15 25 29 31 30 22 25 27 24]; % 这组温度数据变化较大

>> plot(h,temp,’–‘,h,temp,’+’) % 将线性内插结果绘图

>> h_3=1:0.1:12 % 要每0.1小时估计一次温度值

>> t_3=interp1(h,temp,h_3,’cubic’) % 以三次方程式做内插

>> t_s=interp1(h,temp,h_3,’spline’) % spline函数做内插

>> hold on

>> subplot(1,2,1)

>> plot(h,temp,’–‘,h,temp,’+’,h_3,t_3) % 将线性及三次方程式内插绘图

>> subplot(1,2,2)

>> plot(h,temp,’–‘,h,temp,’+’,h_3,t_s) % 将线性方程式及spline内插绘图

>> hold off

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

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

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


相关推荐

  • 200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作 [建议收藏]

    200套web前端期末大作业 HTML+CSS+JavaScript网页设计实例 企业网站制作 [建议收藏]一、更多HTML期末学生结课大作业作品❤200套HTML期末大作业网页设计作品1.HTML期末学生结课大作业~html+css+javascript仿叮当电影在线网站(功能齐全)2.HTML期末学生作业~html+css+javascript仿猫眼电影在线网站(功能齐全)3.HTML期末学生大作业(9套)html+css+javascript仿京东、天猫、服装、各大电商模板(大学毕业设计)4.HTML期末大作业~海贼王中乔巴专题漫画学生网页设置作业源码(HTML+CSS+JavaScript)5

    2022年9月23日
    0
  • 频谱分析仪的基本使用方法_频谱仪的功能使用

    频谱分析仪的基本使用方法_频谱仪的功能使用因为项目需要,今天学着使用的一下频谱分析仪,项目属于物联网类型,通信方式是使用的当前市面上比较火的Lora技术(当前市面上常用的两种低功耗远距离通信方案是LORA和NB-LOT)。本次使用频谱分析仪用来测量设计的板子用Lora发送无线数据时候的一些相关参数,主要测试天线发送数据时候的发射功率(单位:DB)。在这里对仪器的基本使用做一个记录,以为备忘。一、频谱分析仪的使用入门如下图为所使

    2022年8月11日
    2
  • 一键端2

    一键端2一键端

    2022年7月19日
    34
  • Hibernate二级缓存

    Hibernate二级缓存因为项目中经常出现,由于使用了hibernate生成的方法,会从二级缓存中拿取数据,导致数据不一致的问题,甚至导致出现脏数据的问题,所以总结以下hibernate的缓存机制。什么是二级缓存我们知道一级缓存,并且一级缓存的作用范围就在session中,每个session都有一个自己的一级缓存,而二级缓存也就是比一级缓存的作用范围更广,存储的内容更多,我们知道session是由sesssion…

    2022年5月24日
    37
  • java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]

    java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]基于Java实现网络舆情分析系统研究与实现基于Java实现网络舆情分析系统研究与实现摘要:通过对各大门户网站、论坛和贴吧的留言和评论的爬取,录入后台数据库。用户可根据主题、内容进行搜索查看。通过利用中科院分词算法进行实现对爬去下来的内容进行分词处理,分词处理后的结果利用自行研究出来的基于权值算法实现的中文情感分析进行评论的倾向性分析,通过对句子结构和主张词以及情感副词的判断来对评论的情感倾向性做出…

    2022年9月21日
    0
  • 项目各阶段定义及名词解释「建议收藏」

    项目各阶段定义及名词解释「建议收藏」一款硬件产品,例如PC、手机或其他的智能硬件产品,从项目立案到产品研发、实施生产,均要经过一个流程。这流程可以细分为很多小的项目阶段,每个小阶段又都有各自达成目的。使产品研发更加具体,项目管控更加容易

    2022年8月1日
    6

发表回复

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

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