• Home
  • About
    • shawvey photo

      shawvey

      在写bug比赛中荣获第一名🐛

    • Learn More
    • Email
    • Twitter
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Notes

灰色预测及其MATLAB实现

23 Jan 2018

Reading time ~4 minutes

本文目录🧾

  • 一、灰色预测模型
  • 二、长江水质的预测
  • 三、预测与会代表人数

正文部分📝

一、灰色预测模型










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,'bo',t2,G)      %原始数据与预测数据的比较


二、长江水质的预测

因为数据样本少,需要预测时间长,污水排放量的变化规律不确定,所以使用灰色预测模型。
改数据运行:

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
plot(t1,A,'bo',t2,G)      %原始数据与预测数据的比较

三、预测与会代表人数

该题要求为会议筹备组制定一个预定宾馆客房、租借会议室、租用客车的合理方案。为了解决这个问题,需要先预测与会代表的人数。预测依据是前几年的与会人员数据。
这里是需要计算未知与会率:

clear
syms a b;
c=[a,b]';
A=[0.180952,0.193820,0.183824,0.146273];
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';
%预测后续数据
F=[];F(1)=A(1);
for i=2:(n+1)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+1)
    G(i)=F(i)-F(i-1);      %得到预测出来的数据
end
G


预测第五届未知与会率为0.1331。



matlab Share Tweet +1