0.代码链接
基于灰色预测模型的负荷预测(matlab程序)资源-CSDN文库
1.简述
灰色预测是一种对含有不确定因素的系统进行预测的方法。灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势的状况。其用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模型,预测未来某一时刻的特征量,或达到某一特征量的时间。
我们先简单说明一下模型成立的前提,灰色理论认为一个系统的行为现象虽然是朦胧的,数据是复杂的,但是他一定会包含一定的规律在其中,如果你了解过傅里叶,那么你可以很轻松的理解一个系统暗含规律的情况。灰数的生成就是为了从杂乱的数据中找到规律。因此灰色模型所用的数据是生成数据而非原始数据。
2.部分代码
%% 灰色模型
Result2=ones(1,9);
E2=ones(1,9);
for i=1:9
T=[S(11,7),S(12,7),S(13,7),S(14,7),S(15,7),S(16,7),S(17,7),S(18,7),S(19,7)];
A=[S(i,7),S(i+1,7),S(i+2,7),S(i+3,7),S(i+4,7),S(i+5,7),S(i+6,7),S(i+7,7),S(i+8,7),S(i+9,7)];
syms a u;
c=[a,u]';
Ago=cumsum(A);
n=length(A);
for k=1:(n-1)
Z(k)=(Ago(k)+Ago(k+1))/2;
end
Yn =A;%Yn为常数项向量
Yn(1)=[]; %从第二个数开始,即x(2),x(3)...
Yn=Yn';
E=[-Z;ones(1,n-1)]';%累加生成数据做均值
c=(E'*E)\(E'*Yn);%利用公式求出a,u
c= c';
a=c(1);%得到a的值
u=c(2);%得到u的值
F=[];
F(1)=A(1);
。。。。。
3.运行结果