数据拟合工具箱笔记

在matlab中做数据拟合是非常常见的事,而又以多项式拟合最为常用,下面简单介绍一下常见的多项式拟合的方法:

多项式拟合

1. 多项式拟合命令

x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 8 5 2 4 10 30]; %导入拟合的数据 P=polyfit(x, y, 3); %多项式拟合,返回降幂排列的多项式系数,这里3是拟合的最高次幂 xi=0:0.2:10; %要求的点的横坐标 yi=polyval(P, xi); %计算多项式的值 plot(xi, yi, x, y, 'r*'); %出图,默认的蓝色线是拟合的曲线,红色*是离散点

2. 图形窗口的多项式拟合
在图形窗口可以用菜单的方式对数据进行简单,高效的拟合,首先画出原始的离散数据点:

x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 8 5 2 4 10 30]; %导入拟合的数据 plot(x,y,'r*')

生成了原始离散图形之后,在图形窗口单击:Tools-->Basic Fitting,打开对话框,可以看到可以使用几种不同的多项式拟合方式,并且可以同时多项勾选,例如同时进行线性、二阶、三阶拟合。下面可以使用各种图形显示残差。

曲线拟合工具箱

下面重点详述matlab提供了曲线拟合工具箱。依次单击Start-->Toolboxes-->Curve Fitting-->Curve Fitting Tool(cftool)就可以打开曲线拟合工具箱,或者在命令窗口中直接输入cftool命令打开。
可以看到5个命令按钮
Data:可输出、查看和平滑数据;
Fitting:可以拟合数据、比较拟合曲线和数据集;
Exclude:可以从拟合曲线中排除特殊的数据点;
Ploting:在选定区间后,单击按钮,可以显示拟合曲线和数据集;
Analysis:可以做内插法、外推法、微积分或积分拟合。

1. 导入数据集
在导入数据之前,数据变量必须已经存在于matlab的工作区间。在导入数据之后,就会在data对话框中进行X和Y的数据设置。
Data对话框包括两个选项卡:Data Sets和Smooth。
Data Sets选项卡:
这里X data和Y data就是用于选择观测数据和选择X的响应数据
Weight用于选择权重,与响应数据相联系的向量,如果没有选择,默认值为1.
需要注意的是这里把向量输入工作区,主要以变量具有相同的维数,无穷大的值和不定值将被忽略。
当选择Data Sets列表框中的数据集时候,单击view按钮,打开view按钮可以以工作表的方式察看数据。

2. 数据的预处理
在曲线拟合工具箱中,数据的预处理主要包括平滑法、排除法和区间排除法。
2.1 平滑数据
在刚才的选项卡中选择smooth选项卡,下面对smooth选项卡简单介绍一下:
Original data set:用于挑选需要拟合的数据集;
Smoothed data set:平滑数据的名称;
Method:用于选择平滑数据的方法,每一个相应数据结果用通过特殊的曲线平滑方法所计算的结果来取代。平滑数据的方法包括:
1. Moving average:用移动平均值进行替换;
2. Lowess:局部加权散点图平滑数据,采用线性最小二乘法和一阶多项式拟合得到的数据进行替换;
3. Loess:和上面的类似,不同的是使用线性最小二乘法和二阶多项式拟合得到的数据进行交换;
4. Savitzky-Golay:采用未加权的线性最小二乘法过滤数据,利用指定阶数的多项式得到的数据进行替换;
5. Span用于进行平滑计算的数据点的数目;
6. Degree:用于Savitzky-Golay方法拟合多项式的阶数。

2.2. 异常排除
显然一大堆的离散数据中很难保证数据都是可以使用的,必须要对数据中的异常值进行排除。
区间排除法是采用一定的区间去排除那些用与系统误差导致偏离正常值的异常值。
在曲线拟合工具箱中选择Exclude按钮,可以打开Exclude对话框。
Exclusion rule name:用于指定分离规则的名称;
Select data set:挑选需要操作的数据集;
Exclude graphically:允许我们使用图形的方式去除异常值,排除个别的点用“X”标记。
Check to exclude point:挑选个别的点进行排除,可以通过在数据表中打钩来选择要排除的数据。
Exclude Sections:用来选定区域排除数据:
其中Exclude X选择预测数据X要排除的数据范围;
Exclude Y选择响应数据Y要排除的数据范围。

2.3 其他数据预处理的方法
其他的预处理方法不便通过曲线拟合工具箱来视线,主要包括两个部分:
(1). 响应数据的转换
响应数据的转换一般包括对数转换和指数转换,用这些转换可以使非线性的模型线性化,便于曲线拟合。变量的转换一般在命令行里面实现,然后把转换后的数据输入曲线拟合工具箱,然后再进行拟合。
(2). 无穷大、不定值在曲线拟合中是可以忽略,如果想把它们从数据集中删除,可以用isinf和isnan置换无穷大和缺失值。

3. 数据拟合
命令行的方式不再赘述,不是本笔记的重点,简明的命令在前面的例子中已有。
在曲线拟合工具箱的对话框中单击fitting按钮打开fitting对话框进行设置,实现曲线拟合。
同时给出了一些常用的拟合类型:
Exponential:指数拟合包括两种形式

[Math Processing Error]

[Math Processing Error]

Fourier:傅里叶拟合
Gaussian:高斯法
Interpolant:内插法,包括线性插值、最近邻内插值和shapepreserving插值
polynomial多项式,从一次到九次
Rational有理拟合,两个多项式之比,分子和分母都是多项式
Power指数拟合
Smoothing spline平滑样条拟合,默认的平滑参数由拟合的数据集来决定,参数是0产生一个分段的线性多项式你和,参数是1产生一次分段三次多项式拟合
Sum of Sin Function正弦函数的和
Weibull两个参数的weibull分布
Degree of Freedom Adjusted R-Square调整自由度以后的残差的平方,数值越接近1,曲线的拟合效果越好。
Root Mean Square Error根的均方误差

Table of Fits里面的Table options里面的重点两个参数:
SSE=sum of squares due to error误差平方和,越接近0曲线的拟合效果
R-square越接近1,曲线的拟合效果越好

简单示例一下拟合数据hahn1.m,hahn1.m是matlab自带,描述铜的热膨胀与热力学温度的相关性,包括两个向量temp和thermex。

load hahn1 %载入hahn1的数据 cftool %打开曲线拟合工具箱

4. 非参数拟合
有时候我们对拟合参数的提取或解释并不感兴趣,只是想得到一个平滑的通过各数据点的曲线,这种拟合曲线的形式就称之为非参数拟合。
非参数拟合的方法包括:
插值法:Interpolants
在已知数据点之间估计数值的过程,包括
Linear线性内差,在每一队数据之间用不同的线性多项式拟合。
Nearest neighbor最近邻内插,内插点在最相邻的数据点之间。
Cubic spline三次样条内插,在每一队数据之间用不同的三次多项式拟合。
Shape-preserving分段三次艾尔米特内插。

平滑样条内插法Smoothing spline
平滑样条内插是对杂乱无章的数据进行平滑处理,可以用平滑数据的方法来拟合,平滑的方法在数据的预处理中已经介绍。

matlab数据拟合工具箱的应用(转载)相关推荐

  1. MATLAB数据降维工具箱drtoolbox

    The Matlab Toolbox for Dimensionality Reduction contains Matlab implementations of 38 techniques for ...

  2. matlab 降维工具箱mle,Matlab数据降维工具箱

    [实例简介] Matlab Toolbox for Dimensionality Reduction Matlab数据降维工具箱,包括几乎所有的数据降维方法:PCA.LDA.ICA.MDS.Isoma ...

  3. matlab数据拟合语句,Matlab数据拟合程序 - 范文中心

    课程设计名称: 设计二:数据拟合 指导教师: 张莉 课程设计时数: 6 课程设计设备:安装了Matlab .C ++软件的计算机 课程设计日期: 实验地点: 第五教学楼北902 课程设计目的: 1. ...

  4. (每日一练)MATLAB数据拟合

    今天就的学习内容是数据拟合. 数据拟合也称为曲线拟合,是一种把现有数据透过数学方法来代入一条数式的表示方式.科学和工程问题可以通过诸如采样.实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到 ...

  5. Matlab神经网络拟合工具箱

    目录 示例1:一元函数 y=x²-1 拟合 示例2:多元函数  z=sin(x2+y2)/(x2+y2)  拟合 神经网络拟合工具箱 Neural Net Fitting 示例1:一元函数 y=x²- ...

  6. matlab 数据拟合

    数据拟合 clc,clear; x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2); x1 ...

  7. MATLAB cftool拟合工具箱傅里叶函数预测人口

    原始数据 年份 year=[2009 2010 2011 2012 2013 2014 2015 2016 2017 2018]; 人口 pop=[133126 133770 134413 13506 ...

  8. matlab求偏态系数,Matlab数据拟合正太分布与偏态分布

    这是图片灰度值的一行, Y1=[7 7 7 7 7 7 7 7 8 8 8 7 7 7 7 7 7 8 8 8 8 8 8 8 7 8 8 9 9 9 9 10 10 10 10 10 10 10 1 ...

  9. matlab表达一次函数,[转载]MATLAB数据拟合例子(一次函数、指数函数、双曲线)...

    一次函数:(a+bx = y) %先求出拟合函数 format long; x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [32.2 ...

最新文章

  1. 【Java集合框架】ArrayList类方法简明解析(举例说明)
  2. 新书上市 | 为什么你的英语总是学不好?
  3. CentOS 5.5高负载下,网卡会自动断开
  4. 八十四、SpringBoot微服务Dubbo和Zookeeper分布式
  5. java utils
  6. GeneralUpdate实现应用程序更新
  7. linux6.5安装oracle,linux [CentOS 6.5]下安装oracle
  8. 两个pv挂一个vg_两个pv挂一个vg_VG解散LOL分部,LPL官网提前改名,下赛季被“RA”收购...
  9. linux屏幕怎么放大_02|初始Linux——Windows与Linux区别
  10. 灰度董事总经理:BTC突破2万美元并不令人惊讶
  11. python零基础能学吗-初学者必知:零基础学习Python真的能学会吗?
  12. FFmpeg4.0.2 over版本av_register_all()流程(二十九)
  13. python mysql使用教程_python进阶之Mysql入门教程
  14. Python使用matplotlib可视化模拟商场促销价格关系折线图
  15. 【Spark重点难点08】Spark3.0中的AQE和DPP小总结
  16. 报税远程服务器返回错误,紧急 | 增值税申报失败,调用系统服务出错,怎么办?...
  17. Windows 开机自动拨号上网
  18. tomcat7配置log4j解决catalina.out日志过大问题
  19. H5和C3新特性(完整版)
  20. 第十七届全国大学生智能汽车竞赛百度创意组来啦

热门文章

  1. 2008年10月高等教育国际金融全国统一命题考试
  2. http、https、ftp、talnet的默认端口号
  3. HDU 1263-水果
  4. Self-supervised Learning: Generative or Contrastive
  5. 【宠物远程监控DIY】openwrt+rt5350+mjpg摄像头
  6. 用户SA登陆失败 | VS三层架构web项目的创建
  7. Quartus中D触发器入门
  8. html行标签并列显示,excel数据透视表_excel数据透视表怎样不显示汇总
  9. Git 基础之凌波微步
  10. [学习笔记]第一类/第二类斯特林数