• 在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操作,所以我们需要用到matlab曲线拟合函数,并且以最常用的多项式拟合函数为例作为matlab曲线拟合例子,进行详细介绍。

工具/原料

  • MATLAB

matlab曲线拟合

  1. 1

    数据准备:

    关于MATLAB曲线拟合,我写了一系列的经验,为了相互统一,采用下面的数据:

    x=[0    0.3000    0.6000    0.9000    1.2000    1.5000    1.8000    2.1000    2.4000    2.7000    3.0000]

    y=[2.0000    2.3780    3.9440    7.3460   13.2320   22.2500   35.0480   52.2740   74.5760  102.6020  137.0000]

    由函数y=4*x^3+3*x^2+2 产生。

  2. 2

    函数命令拟合:

    MATLAB为我们提供了多项式拟合函数命令polyfit,下面我们就用这个函数命令进行拟合。

    在MATLAB主窗口中输入

    y1=polyfit(x,y,3),回车

    我们会看到下面结果:

    y1 =

    4.0000    3.0000    0.0000    2.0000

  3. 3

    函数的说明:

    y1=polyfit(x,y,N),这里函数polyfit第一个参数传递的是拟合数据的自变量,第二个参数是因变量,第三个参数是拟合多项式的阶数,这个由我们给定。如下图。我们可以给定不同的N,运用不同的多项式进行拟合。

    输出结果:

    在上面的例子中我们看到输出的结果是:

    y1 =

    4.0000    3.0000    0.0000    2.0000

    对照原始的函数y=4*x^3+3*x^2+2 ,我们可以看到,y1其实输出的是拟合函数的系数,并且由高次到低次由左到右输出。





  4. 4

    多项式阶数N的确定:

    这里有些人可能会有问题了,我们事先不知道要拟合的数据是几阶的,那么我们如何判断我们给定的拟合阶数N最终为多少呢?

    阶数确定方法一:

    这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的,就是为了调用,所以在用函数拟合之前会用matlab曲线拟合工具箱进行拟合函数阶数的确定,由其确定拟合的阶数,然后我们用这个函数命令在其他地方进行十分方便地调用,这是最常用的做法。我们往往拟合的是多个同类型的数据,所以确定好一组样本的次数之后,就可以对其他数据用同样的N进行拟合。




  5. 5

    阶数确定方法二:

    这种方法方法可以取代用cftool进行判断的过程,具体实现代码如下:

    for i=1:5

    y2=polyfit(x,y,i);

    Y=polyval(y2,x);%计算拟合函数在x处的值。

    if sum((Y-y).^2)<0.1

    c=i

    break;

    end

    end

    运行以上程序,结果如下:

    c=3

    假设我们的误差平方和精度范围为0.1,那么通过以上程序,我们可以看到用3阶函数拟合,就可以达到精度要求。在多项式进行拟合的时候这个值我们在程序执行的过程中就直接可以调用。

    说明:至于说用plot函数进行画图,肉眼观察拟合程度的那种笨方法,我们不推荐,这里也不赘述。

    END

matlab曲线拟合结果调用及显示

  1. 大家可能有疑问,我们拟合完函数之后得到的是拟合多项式的系数,我们应该如何调用?如何查看我们拟合的多项式是什么形式呢?下面我们就接着上面的内容进行介绍。

  2. 拟合多项式的显示:

    在MATLAB主窗口中输入

    syms x f(x)

    f(x)=poly2sym(y2,x)

    我们会看到输出如下结果:

    f(x) =

    4*x^3 + 3*x^2 + (5822273280258613*x)/1267650600228229401496703205376 + 2

    这就是我们拟合出来的多项式。

    这里我们看到一次项的系数并不是0,这里5822273280258613/1267650600228229401496703205376=4.5930e-15,这个数量级我们完全可以忽略,认为是0。




  3. 拟合结果的调用:

    在MATLAB主窗口中输入如下命令:

    TEST=polyval(y2,x)

    我们可以看到如下结果,如下图。

    函数polyval()的第一个参数为多项式的系数,第二个参数为要计算的自变量值。可以是向量或者矩阵。

matlab曲线拟合 函数 用法以及例子相关推荐

  1. matlab拟合曲线poly交点,matlab曲线拟合 函数 用法以及例子,看完你就知道了

    在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以, 工具箱拟合结果 十分不适合调用,以及继续下 ...

  2. MATLAB中fix啥意思,matlab fix函数用法_常见问题解析,matlab

    matlab syms什么意思_常见问题解析 matlab中syms的意思是定义多个变量,可以用来创建符号变量x和y,语法是"syms x y":也可以创建一些符号变量.函数和数组 ...

  3. matlab中的fix,matlab fix函数用法_常见问题解析

    matlab syms什么意思_常见问题解析 matlab中syms的意思是定义多个变量,可以用来创建符号变量x和y,语法是"syms x y":也可以创建一些符号变量.函数和数组 ...

  4. [转载]Matlab fmincon函数用法

    原文地址:Matlab fmincon函数用法作者:长笛人倚楼Gloria 这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独整理一下其用法. 一.基本介绍 求解问题的标准 ...

  5. matlab中的fix,matlab fix函数用法

    matlab fix(x)和floor(x)的区别? 1)fix(n)的意义是取小于n的整数(是向零点舍入的意思是往零的方向上靠),这是一类应用在整数取值上的函数,就如同以前我们所研究的CSS布局HT ...

  6. matlab randperm()函数用法

    randperm()函数用法 随机函数 语法: p = randperm(n) p = randperm(n,k) 语法描述: p = randperm(n)   返回一行包含从1到n的整数. < ...

  7. [Matlab] subplot函数用法

    subplot函数用法 subplot(a,b,c)顾名思义,sub的意思就是在一张图上画出子图出来 参数 a 表示子图有几行 参数 b 表示子图有几列 参数 c 表示当前子图的序号,也就是第几个图, ...

  8. matlab randi 函数,randi(matlab randi函数用法)

    得到一段matlab程序,但其中的randi()运行出错,不知这个函数是什么意思. randi是matlab中能产生均匀分布的伪随机整数的新函数.较高版本的matlab才有这个函数功能.用法有:ran ...

  9. matlab subplot函数用法

    函数功能 subplot是MATLAB中的函数. 使用方法:subplot(m,n,p)或者subplot(m n p). subplot是将多个图画到一个平面上的工具.其中,m表示是图排成m行,n表 ...

最新文章

  1. WebForm中DataGrid的20篇经典文章
  2. shell错误 sed: can't read : No such file or directory
  3. Linux 网络编程详解二(socket创建流程、多进程版)
  4. 视频会议系统在企业网络中的关键利益—Vecloud微云
  5. linux内核版本 2.6.39,linux – 为什么这个内核模块在2.6.39上被标记为永久
  6. 周四话运营:如何提高用户留存?
  7. 用sqlserver手动写个split(字符分割)
  8. 仿百度文库实现文档在线预览
  9. Java迭代器的一致_ArrayList中迭代器(Iterator)实现
  10. Spring JDBC 【继承JdbcDaoSupport】
  11. 初学SQL Server 2016
  12. php文件苹果用什么软件打开,教你用什么软件打开php文件
  13. 腾讯校招难度升级,笔试刷人超80%,最“简单”的试题把网友看哭了
  14. dsp6657的helloworld例程测试-第一篇
  15. latex tex studio 表格大小 整体缩小 过长 过宽 跨栏 跨页
  16. pandas读取行列数据-详细介绍(连续不连续)
  17. 手游摇杆(二)八方向摇杆和移动范围限制
  18. java商城系统和php商城系统哪种好些?
  19. CSDN新版个人空间介绍之三——代码与收藏
  20. 公司实际控制人和控制人的计算(内容在不断完善中。。。)

热门文章

  1. 每周一书《用户故事地图》分享!设计、产品、开发必读!
  2. uva 12325 宝箱
  3. soot基础 -- soot中基本的对象
  4. Android8.0通知栏适配全面解析
  5. libxml2下载,下载地址大全
  6. 计算机网络体系结构的基本思想和主要特点
  7. 微信小程序扫描二维码条形码 (wx.scanCode)
  8. 【EMC基础篇①】噪声是什么
  9. C语言——整型整除,浮点数整除
  10. PHP将ppt转成图片查看