在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整、几乎能解决所有离散参数线性拟合的方法

第一步:得到散点数据

根据你的实际问题得到一系列的散点

例如:

x=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';%加上一撇表示对矩阵的转置

y=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]';

第二步:确定函数模型

根据上述的实际散点确定应该使用什么样的曲线,或者说是想要模拟的曲线

t=[3.2,3.6,3.8,4,4.2,4.8,5,5.4,6.2,6.4,6.6,6.9,7.1]';

tt=[0.38,0.66,1,0.77,0.5,0.66,0.83,1,0.71,0.71,1,0.87,0.83]';

plot(t,tt,'.');%得到散点图

matlab中现成的函数:ployfit()

定义:polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。

调用方法:polyfit(x,y,n)。用多项式求过已知点的表达式,其中x为源数据点对应的横坐标,可为行向量、矩阵,y为源数据点对应的纵坐标,可为行向量、矩阵,n为你要拟合的阶数,一阶直线拟合,二阶抛物线拟合,并非阶次越高越好,看拟合情况而定。

matlab polyfit 做出来的值从左到右表示从高次到低次的多项式系数。

例子:

x = (0: 0.1: 2.5)';

y = erf(x);

p = polyfit(x,y,6)

p =

0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004

则y=0.0084x^6-0.0983x^5+0.4217x^4-0.7435x^3+0.1471x^2+1.1064x+0.0004

完整例子程序:

%二项式拟合

t=[3.2,3.6,3.8,4,4.2,4.5,4.8,5,5.3,5.4,5.6,5.8,6,6.2,6.4,6.6,6.9,7.1];

y=[0.38,0.66,1,0.77,0.5,0.33,0.66,0.83,0.33,1,0.33,0.5,0.33,0.71,0.71,1,0.87,0.83];

plot(t,y,'.');

hold on

p=polyfit(t,y,2)

y1=polyval(p,t);

axis([0,8,0,1]);

plot(t,y1)

%plot是画图函数

%polyval是求值函数

%polyfit是曲线拟合函数

%polyfit用于多项式曲线拟合

%p=polyfit(x,y,m)

%其中, x, y为已知数据点向量, 分别表示横,纵坐标, m为拟合多项式的次数, 结果返回m次拟合多项式系数, 从高次到低次存放在向量p中.

%y0=polyval(p,x0)

%可求得多项式在x0处的值y0

结果:另外可以自行加上对应的横纵坐标内容,这里就不多说了。

总结一下matlab非线性拟合散点图的过程:得到散点数据=>确定线性函数模型=>求解函数模型的待定系数=>得到拟合函数的具体形式=>画出拟合图像

matlab 万能,matlab 万能实用的线性曲线拟合方法相关推荐

  1. matlab 万能实用的非线性曲线拟合方法

    在科学计算和工程应用中,经常会遇到需要拟合一系列的离散数据,最近找了很多相关的文章方法,在这里进行总结一下其中最完整.几乎能解决所有离散参数非线性拟合的方法 第一步:得到散点数据 根据你的实际问题得到 ...

  2. matlab的实用与仿真,MATLAB建模与仿真实用教程

    前言 第1章MATLAB建模基础 1.1 MATLAB简介 1.1.1 MATLAB的安装 1.1.2 MATLAB通用命令 1.1.3 MATLAB应用窗口简介 1.2 MATLAB数学建模概述 1 ...

  3. MATLAB中曲线拟合方法总结(包括对数正态分布函数)

    鉴于最近遇到非线性函数拟合问题,本人对网上有关matlab多种类型的线性.非线性曲线拟合的方法进行了总结,希望对各位朋友有所帮助. 1. Matlab有一个功能强大的曲线拟合工具箱 cftool ,使 ...

  4. matlab从excel中读取文件进行曲线拟合 并导出公式

    课题组需要做数据的处理,其中一项是做数据拟合,并导出公式.这是我第一次使用matlab,发现它并不难,而且利用好了就是很棒的工具,不应让它成为拦路虎.乘着现在暑假时期,空闲时间比较多,就多多了解一些. ...

  5. Matlab学习7-图像处理之线性平滑滤波

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.选择平均法滤波去噪 二.领域平均法去噪 三.Wiener滤波 四.线性平滑滤波 前言 空域滤波增强 卷积原理 多维 ...

  6. s型增长的matlab曲线图,matlab拟合s型曲线

    使用?MATLAB 曲线拟合工具箱做曲线拟合在实际的工程应用领域和经济应用领域中... matlab曲线拟合实例_计算机软件及应用_IT/计算机_专业资料.曲线拟合已知数据 x y 1 10 3 5 ...

  7. 前景提取 matlab,基于MATLAB的动态前景目标特征提取与运动跟踪

    吴晶鑫 仲梁维 摘 要:动态前景目标识别和提取是计算机视觉领域的重要内容.对动态图像进行前景目标提取与运动跟踪,通过改进高斯混合背景模型,提出一种基于自适应特征加权的前景目标提取算法,目的是对动态画面 ...

  8. java开源仿真平台除了matlab,除了Matlab,数学物理建模仿真还有更好的选择

    国内工业界搞研发时,使用的通用数学物理建模仿真软件除了Matlab还是Matlab,似乎Matlab已经成为了一种行业标准,找不到比它更牛的了.然而果真如此吗?只能说,Matlab满足绝大多数行业研发 ...

  9. 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(三)一阶保持(FOH)内插

    上篇博文采用了零阶保持(ZOH)的方式进行了重构:[ MATLAB ]MATLAB 实现模拟信号采样后的重建(二)零阶保持(ZOH) 这篇博文我们使用一阶保持(FOH)内插来重建信号,采用的案例依然是 ...

最新文章

  1. Monthly update for Dynamics 365 for Operation
  2. 先来先服务算法代码_程序员算法与数据结构基础中的基础,栈与递归
  3. ASP.NET MVC3 301永久重定向实现程序
  4. 前端开发技巧-那些不常见但十分有效的小玩意
  5. sort()与cmp()
  6. 如何使用内联onclick属性停止事件传播?
  7. ES6与ES2015、ES2016以及ECMAScript的区别
  8. 一文读懂电子罗盘的原理、校准和应用
  9. 使用jxls模板解析导出数据时添加单元格样式
  10. python语言保留字有true吗_python语言的保留字
  11. 领域驱动设计实现之路
  12. 计算机cpu电压,怎么样调电脑cpu电压啊
  13. 微信小程序时代,小程序员的产品创意集合
  14. java语音输入_求教:javaWeb,添加语音输入的功能实现方法
  15. NBA名人堂之-威尔特·张伯伦|乔治·迈肯|比尔·沃顿|戴夫·考恩斯|威利斯·里德
  16. 了解一下IRETD/ RET/ RETF
  17. 【自学笔记】video标签无法播放服务器上的视频
  18. Yeelink Http请求格式分析
  19. 最长单调递增子序列(时间复杂度O(nlogn))
  20. Flink系列之:基于Flink CDC2.0实现海量数据的实时同步和转换

热门文章

  1. bashdb常用命令
  2. Python 学习日记第二篇 -- 列表,元组
  3. python入门(5)使用文件编辑器编写代码并保存执行
  4. 润乾V4导出TXT时自定义分隔符
  5. 【转】android 中如何限制 EditText 最大输入字符数
  6. Portal-Basic Java Web 应用开发框架:应用篇(十四) —— 异步 Action
  7. Sharepoint2007个人网站不能同步域信息的处理方法
  8. BIOS详情设置续一
  9. 万彩录屏服务器不稳定,万彩录屏 云服务器
  10. opencv入门课程:彩色图像灰度化和二值化(采用skimage库和opencv库两种方法)