• matlab数据拟合


      在Matlab 6.5以上的环境下,在左下方有一个"Start"按钮,如同Windows的开始菜单,点开它,在目录"Toolboxes"下有一个"Curve Fitting",点开"Curve Fitting Tool",出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。

      下面简单介绍一下它的使用方法:
      首先在Matlab的命令行输入两个向量,一个向量是你要的x坐标的各个数据,另外一个是你要的y坐标的各个数据。输入以后假定叫x向量与y向量,可以在workspace里面看见这两个向量,要确保这两个向量的元素数一致,如果不一致的话是不能在工具箱里面进行拟合的。
      例如在命令行里输入下列数据:
    x=(0:0.02:0.98)';
    y=sin(4*pi*x+rand(size(x)));
    此时x-y之间的函数近似的为正弦关系,频率为2,但是存在一个误差项。
    可以通过作图看出它们的大体分布:
    plot(x,y,'*','markersize',2);
      打开曲线拟合共工具界面,点击最左边的"Data..."按钮,出现一个Data对话框,在Data Sets页面里,在X Data选项中选取x向量,Y Data选项中选取y向量,如果两个向量的元素数相同,那么Create data set按钮就激活了,此时点击它,生成一个数据组,显示在下方Data Sets列表框中。关闭Data对话框。此时Curve Fitting Tool窗口中显示出这一数据组的散点分布图。
    点击Fitting...按钮,出现Fitting对话框,Fitting对话框分为两部分,上面为Fit Editor,下面为Table of Fits,有时候窗口界面比较小,Fit Editor部分会被收起来,只要把Table of Fits上方的横条往下拉就可以看见Fit Editor。在Fit Editor里面点击New Fit按钮,此时其下方的各个选框被激活,在Data Set选框中选中刚才建立的x-y数据组,然后在Type of fit选框中选取拟合或回归类型,各个类型的拟合或回归相应的分别是:
    Custom Equations 用户自定义函数
    Expotential e指数函数
    Fourier 傅立叶函数,含有三角函数
    Gaussian 正态分布函数,高斯函数
    Interpolant 插值函数,含有线性函数,移动平均等类型的拟合
    Polynomial 多项式函数
    Power 幂函数
    Rational 有理函数(不太清楚,没有怎么用过)
    Smooth Spline ??(光滑插值或者光滑拟合,不太清楚)
    Sum of sin functions正弦函数类
    Weibull 威布尔函数(没用过)
      不好意思,没有学过数理统计,所以很多东西都是用了才知道,翻译也就不太准确。不过在Type of fit选框下方有一个列表框,基本上各个函数类里的函数都写成解析式列在下方以供选择,所以找合适的函数还是比较容易的。
      在这个Type of fit选框中选择好合适的类型,并选好合适的函数形式。于是点击Apply按钮,就开始进行拟合或者回归了。此时在Curve Fitting Tool窗口上就会出现一个拟合的曲线。这就是所要的结果。
      在上面的例子中,选择sum of sin functions中的第一个函数形式,点击Apply按钮,就可以看见拟合得到的正弦曲线。
      在Fitting对话框中的Results文本框中显示有此次拟合的主要统计信息,主要有
    General model of sin1:
    ....... (函数形式)
    Coefficients (with 95% conffidence range) (95%致信区间内的拟合常数)
    a1=... ( ... ...) (等号后面是平均值,括号里是范围)
    ....
    Godness of fit: (统计结果)
    SSE: ... (方差)
    R-squared: ... (决定系数,不知道做什么的)
    Adjusted R-squared: ... (校正后的决定系数,如何校正的不得而知)
    RMSE: ... (标准差)
      

    例:已知

    x=[500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000]; 

    y=[11.4635 13.2981 15.2614 17.4575 18.5784 19.4151 20.9937 23.0329 23.4717 24.6887 25.5164]; 

    若按照:y=a.*x.^b对数据进行数据拟合,求系数a,b?

    上面的例子中经过拟合得到的函数最后为
    y=0.9354*sin(12.36x+6.886)
      频率为1.98加减0.03,和原来设置的频率为2符合,相对误差为1.5%。
      这是曲线拟合工具箱的一个最简单的使用方法,上面还有很多功能,写是写不完的,自己参照这个基本的思路,翻着英汉词典,看着帮助,然后一个按钮一个按钮的试吧。
    另外要说的是,如果想把这个拟合的图像导出的话,在Curve Fitting Tool窗口的File菜单下选Print to Figure,此时弹出一个新的图像窗口,里面是你要导出的图像,在这个figure窗口的File菜单里再选Export,选择好合适的格式,一般是jpeg,选择好路径,点击OK就可以了。出来的图像可以在Word等编辑环境中使用,就不多说了。
    要修改图像的性质,如数据点的大小、颜色等等的,只需要在对象上点右键,就差不多可以找到了。

  • 相关阅读:
    SNF快速开发平台MVC-名片管理(实际名片样式)
    SNF快速开发平台MVC-表格单元格合并组件
    SNF快速开发平台MVC-单据状态水印
    SNF快速开发平台MVC-瀑布式分页组件
    SNF快速开发平台MVC-高级查询组件
    SNF快速开发平台MVC-自由排序组件
    SNF快速开发平台MVC-各种级联绑定方式,演示样例程序(包含表单和表格控件)
    SNF快速开发平台MVC-集成了百度开源项目echars
    SNF开发平台WinForm-平板拍照及扫描二维码功能
    SNF快速开发平台--规则引擎整体介绍及使用说明书
  • 原文地址:https://www.cnblogs.com/kimiway/p/3495431.html
Copyright © 2020-2023  润新知