一、什么是拟合问题?

很多时候,我们在数学建模时,会遇到下面这样的情况

已知平面上有n个数据点     希望寻求某个函数 ,使 在某种准则下与所有数据点最为接近,称为此类数学问题为 数据拟合问题

我们通常采用函数逼近的方法,来拟合数据,那么最经常的使用的方法就是 最小二乘逼近方法。

二、对于线性最小二乘法,我们常用多项式拟合

调用 格式:   p=polyfit(x,y,m)        m 为拟合多项式的次数

调用 格式:   yi=polyval(p,xi)        p 为上面的多项式,已知xi 求 yi

代码示例:

x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
a=polyfit(x,y,2);
z=polyval(a,x);
plot(x,y,'k+',x,z,'r');

三、对于非线性最小二乘拟合

我们使用 lsqcurvefit() 函数 思想就是

对于 点   以及待拟合函数, 其中 a 为待定参数 ,求   使得

  取得最小值

调用格式:[a,J] = lsqcurvefit(fun,a0x,y)

示例,求 拟合函数

     最小值

x=0.1:0.1:1;
y=[2.3201 2.6407 2.9707 3.2885 3.6008 3.900 4.2147 4.5191 4.8232 5.1275];a0=[2 2 2 2];f=@(a,x)a(1)*x+a(2)*x.^2.*exp(-a(3)*x)+a(4);[a, J]=lsqcurvefit(f,a0,x,y);
y1=f(a,x);
plot(x,y,'o',x,y1,'-k')
disp(a);
disp(J);

值得大家注意的是,对于非线性优化问题一般采用的是搜索算法求解,需要给出参数初始值。初始值的确定对能否顺利找到最优解至关重要。在实际计算时,经常会因初始参数向量赋值不当找不到最优解或拟合偏差过大的问题。,从而应该多多尝试 不同的初始值来寻找最优的结果。

用MATLAB求解数据拟合问题相关推荐

  1. MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例

    MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 MATLAB人工蜂群算法求解数据拟合和多参数优化问题代码实例 1.基本概念 人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的 ...

  2. Matlab做数据拟合中的(Results,SSE,R-square,Adjusted R-square,RMSE)

    做Curve Fitting的时候通常会有以下信息,大家不解其意,在此做简单介绍. Results :显示当前拟合的详细结果, 包括拟合类型 (模型.样条或插值函数).拟合系数以及参数匹配的95% 置 ...

  3. MATLAB之数据拟合(附实例+代码)

    数据拟合 引例--人口预测问题 解决思路: 找一个函数,去逼近这些数据,然后再根据找到的函数,计算预测点的值.polyfit() x=1790:10:2010; y=[3.9,5.3,7.2,9.6, ...

  4. Matlab中数据拟合函数lsqcurvefit的使用方法与常见问题

    一. lsqcurvefit()使用方法 1.lsqcurvefit使用形式如下几种 x = lsqcurvefit(fun,x0,xdata,ydata) x = lsqcurvefit(fun,x ...

  5. 【MATLAB】数据拟合_阶数的确定

    多项式阶数N的确定 我们在拟合数据的过程中,事先不知道要拟合的数据是几阶的,那我们如何确定给定的拟合阶数N最终为多少呢? 阶数确定方法一: 这种方法是最常用的确定方法,一般情况下,我们拟合函数的目的, ...

  6. Matlab建模---数据拟合

    一.多项式拟合函数---polyfit和polyval 1.polyfit函数 调用格式: p=polyfit(x,y,n); [p,s]=polyfit(x,y,n); [p,s,mu]=polyf ...

  7. matlab中用数据拟合圆心,拟合圆并求圆心(matlab)

    clc clear all I=imread('a003.bmp'); [m,n,p]=size(I); I=im2bw(I); se=strel('square',3); Ia=imerode(I, ...

  8. 基于MATLAB的多项式数据拟合方法研究-毕业论文

    摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...

  9. MATLAB在数学建模中的应用 随手笔记(二)----- 数据拟合方法

    声明:本篇文章只是个人知识点归纳总结,不代表全书内容,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理. 作者:sumjess 目前内容:第一章 数学建模常规方法及其MATLAB实现---数据拟合 ...

最新文章

  1. android底部滑出view,Android CoordinatorLayout与NestedScrollView基于Behavior几行代码实现底部View滑入滑出...
  2. 天天都在说,无服务器计算到底是什么?
  3. JBoss Seam 3.0.0.Beta2 发布
  4. ansj 自定义 停用词_构造自定义停用词列表的快速提示
  5. uwp post php,window_Win10开发系列专题五 UWP应用添加画布及语音输入支持,这是微软Win10十个开发系列专 - phpStudy...
  6. [转] Gmail 的Host解决方案
  7. 由于找不到MSVCP20.dll,无法继续执行代码
  8. 决策树(五)--OpenCV决策树
  9. Acrobat Pro DC 教程,如何将演示文稿转换为 PDF 文件?
  10. eclipse新建java项目_用eclipse创建Java项目(以一个初学者的角度全面教学)
  11. 运维工程师mysql面试题及答案_系统运维工程师面试题及参考答案
  12. 外螺纹对照表_最新英制螺纹对照表(2016年完整版).
  13. 组合最优化——期中总结
  14. windows背景豆沙绿设置
  15. python拆分参数列表_Python序列拆分操作符与映射拆分操作符实例
  16. 一位博士在华为的22年(干货满满)
  17. 算法专题训练(1)股票问题
  18. Markdown 书写规范
  19. 计算机网络实验三 路由协议的配置
  20. 测试人员需要具备哪些基本技能

热门文章

  1. 常用的服务器操作命令
  2. ChatGPT会让程序员失业?ChatGPT:“ 是友军,我不从事任何职业。
  3. ARPA基于BLS的门限签名算法随机数生成器设计
  4. 如何在WPS一个文件中以链接形式插入另外一个文件?WPS文档插入经验分享
  5. 年后准备跳槽一定要注意这几点。谨防踩坑
  6. 范文:项目开发总结报告
  7. 【读书笔记】《王道论坛计算机考研机试指南》第五章
  8. java递归函数的解析
  9. 详细的Log4j使用教程
  10. 【JS】820- JS 常见报错及异常捕获