Skip to content

Latest commit

 

History

History
90 lines (82 loc) · 2.41 KB

灰色预测模型.md

File metadata and controls

90 lines (82 loc) · 2.41 KB

前言

灰色系统 是指 “ 部分信息已知, , 部分信息未知 ” 的 “ 小样本 ” ,“ 贫信息 ” 的不确定性系统, , 它通过对 “ 部分 ” 已知信息的生成 、 开发去了解 、 认识现实世 界 , 实现对系统运行行为和演化规律的正确把握和描 述. 灰色系统模型的 特点 : 对试验观测数据及其分布 没有特殊的要求和限制 , 是一种十分简便的新理论 , 具有十分宽广的应用领域.

究内容主要包括 : 灰色系统 建模理论 、 灰色系统控制理论 、 灰色关联分析方法 、 灰色预测方法 、 灰色规划方法 、 灰色决策方法等 。 我们主要介绍灰色GM(1,1) 模型预测 。 即灰色生成 、 GM(1,1) 模型建模机理 、GM(1,1)

GM(1,1)预测过程:

1.累加生成数 (1-AGO )一次累加生成 记原始序列为 $ X^{(0)} = {x^{(0)}(1),x^{(0)}(2),...,x^{(0)}(n)}$ 一次累加生成序列为 $ X^{(1)} = {x^{(1)}(1),x^{(1)}(2),...,x^{(1)}(n)}$ 其中 $ x^{(1)}(k) = sum^{k}_{i=0} x^{(0)}(i) = x^{(1)}(k-1)+x^{(0)}(k) $

2.累减生成数(IAGO) 是累加生成的逆运算 记原始序列为$ X^{(1)} = {x^{(1)}(1),x^{(1)}(2),...,x^{(1)}(n)}$ 一次累减生成序列$ X^{(0)} = {x^{(0)}(1),x^{(0)}(2),...,x^{(0)}(n)}$ 其中 $ x^{(0)}(k) = x^{(1)}(k)-x^{(1)}(k-1) $ 规定 $ x^{(1)}(0) = 0 $

GM11模型matlab实现代码

function [y,c]=mygm11(X,s)
%对一维序列X作s阶预测,c为后验差
X=X(:);Y=AGO(X);
Z=LJJZ(Y);alpha=CSGJ(Z,X);
Y=YUCE(X,alpha,s);
y = IAGO(Y)';
[~,c]=WUCHA(X,y);
figure('name','灰色预测');plot(X);
hold on ;plot(y,'*');
legend('原序列','预测序列');hold off;
end

%% 累加生成数
function Y=AGO(X)
s=0;
for i=1:length(X)
    s=s+X(i);
   Y(i) = s;
end
end
%% 累减生成序列
function X = IAGO(Y)
X(1)=Y(1);
for i=2:length(Y)
   X(i)=Y(i)-Y(i-1);
end
end
%% 紧邻均值,比原序列少一个
function Z=LJJZ(Y)
for i=2:length(Y)
    Z(i-1)=0.5*(Y(i-1)+Y(i));
end
end
%% 参数估计 计算参数α、μ矩阵
function alpha=CSGJ(Z,X)
Z = Z(:);X=X(:);
B = [-Z,ones(size(Z))];
Y = X(2:end);
alpha=inv(B'*B)*B'*Y;
end
%% 预测得到延长的累加生成数
function Y=YUCE(x,alpha,s)
for i=1:length(x)+s
    Y(i)=(x(1)-alpha(2)/alpha(1))*exp(-alpha(1)*(i-1))+alpha(2)/alpha(1);
end
end
%% 残差以及后验差比值
function [err,c]=WUCHA(X,Y)
X=X(:);Y=Y(:);
err = X-Y(1:length(X));
c=std(err)/std(X);
end