灰色预测适用于小样本的预测,常用来解决一些不确定性的问题。

理论知识书上都有介绍,下面仅列出程序设计,同时方便自己比赛。

MATLAB是实现灰色预测过程的首选,用MATLAB编写灰色预测程序时,可以完全按照预测模型的求解步骤进行,也就是下面的步骤:

  • 对原始数据进行累加;
  • 构造累加矩阵B与常数向量;
  • 求解灰参数;
  • 将参数代入预测模型进行数据预测。

下面举例,一个公司1999到2008年的利润为[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670],现在要预测该公司未来几年的利润情况。

在程序中我们仅仅预测该公司10年以后的情况,数据可修改,把(n+10)里的10改成你需要的数字即可。

代码:

clc,clear;
syms a b;
c=[a b]';
A=[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670];
B=cumsum(A);  %原始数据累加
n=length(A);
for i=1:(n-1)C(i)=(B(i)+B(i+1))/2; %生成累加矩阵
end
%计算待定参数的值
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
%预测后续数据
F=[];F(1)=A(1);
for i=2:(n+10)  %只推测后10个数据,可以从此修改F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+10)  %只推测后10个数据,可以从此修改G(i)=F(i)-F(i-1);  %得到预测出来的数据
end
t1=1999:2008;
t2=1999:2018;  %多10组数据
G
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较
set(h,'LineWidth',1.5);    

预测数据与原始数据的比较,运行结果,其中圈代表原始数据,线是预测数据拟合的结果,想看每年对应的实际数据看矩阵G值,MATLAB有输出在command window里:

下面为说明该程序的模板作用,举例说明CUMCM2005A题 长江水质的预测,其中1995年到2004年的长江污水排放数据如下:

1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
174 179 183 189 207 234 220.5 256 270 285

代码和上一样,只是数据区改了,功能是预测长江未来10年的水质情况。

代码:

clc,clear;
syms a b;
c=[a b]';
<span style="color:#ff0000;"><strong>A=[174,179,183,189,207,234,220.5,256,270,285];</strong></span>
B=cumsum(A);  %原始数据累加
n=length(A);
for i=1:(n-1)C(i)=(B(i)+B(i+1))/2; %生成累加矩阵
end
%计算待定参数的值
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
%预测后续数据
F=[];F(1)=A(1);
for i=2:(n+10)  %只推测后10个数据,可以从此修改F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+10)  %只推测后10个数据,可以从此修改G(i)=F(i)-F(i-1);  %得到预测出来的数据
end
t1=1995:2004;
t2=1995:2014;  %多10组数据
G
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较
set(h,'LineWidth',1.5);    

预测结果:

灰色预测的MATLAB程序相关推荐

  1. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf

    利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...

  2. 灰色相关性matlab程序,灰色关联度分析MATLAB程序

    <灰色关联度分析MATLAB程序>由会员分享,可在线阅读,更多相关<灰色关联度分析MATLAB程序(2页珍藏版)>请在人人文库网上搜索. 1.x(1,:)=83 0.191 1 ...

  3. 灰色预测(MATLAB)

    本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 一.案例背景 二.基 ...

  4. 灰色预测法 —— matlab

    目录 1.简介 2.算法详解 2.1 生成累加数据 2.2  累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据 ...

  5. 灰色关联度分析,灰色预测——基于matlab

    1.引言 灰色系统理论建模的主要任务是根据具体灰色系统的行为特征数据,利用不多的数据中的显信息和隐信息,寻找因素间或因素本身的数学关系 2. 灰色关联度分析 背景: 通过对某健将级女子铅球运动员的跟踪 ...

  6. 美国人口预测问题 MATLAB程序_BeansSuperman_新浪博客

    下表给出的是近两个世纪的美国人口统计数据(以百万为单位),对模型做检验,最后用它预报2010年美国的人口. 年份 1790 1800 1810 1820 1830 1840 人口 3.9 5.3 7. ...

  7. matlab预测缺失,matlab数据缺失预测

    matlab 建立多元线性回归模型并进行显著性检验及预测问题例子; x=[143... 灰色预测模型的MATLAB 程序及检验程序_电子/电路_工程科技_专业资料.灰色预测模型的 Matlab 程序及 ...

  8. 灰色关联度矩阵——MATLAB在数学建模中的应用

    灰色预测及其MATLAB实现(一) 灰色预测是一种常规的预测手段,具有操作简便,所需数据量少等优点,一般只需有4个数据就可以进行预测. 灰色预测是基于灰色系统理论的预测方法.灰色系统由我国著名学者邓聚 ...

  9. matlab中的灰色预测,灰色预测MATLAB程序

    <灰色预测MATLAB程序>由会员分享,可在线阅读,更多相关<灰色预测MATLAB程序(11页珍藏版)>请在人人文库网上搜索. 1.实用标准文档灰色预测彷设曲七叫L叫耳/叫励 ...

最新文章

  1. python加上子类的特性_Python--面向对象三大特性
  2. java的类型默认存储类型_java 问题:保存对话框的默认文件类型?
  3. Asp.net 请求中变量的保存方式
  4. 使用Eclipse构建Maven项目 (step-by-step)
  5. LeetCode 157. 用 Read4 读取 N 个字符
  6. mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
  7. IDEA :Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
  8. 剑指offer面试题68 - II. 二叉树的最近公共祖先(递归)
  9. matlab 正态分布相关 API
  10. 防火墙是linux配置,linux配置iptables防火墙
  11. php实现mysql查询_PHP如何实现MYSQL查询功能
  12. 2015年度精品 最新力作32位和64位xp,win7,win8,win10系统下载(电脑城专用版)
  13. 计算机软件退税,软件企业2021增值税退税
  14. 微信推送早安教程(一)
  15. 华为mate50会用鸿蒙系统吗,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
  16. 常用数列总结性质记录
  17. 教育企业邮箱购买哪个好用,还有英文邮件系统?
  18. Windows rundll32的用法-脚本命令管理打印机
  19. Cubieboard2折腾手记(一)
  20. 国外大学计算机mac,美国大学教授发现一台30多年前苹果电脑 还能正常运行

热门文章

  1. e1000网络驱动分析
  2. REVIT建模步骤中:绘制形状不能拾取两条参照平面的交点解决方法
  3. 基于边缘检测和透视变换的文档图像校正
  4. EMV技术学习和研究(九)终端行为分析
  5. Windows PowerShell 实战指南-附录(复习实验)-实验回顾1
  6. Echarts 开源,免费商用图表控件使用整理
  7. html怎么设置页面最小像素,html px像素单位
  8. 安装VMware的VM Tools
  9. 线性代数——分块矩阵计算行列式的方法
  10. MCUXpresso开发RT1060(1)——使用RGB接口LCD