灰色预测的MATLAB程序
灰色预测适用于小样本的预测,常用来解决一些不确定性的问题。
理论知识书上都有介绍,下面仅列出程序设计,同时方便自己比赛。
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程序相关推荐
- 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf
利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...
- 灰色相关性matlab程序,灰色关联度分析MATLAB程序
<灰色关联度分析MATLAB程序>由会员分享,可在线阅读,更多相关<灰色关联度分析MATLAB程序(2页珍藏版)>请在人人文库网上搜索. 1.x(1,:)=83 0.191 1 ...
- 灰色预测(MATLAB)
本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 一.案例背景 二.基 ...
- 灰色预测法 —— matlab
目录 1.简介 2.算法详解 2.1 生成累加数据 2.2 累加后的数据表达式 2.3 求解2.2的未知参数 3.实例分析 3.1 导入数据 3.2 进行累加数据 3.3 求解系数 3.4 预测数据 ...
- 灰色关联度分析,灰色预测——基于matlab
1.引言 灰色系统理论建模的主要任务是根据具体灰色系统的行为特征数据,利用不多的数据中的显信息和隐信息,寻找因素间或因素本身的数学关系 2. 灰色关联度分析 背景: 通过对某健将级女子铅球运动员的跟踪 ...
- 美国人口预测问题 MATLAB程序_BeansSuperman_新浪博客
下表给出的是近两个世纪的美国人口统计数据(以百万为单位),对模型做检验,最后用它预报2010年美国的人口. 年份 1790 1800 1810 1820 1830 1840 人口 3.9 5.3 7. ...
- matlab预测缺失,matlab数据缺失预测
matlab 建立多元线性回归模型并进行显著性检验及预测问题例子; x=[143... 灰色预测模型的MATLAB 程序及检验程序_电子/电路_工程科技_专业资料.灰色预测模型的 Matlab 程序及 ...
- 灰色关联度矩阵——MATLAB在数学建模中的应用
灰色预测及其MATLAB实现(一) 灰色预测是一种常规的预测手段,具有操作简便,所需数据量少等优点,一般只需有4个数据就可以进行预测. 灰色预测是基于灰色系统理论的预测方法.灰色系统由我国著名学者邓聚 ...
- matlab中的灰色预测,灰色预测MATLAB程序
<灰色预测MATLAB程序>由会员分享,可在线阅读,更多相关<灰色预测MATLAB程序(11页珍藏版)>请在人人文库网上搜索. 1.实用标准文档灰色预测彷设曲七叫L叫耳/叫励 ...
最新文章
- python加上子类的特性_Python--面向对象三大特性
- java的类型默认存储类型_java 问题:保存对话框的默认文件类型?
- Asp.net 请求中变量的保存方式
- 使用Eclipse构建Maven项目 (step-by-step)
- LeetCode 157. 用 Read4 读取 N 个字符
- mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
- IDEA :Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
- 剑指offer面试题68 - II. 二叉树的最近公共祖先(递归)
- matlab 正态分布相关 API
- 防火墙是linux配置,linux配置iptables防火墙
- php实现mysql查询_PHP如何实现MYSQL查询功能
- 2015年度精品 最新力作32位和64位xp,win7,win8,win10系统下载(电脑城专用版)
- 计算机软件退税,软件企业2021增值税退税
- 微信推送早安教程(一)
- 华为mate50会用鸿蒙系统吗,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
- 常用数列总结性质记录
- 教育企业邮箱购买哪个好用,还有英文邮件系统?
- Windows rundll32的用法-脚本命令管理打印机
- Cubieboard2折腾手记(一)
- 国外大学计算机mac,美国大学教授发现一台30多年前苹果电脑 还能正常运行