数学建模-灰色预测模型GM(1,1)_MATLAB
- %GM(1,1).m
- %建立符号变量a(发展系数)和b(灰作用量)
- syms a b;
- c = [a b]';
- %原始数列 A
- A = [174, 179, 183, 189, 207, 234, 220.5, 256, 270, 285];%填入已有的数据列!
- n = length(A);
- %对原始数列 A 做累加得到数列 B
- B = cumsum(A);
- %对数列 B 做紧邻均值生成
- for i = 2:n
- C(i) = (B(i) + B(i - 1))/2;
- end
- C(1) = [];
- %构造数据矩阵
- B = [-C;ones(1,n-1)];
- Y = A; Y(1) = []; Y = Y';
- %使用最小二乘法计算参数 a(发展系数)和b(灰作用量)
- c = inv(B*B')*B*Y;
- c = c';
- a = c(1); b = c(2);
- %预测后续数据
- F = []; F(1) = A(1);
- for i = 2:(n+10) %这里10代表向后预测的数目,如果只预测一个的话为1
- F(i) = (A(1)-b/a)/exp(a*(i-1))+ b/a;
- end
- %对数列 F 累减还原,得到预测出的数据
- G = []; G(1) = A(1);
- for i = 2:(n+10) %10同上
- G(i) = F(i) - F(i-1); %得到预测出来的数据
- end
- disp('预测数据为:');
- G
- %模型检验
- H = G(1:10); %这里的10是已有数据的个数
- %计算残差序列
- epsilon = A - H;
- %法一:相对残差Q检验
- %计算相对误差序列
- delta = abs(epsilon./A);
- %计算相对误差Q
- disp('相对残差Q检验:')
- Q = mean(delta)
- %法二:方差比C检验
- disp('方差比C检验:')
- C = std(epsilon, 1)/std(A, 1)
- %法三:小误差概率P检验
- S1 = std(A, 1);
- tmp = find(abs(epsilon - mean(epsilon))< 0.6745 * S1);
- disp('小误差概率P检验:')
- P = length(tmp)/n
- %绘制曲线图
- t1 = 1995:2004;%用自己的,如1 2 3 4 5...
- t2 = 1995:2014;%用自己的,如1 2 3 4 5...
- plot(t1, A,'ro'); hold on;
- plot(t2, G, 'g-');
- xlabel('年份'); ylabel('污水量/亿吨');
- legend('实际污水排放量','预测污水排放量');
- title('长江污水排放量增长曲线'); %都用自己的
- grid on;
数学建模-灰色预测模型GM(1,1)_MATLAB的更多相关文章
- 【数学建模】day14-建立GM(1,1)预测评估模型应用
学习建立GM(1,1)灰色预测评估模型,解决实际问题: SARS疫情对某些经济指标的影响问题 一.问题的提出 2003 年的 SARS 疫情对中国部分行业的经济发展产生了一定影响,特别是对部分 疫情较 ...
- 【数学建模】灰色系统理论II-Verhulst建模-GM(1,N)-GM(2,1)建模
灰色系统理论中,GM(1,1)建模很常用,但他是有一定适应范围的. GM(1,1)适合于指数规律较强的序列,只能描述单调变化过程.对于具有一定随机波动性的序列,我们考虑使用Verhulst预测模型,或 ...
- 2018年美国大学生数学建模竞赛(MCM/ICM) B题解题思路
老套路,把我们在解决B题时候采用的思路分享给大家,希望大家能学到点东西~~~ B题思路整理:Part1:先整理出说某种语言多的十个国家给找出来,或者说是把十种语言对应的国家找出来 然后再对各个国家的人 ...
- python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导
来源公式推导连接 https://blog.csdn.net/qq_36387683/article/details/88554434 关键词:灰色预测 python 实现 灰色预测 GM(1,1)模 ...
- BITED数学建模七日谈之三:怎样进行论文阅读
前两天,我和大家谈了如何阅读教材和备战数模比赛应该积累的内容,本文进入到数学建模七日谈第三天:怎样进行论文阅读. 大家也许看过大量的数学模型的书籍,学过很多相关的课程,但是若没有真刀真枪地看过论文,进 ...
- 2017 年“认证杯”数学中国数学建模网络挑战赛 C题思路讲解
之前有小伙伴私信我叫我说说这次比赛C题的思路,怎么写的,我就写篇博客说说吧,仅供参考! 针对C题,该题目比较综合,是一个成熟的数模赛题,与国赛的相似性较高.一般而言,第一问难度较低,题目要求进行数据挖 ...
- 数学建模:1.概述& 监督学习--回归分析模型
数学建模概述 监督学习-回归分析(线性回归) 监督学习-分类分析(KNN最邻近分类) 非监督学习-聚类(PCA主成分分析& K-means聚类) 随机算法-蒙特卡洛算法 1.回归分析 在统计学 ...
- 卓金武《MATLAB在数学建模中的应用》 第2版
内容介绍 本书的作者都具有实际的数学建模参赛经历和竞赛指导经验.书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的matlab求解方法.本书内容分上下两篇.上篇介绍数学建模中常 ...
- Matlab与数学建模
一.学习目标. (1)了解Matlab与数学建模竞赛的关系. (2)掌握Matlab数学建模的第一个小实例—评估股票价值与风险. (3)掌握Matlab数学建模的回归算法. 二.实例演练. 1.谈谈你 ...
随机推荐
- 在Mac上安装MongoDB,配置全局路径
1.访问MongoDB官方下载地址 http://www.mongodb.org/downloads 2.点击“DOWNLOAD(tgz)”按钮: 3.将下载的文件压缩包解压后剪切到你的Mac中某个位 ...
- Java核心技术及面试指南 线性表方面的面试题总结以及答案
3.2.7.1 请用ArrayList实现Stack以及Queue的功能. public class ArrayListStack extends ArrayList implements Stack ...
- 【jQuery】(5)---jQuery CSS
jQuery CSS 1.jQuery 文档操作方法 1.addClass() 方法: addClass() 方法向被选元素添加一个或多个类.该方法不会移除已存在的 clas ...
- Android--UI之ScrollView
前言 本篇博客主要讲解ScrollView和HorizontalScrollView两个容器的使用.它们分别代表了垂直滚动以及水平滚动,滚动的内容是它其中包含的View.在本篇会简单介绍ScrollV ...
- 经典中的品味:第一章 C++的Hello,World!
摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! "程序设计要通过编写程序的实践来学习"-Brian ...
- linux 命令 — grep
grep 用于文本搜索,能接受文件或者stdin作为输入,能输出各种格式 grep match_pattern filename 搜索文件中出现match_pattern的行,match_patter ...
- c#调用c++ dll的一个例子
1.创建一个简单的c++ 项目生成动态库. Vs 创建完工程后,打开SampleOperation.cpp文件,看到有个导出函数的例子. 复制这段代码, 修改函数(返回值, 参数列表, 函数的实现) ...
- Linux常用命令之压缩和解压缩命令
目录 1.压缩解压缩格式 .gz 一.将文件压缩为 .gz 格式,只能压缩文件:gzip 二.将 .gz 文件解压:gunzip 2.压缩解压缩格式 .tar.gz 一.将文件或目录压缩为 .tar. ...
- Java 容器源码分析之 LinkedList
概览 同 ArrayList 一样,LinkedList 也是对 List 接口的一种具体实现.不同的是,ArrayList 是基于数组来实现的,而 LinkedList 是基于双向链表实现的.Lin ...
- 分布式系统监视zabbix讲解八之自动发现/自动注册--技术流ken
自动发现(LLD) 概述 自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法.例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网 ...