//目录

灰度预测

灰度预测

首先说,为啥要引出这个灰度预测,其实也就是在拟合的时候,效果不理想的一种另外的处理方案。

 

做灰度预测的步骤

 

P401,主要讨论G(1,1)模型

什么是G(1,1) 模型式一阶微分方程,且只含有1个变量的灰色模型。

 

举个栗子:

利用G(1,1) 模型预测某个城市道路交通噪声平均声级数。

 

数据的检验和处理

clc,clear;
x0 = [71.1 72.4 72.4 72.1 71.4 72.0 71.6]';
n = length(x0);
lamda = x0(1:n-1)./x0(2:n);     % 级比
range = minmax(lamda');
​
x1 = cumsum(x0);        % 累加
​
% 构造矩阵
B = [-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
Y = x0(2:n);
​
% 公式计算,u(1) = a,u(2) = b
u = B\Y;

 


 

建立模型

嘿嘿,重点建模来了!!!

 

对其求解,公式好复杂!!!

 

注意哦,这里的x(1) 是预测值,符号打不出来了。然后疯狂代入k值就行了。

检验预测值

  • 残差检验

  • 相对误差

  • 级比偏差

预测预报

 

 

附录

matlab程序


clc,clear;
x0 = [71.1 72.4 72.4 72.1 71.4 72.0 71.6]';
n = length(x0);
lamda = x0(1:n-1)./x0(2:n);     % 级比
range = minmax(lamda');
​
x1 = cumsum(x0);        % 累加
​
% 构造矩阵
B = [-0.5*(x1(1:n-1)+x1(2:n)),ones(n-1,1)];
Y = x0(2:n);
​
% 公式计算,u(1) = a,u(2) = b
u = B\Y;
​
% 微分方程预测
syms x(t)
x = dsolve( diff(x)+u(1)*x ==u(2) ,x(0) ==x0(1) );
xt = vpa(x,6);
yuce1 = subs(x,t,[0:n-1]);
yuce1 = double(yuce1);
yuce = [x0(1),diff(yuce1)];
​
%校验
epsilon = x0'-yuce;
delta = abs(epsilon./x0');
rho = 1 - (1-0.5*u(1)) / (1+0.5*u(1))*lamda';
 

 

 

好啦,G(1,1)模型ok了,但是你可以从他的表达式看出他是具有较强指数规律的序列,对于非单调的摆动序列和有饱和的S序列,采用G(2,1)模型。预测过程也是一样的。

 

 

posted @ 2018-01-10 14:53  小草的大树梦  阅读(1533)  评论(0编辑  收藏  举报