matlab插值与拟合例题_MATLAB中数据插值和数据拟合的用法

一、数据插值:

插值是在一组已知数据点的范围内添加新数据点的技术。可以使用插值来填充缺失的数据、对现有数据进行平滑处理以及进行预测等。MATLAB 中的插值技术可分为适用于网格上的数据点和散点数据点。从数学上来说,数据插值是一种函数逼近的方法。

数据插值的实现方法:

1、一维插值函数为interp1(),

调用格式:

y = interp1(X,Y,X1,method)

该式可以根据X,Y的值来计算函数在X1处的值。其中X,Y是两个等长的已知向量,分别表示采样点和采样值。X1是一个向量或标量,表示要插值的点。

method参数表示用于插值的方法,常用的取值由一下几种方法:

(1) linear: 线形插值,默认方法。将与插值点靠近的两个数据点用直线连接,然后在直线上选取对应插值点的数据。

(2) nearest: 最近点插值。 选择最近样本点的值作为插值数据。

(3) pchip: 分段3次埃尔米特插值。采用分段三次多项式,除满足插值条件,还需满足在若干节点处相邻段插值函数的一阶导数相等,使得曲线光滑的同时,还具有保形性。

(4) spline: 3次样条插值。每一个分段你内构造一个三次多项式,使其插值函数除满足插值条件外,还要求在各节点处具有连续的一阶和二阶导数。

>> x = [0,3,5,7,9,11,12,13,14,15];

>> y = [0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];

>> x1 = 0:0.1:15;

>> y1 = interp1(x,y,x1,'spline');

>> plot(x1,y1)

以上四种方法的区别:

线形插值和最近点插值方法比较简单。其中线形插值方法的计算量与样本点n 无关。n越大,误差越小。

3次埃尔米特插值和3次样条插值都能保证曲线的光滑性。相比较而言,3次埃尔米特插值具有保形性,而3次样条插值要求其二阶导数也连续,所以插值函数的性态更好。pchip和spline方法插值的区别​blog.csdn.net

MATLAB的二维插值函数为interp2(),

调用格式:y1 = interp2(X,Y,Z,X1,Y1,method)

其中X,Y两个向量,表示两个参数的采样点,Z是采样点对应的函数值。X1,Y1是连个标量或向量,表示要插值的点。指定的算法method计算二维插值。linear为双线性插值算法(默认算法),nearest为最临近插值,spline为三次样条插值,cubic为双三次插值。

关于数据插值下面有个优秀的总结:插值与拟合​blog.csdn.net

MATLAB中拉格朗日插值的实现:https://blog.csdn.net/m0_37395228/article/details/80874393​blog.csdn.net

MATLAB中牛顿插值的实现:https://blog.csdn.net/wenyusuran/article/details/41725983​blog.csdn.nethttps://blog.csdn.net/m0_37395228/article/details/80875351​blog.csdn.net

二、曲线拟合:

曲线拟合是一种函数逼近的方法。可以分为线形拟合和非线性拟合。

曲线拟合的原理:对于y = f(x),通过构造一个函数g(x)取逼近未知函数f(x),使得误差在某种意义下达到最小。

一般使用多项式函数作为逼近函数,使用最小二乘法计算误差最小。

曲线拟合的实现方法:

使用polyfit()函数,其功能为求得最小二乘拟合多项式系数。

(1)线形曲线拟合:

调用格式:

(1) P= polyfit(X,Y,m)

(2) [P,S] = polyfit(X,Y,m)

(3) [P,S,mu] = polyfit(X,Y,m)

上述式子中的X,Y样本数据,m为拟合多项式的次数,一般为3次以内。

P为多项式的系数降幂向量,S为误差数据,mu是一个二元向量,mu(1)是mean(X), mu(2) 是std(X).

>> x = [1.0 1.5 2.0 2.5 3.0]';

>> y = [0.9 1.7 2.2 2.6 3.0]';

>> a = polyfit(x,y,1) %次数1为一次线形拟合,相当于设定拟合函数为g(x) = a*x+b,求a和b

a =

1.0200 0.0400 %此处两个值为上述g(x)的a和b值

>> xi = 1:0.1:3;

>> yi = polyval(a,xi); %polyval()函数相当于已知自变量xi和函数a求函数值

>> plot(x,y,'o',xi,yi);上述拟合之后的曲线和原数据点的分布关系如图

>> x = [1.2 3.3 4.5 7.8 9.9 6.7 10.3 13.2 ];

>> y = [2.3 4.5 6.7 7.3 7.6 8.6 9.8 11.2 ];

>> [p,s,mu] = polyfit(x,y,1)

p =

2.6369 7.2500 %该处显示拟合函数为g(x) = 2.6369*x+7.2500

s =

包含以下字段的 struct:

R: [2×2 double]

df: 6

normr: 2.7837

mu =

7.1125

3.9991

(2) 非线性曲线拟合:

1、fit():

对于非线性拟合时需要使用fittype()函数,该函数可以指定所要构造的拟合函数

如下面的例子中 ,我们想使用g(x)来拟合曲线,先使用fittype()函数将其指定该p,然后调用fit()函数来拟合

>> x = [1.0 1.5 2.0 2.5 3.0]';

>> y = [0.9 1.7 2.2 2.6 3.0]';

>> p = fittype('a*x+b*sin(x)+c');

>> f = fit(x,y,p)

f =

General model:

f(x) = a*x+b*sin(x)+c

Coefficients (with 95% confidence bounds):

a = 1.249 (0.9856, 1.512) %此处a,b,c为上述拟合函数的系数最优值

b = 0.6357 (0.03185, 1.24) %此处括号里显示的为置信区间。详见下文链接。

c = -0.8611 (-1.773, 0.05094)

>>plot(f,x,y);

由于曲线拟合只是对于曲线的逼近,其值并不一定确定,在逼近的时候会有误差,置信区间实质上反应了值摆动的一个可能的范围。置信区间_百度百科​baike.baidu.comd2f4d49d89c9711db55e6c6ee5cb88d6.png

2、nlinfit():

调用格式:

f = nlinfit(x,y,fun,f0):

上式中,x和y为观察数据的自变量和因变量,fun为待拟合的模型表达式,可以为y = f(x)的M文件的函数名,或者由inline()函数表示,y0是模型初始参数的估计值,计算后获得的返回值y为最小二乘法估计得出的模型最佳系数。

[y,r,J] = nlinfit(x,y,fun,y0):

曲线拟合后的返回参数r为拟合的残差,而J为残差r对a的Jacobi向量构成的矩阵。

[……] = nlinfit(x,y,fun,y0,options):

参数options对拟合过程进行设置,其中包括Maxlter(最大迭代次数)、TolFun(函数参数平方和允许值)、TolX(拟合系数允许的误差值)和Display(控制拟合过程的显示,其中off表示不现实输出、iter显示每次迭代的结果、final只显示最终结果、notify只在函数不收敛的时候显示结果)

3、lsqcurvefit():

调用格式:

[a,rnorm,r,exitflag] = lfqcurvefit(fun,a0,X,Y,lb,ub,options):

其中fun为待拟合的模型表达式,可以为y = f(x)的M文件函数名,或者由inline()函数表示,a0为模型系数的初始估计值,lb和ub分别为拟合系数的预估下界和上界,参数options用于拟合过程设置,同函数nlinfit(),函数返回的参数中a为拟合估计系数,rnorm为误差平方和,r为拟合模型的残差,exitflag为运行情况。

--------------------------------------------------------------------------------

本文部分数据、代码和方法介绍来源于网络。

本文仅供大家参考学习,欢迎指正!

更多MATLAB学习资源请入QQ群:953314432。

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

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

相关文章

python中with的用法_python 中 with的用法

with 语句使用于对资源进行访问的场合,确保不管使用过程是否发生异常都会执行必要的"清理"操作,释放资源,比如文件使用后自动关闭/线程中锁的自动获取和释放with open("1.txt") as file:data file.read()使用with,能够减少冗长,还能自动处理上…

半导体行业深度报告:从应用到行业的全面复苏

来源:国金证券一、2020-2021年全球半导体市场投资展望多种因素导致全球半导体市场于 2019 年同比下跌近 13%到 4,102 亿美元,而存储器行业同比下跌超过 30%,逻辑半导体同比下跌近 2%。存储器市场占全球半导体市场达到近三年低点的 27%。但受惠…

ES6精华: 解构运算符 扩展运算符 剩余运算符

http://www.tuicool.com/articles/26bAzmm转载于:https://www.cnblogs.com/xuezizhenchengxuyuan/p/6378382.html

mysql 8 修改root密码忘记_忘记mysql8或者mariadb5及以上 的root密码如何更改

实验环境操作系统:lsb_release -aNo LSB modules are available.Distributor ID:UbuntuDescription:Ubuntu 20.04.1 LTSRelease:20.04Codename:focalmysql数据库版本:mysql基本信息具体步骤1. 停止mysql (sudo service mysqld stop 或者 kill -TERM mysq…

配置tomcat_Tomcat 配置必备的 10 个小技巧,让你轻松玩转Tomcat

现在开发Java Web应用,建立和部署Web内容是一件很简单的工作。使用Jakarta Tomcat作为Servlet和JSP容器的人已经遍及全世界。Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行。你所需要做的就是:按照你的需求配置…

卫星移动通信现状与未来发展

来源:电子万花筒摘要:卫星移动通信系统具有覆盖范围广,对地面情况不敏感等优势,已经成为地面移动通信领域重要的组成部分,尤其是在空中、海洋、荒漠戈壁等地面无线网络难以覆盖的地方。随着科学技术的不断进步&#xf…

【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现

Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现。不同的IRule可以向LB提供不同的负载均衡算法。 public interface IRule{ pu…

mysql load data infile 重写_mysql load data infile 命令的数据导入

文章介绍了mysql load data infile 命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍,有需要的朋友可参考。使用方式如下:代码如下复制代码mysql>load data local infile "D:/ab.txt" in…

DARPA发布战略框架文件旨在 为美国国家安全创建突破性新技术能力

来源:ARPA网站/图片来自互联网12月4日,DARPA公开了于今年8月份完成的2019年度战略框架文件《面向国家安全创建技术突破和新能力》,阐述了该机构面临的威胁环境,并提出了未来几年的发展计划。1应关注的重点该框架文件指出&#xff…

python数学公式pdf文件的转换_python转换文件 多种文件转换为pdf

1.office文件这里用的是win32com, 需要注意已经安装的python版本是32位还是64位。安装后导入from win32com.client import Dispatch, constants, gencache, DispatchEx(1) word转PDFgencache.EnsureModule({00020905-0000-0000-C000-000000000046}, 0, 8, 4)w DispatchEx(&quo…

rust矿洞绳子怎么爬下_rust矿洞绳子怎么爬下_打工小伙爬冰救人,每动一下都能听到冰面碎裂声...

近日,在辽宁沈阳鲁迅公园,一男子掉进湖中冰窟窿,露出脑袋不停地呼救。生死时刻,一位正在附近找零活的小伙,不顾冰面碎裂发出的咔咔声,一步步爬冰救人,最终在岸上众人帮助下,成功救出…

Python爬虫入门四之Urllib库的高级用法

1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。 首先,打开我们的浏览器,调试浏览器F…

Magic Leap 价值 20 多亿美元的 AR 幻梦,现在醒了

来源:传感器技术那个用特效来吹出 AR 神话的 Magic Leap,终于有了新动静。 当地时间 12 月 10 日,增强现实(AR)领域的“知名”公司 Magic Leap 宣布,将 Magic Leap One Creator Edition 改名为 Magic Leap …

mysql约束_不是吧,阿Sir,MySQL约束你竟然还不懂!

以前写的太乱了,翻出来重新整理下系列目录:MySQL入门,问题不大【增删改查极速上手】(一) 引入约束(1) 约束出现在哪里? 想要讲解约束,就要知道约束用在哪里,用来干嘛?SQL 语言通过定义一个关系所…

dc持久内存与mysql_Calypso Systems推出测试软件和服务器测试傲腾数据中心级持久内存...

Calypso Systems测试Optane DCPMM(DC Persistent Memory Module 数据中心级持久性内存模块)的性能,带宽超过36500MB/s(顺序读写速度128000MB/s),每秒读写速度为3240万IOPS(顺序读取速度5000),平均响应时间达到0.11微秒。Calypso PM(持久性内存…

计算机行业研究及2020年策略:聚焦主赛道,投资真成长(84页)

来源:国元证券1、行业涨幅位居前列,个股表现精彩纷呈……2、IT 产业大变革,新机遇不断涌现近年来,以 5G、物联网、云计算、大数据、人工智能、区块链等技术为代表的信息 科技行业快速发展,新兴技术不断涌现&#xff0c…

最长回文串_第78天——第78题(最长回文串 )

今天又是阴天,不过阴天凉快,我喜欢。第78天——第78题(最长回文串)看题目!给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比…

python是后端语言还是前端语言_从前端到后台-语言选择

截止至2019年10月,TIOBE编程语言排行如图所示这里重点考虑前三种语言和JS。C作为底层语言直接忽略,主要对JAVA,Python和JS进行对比。JAVA: 强类型静态语言,入门较Python难度更大,常用于企业级应用。如金融,…

二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)

点击蓝字关注我们哟~2020年9月全国计算机等级考试倒计时29天,还没有好好备考的小伙伴们抓紧时间备考了~今天,跟着考无忧继续备考一下二级计算机基础知识的《第二章 信息的表示和储存》。2.1数据与信息1.数据:客观事物的符号表示,如…

机器人产业这些领域大有可为

来源:中国机器人网前言:机器人产业面临哪些挑战,未来有哪些趋势?当前,世界正迎来新一轮科技革命。传统制造业转型升级释放出巨大的市场潜力,催生高科技机器人的新需求,成为加速产业发展的新动力…