写在前文,懒编正准备参加数学建模并负责编程部分,写文章的初衷是为了加深自己的记忆。当然,如果可以帮助到其他人我也是很开心的。我主要介绍的是拟合算法的应用,所以接下来的文章更适合和我有一样工作的同学浏览。

今天学习了一个新算法——拟合算法
经过学习,发现拟合算法在数学建模中可以进行预测
下面我们来瞅瞅这神奇的算法。

文章目录

  • 1、插值算法和拟合算法的区别
  • 2、引例及知识点
    • 2.1、题目说明
    • 2.2、解题步骤
    • 2.3、解释SSE、R—squre
  • 3、实例
    • 3.1、题目说明
    • 3.2、解题

1、插值算法和拟合算法的区别

前面介绍过插值法,插值算法和拟合算法在某些方面好像是类似的,但其实却大有不同。

比如有几个已知点。
插值是按照一定的规律将几个点用线串起来,即寻求串的规律最好。但如果样本点过多,那么这个多项式次数过高,会造成龙格现象。而拟合是寻求一个曲线使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好。只要保证拟合误差足够小就可。

2、引例及知识点

2.1、题目说明

用matlab生成两组数据:x(1-10之间的[10,1]的矩阵)和y(1-20之间的[10,1]的矩阵)
我们设置拟合曲线为y = kx + b(x的次数越高,拟合的误差SSE(这个参数后文有介绍)越小,但是我们一般选取简单的模型,所以在SSE相差不多的情况下,选取低阶的拟合曲线)
求样本点和拟合曲线最接近时,k和b的值

2.2、解题步骤

用matlab实现拟合有两种办法,一种是用上面我给出的公式去进行计算,另外一种就是用cftool工具箱
(matlab中的cftool可以实现拟合)所谓“有便宜不占wbd”(hhh开玩笑) 我这里用cftool实现一下,因为真的很方便。
直接在命令行输入“cftool”运行就可以!

① 在界面左侧这里输入x和y。然后cftool可以直接使用一次函数进行拟合。

② 如果要设置其他拟合方式可以在界面右侧的这里进行选择

③ 在界面右侧会生成这样一个图像(会发现点和曲线其实差的很远,这是因为我的x和y是随机生成的)

④ 然后所求的k和b matlab 直接就可以算出来(p1就是k,p2就是b)

这里发现出现了一个SSE和R—square
接下来来解释一下这两个重要的参数,此俩其实是评价拟合的好坏的两个参数

2.3、解释SSE、R—squre

① SSE是误差平方和。根据它的名字就可以看出来,我们可以根据这个参数来评价拟合的好坏。SSE越小,拟合的程度越好。(SSE也是可以算出来的,有公式,我这里就不介绍了)

② R—squre是拟合优度。这个参数越接近1,说明误差平方和越接近0,拟合程度越好。

这里特别要注意的一点是:既然两个参数都能评判拟合程度的好坏。那选哪个呢?
R—squre只能用于拟合函数是线性函数(相对于参数而言而不是变量)时,而SSE适用于所有情形。
所以当我们的拟合函数不是线性函数时,用SSE评价就好了。

3、实例

3.1、题目说明

下表是中国人口数据(数据是捏造的),请预测后10年的中国人口

年份 人口(百万)
2009 133126
2010 133770
2011 134413
2012 135069
2013 135738
2014 136427
2015 137122
2016 137866
2017 138639
2018 139539
2019 140000

3.2、解题

①== 一次函数拟合==
代码如下:(预测的人口用图像画出来)

运行结果如下:

可以看出,由于我们原本数据就接近符合一次函数,之后预测的人口是按照一次函数增长的。
SSE 为:

发现SSE是92460,这个数相对于我们原本的数字来说是一个1/10倍的关系。

② 傅里叶拟合(这里我是随便挑选了一个模型进行尝试)
代码如下:

运行结果如下:

SSE为:

发现这个数字比用一次函数进行预测的误差平方和小了,也就是说傅里叶拟合与一次函数拟合相比更适合本题预测。

注:

其他各个函数拟合都可以进行试验,选择SSE最小的即可。

本文参考清风老师数学建模视频

https://www.bilibili.com/video/BV1DW411s7wi?p=6

数学建模预测类——拟合算法相关推荐

  1. 数学建模--预测类模型

    目录 一.中短期预测 1.灰色预测法 ①适用范围 ②模型实现 2.回归分析 ①适用范围 ②模型实现 3.时间序列分析 ①自适应滤波法 ②指数平滑法 ③移动平均法 4.微分方程 二.长期预测 1.神经网 ...

  2. 数学建模学习笔记——拟合算法

        拟合优度好,拟合曲线不一定好,也可能拟合曲线次数过高,模型过于复杂 文件--print to figure--另存为 导出设置--分辨率

  3. 学数学建模算法对计算机的好处,数学建模中常见十种算法 (期末论文).doc

    数学建模中常见十种算法 (期末论文) 数 学 系 毕 业 论 文 论文 (设计)题目: 数学建模中常见的十种算法 姓 名 黄小芬______ 学 号 100501313 专 业 数学与应用数学 班 级 ...

  4. 一个实例用matlab分别画出拟合和插值,数学建模培训之四--拟合与插值专题(hzd).doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp微积分 数学建模培训之四--拟合与插值专题(hzd).doc6 ...

  5. 数学建模:现代优化算法之遗传算法

    数学建模:现代优化算法之遗传算法 开始了开始了!!! 数学建模 数学建模:现代优化算法之遗传算法 前言 一.Genetic Algorithms(GA算法) 1.模型及算法 2.模型计算法 (1)编码 ...

  6. 数学建模三大类模型适用场景及建模方法(纯干货)

    目录 一,评价类算法 1,层次分析法 ●基本思想: ●基本步骤: ●优点: ●缺点 ●适用范围: ●改进方法: 2,灰色综合评价法(灰色关联度分析) ●基本思想: ●基本步骤: ●优点: ●缺点: ● ...

  7. 数学建模-32种常用算法汇总

    全国大学生数学建模竞赛(以下简称"数学建模竞赛")是由中国高等教育学会主办,旨在促进大学生对数学和相关学科的学习和研究,培养创新精神和综合素质的全国性大学生学科竞赛活动.该竞赛一般 ...

  8. 数学建模--30+种常用算法模型

    全国大学生数学建模竞赛中,常见的算法模型有以下30种: 1.线性规划模型:用于寻找最优解的数学模型. 线性规划(Linear Programming,简称 LP)是一种运筹学方法,用于在一定的约束条件 ...

  9. 数学建模|预测方法:马尔科夫预测

    马尔可夫链的定义 现实世界中有很多这样的现象:某一个系统在已知现在的条件下,系统未来时刻的情况只与现在有关,而与过去的历史无关,比如,研究一个商店的累计销售额,如果现在时刻的累计销售额已知,则未来某一 ...

最新文章

  1. C#操作Excel,权限问题
  2. 去中心化钱包CoinU基本介绍,你想知道的都有。
  3. codeforces cf 521(div3) E题
  4. 涨姿势:Java 异常?尝试自定义异常
  5. Spark基础学习笔记22:Spark RDD案例分析
  6. OpenShift 4 之Istio-Tutorial (4) 流量控制和灰度发布
  7. 为什么在加油站上班,一个月休3天,工资2000元,却有人干?
  8. python多进程编程实例_[python] Python多进程编程技术实例分析
  9. 书评:学会提问——批判性思维指南
  10. matlab 函数怎么写,MATLAB怎样定义函数(入门) 有一函数 f(x,y)=x^2+sinxy+2y , 写一程序, 输入自变量的值,输出函数值....
  11. 车型代号对照表_宝马内部代号对应车型解读,绝密!
  12. USB协议详解第9讲(USB描述符-HID描述符)
  13. 七代处理器装win7_Intel7代处理器 win10重装win7后无法安装显卡声卡驱动的解决方案 | A小可私人狗窝...
  14. rc4加密问题漏洞修复_服务器SSL不安全漏洞修复方案
  15. Python二进制数据处理
  16. 失眠 我们该怎么办?
  17. 微信访问IP地址页面出现的问题
  18. 串口通信--两台PC机之间的简单传输
  19. mysql导出gkb_mysql高效导入导出工具之mydumper
  20. c语言编程交互式计算器,C语言程序设计交互式函数计算器设计报告.docx

热门文章

  1. 最全遥感图像数据集(用于深度学习,包括效果图)
  2. 浅层介质过滤器(浅层砂过滤器)中的两位三通阀在过滤系统中的运行状态介绍
  3. 论文阅读笔记系列(一)SMAT: An Input Adaptive Auto-Tuner for Sparse Matrix-Vector Multiplication
  4. 什么是转化医学(转化研究)?
  5. iOS - Core Animation 核心动画的使用
  6. imx6q 定时器设置
  7. android版本列表
  8. wifi mouse hd for linux,wifi mouse电脑版(无线鼠标控制助手)V1.7.3 官方版
  9. 全球速度最快人工智能垃圾分拣机器人火爆环博会
  10. ninja blocks、SmartThings和Twine