优化GM(1,1)
主要的改进手段:优化微分方程的初始条件
data = csvread('D:\matlab2016a\demo\data\air.csv');
num = size(data,1);
predictnum = 6;
train = data(1:num-predictnum,:);
test = data((num-predictnum+1):end,:);
Y = train(2:end,:);
for i = 1:size(train,1)
X(i,:) = sum(train(1:i,:));
end
for j = 2:size(X,1)
Z(j-1,:) = (X(j,:)+X(j-1,:))/2;
end
B = [-Z,ones(size(Z,1),1)];
ab = inv(B'*B)*B'*Y;
a = ab(1,:);
b = ab(2,:);
for i = 2:num
predict(i-1,:) = (X(end,:)-b/a)*(1-exp(a))*exp(-a*(i-size(train