灰色预测适用于小样本的预测,常用来解决一些不确定性的问题。
理论知识书上都有介绍,下面仅列出程序设计,同时方便自己比赛。
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