灰色预测

灰度预测

历届 CUMCM 数据预测题目
在这里插入图片描述
有些问题则是需要在求解的过程中进行数据预测,如2009年 CUMCM D 题“会议筹备” 对与会人数的确定等。灰色模型(gray model,又称灰色理论)有严格的理论基础,最大优点是 实用。用灰色模型预测的结果比较稳定,不仅适用于大数据量的预测,在数据量较少时(数据 只要多于3个即可)预测结果依然较准确。

灰色预测的核心知识

  • 灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是 有整体功能的。
  • 原始数据进行预处理,不是寻求它的统计规律和概率分布,而 是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型(微分方程模型).

GM(1,1)一阶线性微分方程模型

在这里插入图片描述在这里插入图片描述在这里插入图片描述

灰色预测的Matalab实现

典型程序

在这里插入图片描述

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)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;
end
G=[];G(1)=A(1);
for i=2:(n+10)
    G(i)=F(i)-F(i-1); %得到预测出来的数据
end 
t1=1999:2008;
t2=1999:2018;
G
plot(t1,A,'o',t2,G)  %原始数据与预测数据的比较
xlabel('年份')
ylabel('利润')


完整运算的代码

function [ G ] = GM( A,num )
%灰度预测模型函数 兰勇,2018.7.20
%   A为原始序列,num为预测数目,G为各预测值
 
syms a b;
c=[a b]';%发展系数和灰作用量
B=cumsum(A);  %生成累加序列
n=length(A);
 
for i=2:n
    P(i)=A(i)/B(i-1); %光滑性检验
    Q(i)=B(i)/B(i-1); %准指数性检验
end
 
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+num)  %推测之后的num个一次累加序列
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
 
G=[];G(1)=A(1);
for i=2:(n+num)  %推测之后的num个原始序列
    G(i)=F(i)-F(i-1);
end
 
%残差计算
for i=1:n  %推测之后的num个原始序列
    s(i)=abs(A(i)-G(i));
end
sum(s)/n;
 
%图像可视化
t1=1:n;
t2=1:n+num;
G;
h=plot(t1,A,'o',t2,G,'-'); %原始数据与预测数据的比较
set(h,'LineWidth',1.5); 
 
end

在这里插入图片描述

clear
syms a b;
c=[a b]';
A=[174	179	183	189	207 234	220.5 256	270	285];
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)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a ;
end
G=[];G(1)=A(1);
for i=2:(n+10)
    G(i)=F(i)-F(i-1); %得到预测出来的数据
end 
t1=1995:2004;
t2=1995:2014;
G, a, b % 输出预测值,发展系数和灰色作用量
plot(t1,A,'o',t2,G)  %原始数据与预测数据的比较

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值