%灰度模型:根据去年销量的实际数据,来预测去年同期销售量汇总
%设定系数:发展系数(dev)和灰度作用量( Grey)
syms dev Grey;
newSeque = [dev Grey]';
% 写入数据,得到初始数列firstSeque
firstSeque = [6820,9484,6341,6329];
len= length(firstSeque);
%累加firstSeque,得到累加数列sumSeque
sumSeque = cumsum(firstSeque);
%使用sumSeque进行紧邻均值生产,得到邻值生产矩阵adjSeque
for i = 2:len
adjSeque(i) = (sumSeque(i) + sumSeque(i - 1))/2;
end
adjSeque(1) = [];
%构造数据矩阵DateMatrix
sumSeque = [-adjSeque;ones(1,len-1)];
DateMatrix = firstSeque; DateMatrix(1) = []; DateMatrix = DateMatrix';
%使用最小二乘法估算系数dev和Grey
newSeque = inv(sumSeque*sumSeque')*sumSeque*DateMatrix;
newSeque = newSeque';
dev = newSeque(1);
Grey = newSeque(2);
%预测未来数据,通过不定积分,获得未来数列futrSeque
futrSeque = []; futrSeque(1) = firstSeque(1);
for i = 2:(len+5)
futrSeque(i) = (firstSeque(1)-Grey/dev)/exp(dev*(i-1))+ Grey/dev;
end
%累加还原futrSeque,得到最终预测数据数列predtSeque
predtSeque = []; predtSeque(1) = firstSeque(1);
for i = 2:(len+5)
predtSeque(i) = futrSeque(i) - futrSeque(i-1);
end
%输出预测数据数列predtSeque
predtSeque