灰色理论预测模型

灰色理论

通过对原始数据的处理挖掘系统变动规律,建立相应微分方程,从而预测事物未来发展状况。 
优点:对于不确定因素的复杂系统预测效果较好,且所需样本数据较小; 
缺点:基于指数率的预测没有考虑系统的随机性,中长期预测精度较差。

灰色预测模型

在多种因素共同影响且内部因素难以全部划定,因素间关系复杂隐蔽,可利用的数据情况少下可用,一般会加上修正因子使结果更准确。 
灰色系统是指“部分信息已知,部分信息未知“的”小样本“,”贫信息“的不确定系统,以灰色模型(G,M)为核心的模型体系。

灰色预测模型建模机理

灰色系统理论是基于关联空间、光滑离散函数等概念,定义灰导数与会微分方程,进而用离散数据列建立微分方程形式的动态模型。

灰色预测模型实验

以sin(pi*x/20)函数为例,以单调性为区间检验灰色模型预测的精度 
这里写图片描述
这里写图片描述

通过实验可以明显地看出,灰色预测对于单调变化的序列预测精度较高,但是对波动变化明显的序列而言,灰色预测的误差相对比较大。究其原因,灰色预测模型通过AGO累加生成序列,在这个过程中会将不规则变动视为干扰,在累加运算中会过滤掉一部分变动,而且由累加生成灰指数律定理可知,当序列足够大时,存在级比为0.5的指数律,这就决定了灰色预测对单调变化预测具有很强的惯性,使得波动变化趋势不敏感。

本文所用测试代码:
  1 clc
  2 clear all
  3 % 本程序主要用来计算根据灰色理论建立的模型的预测值。
  4 % 应用的数学模型是 GM(1,1)。
  5 % 原始数据的处理方法是一次累加法。
  6 x=[0:1:10];
  7 x1=[10:1:20];
  8 x2=[0:1:20];
  9 y=sin(pi*x/20);
 10 n=length(y);
 11 yy=ones(n,1);
 12 yy(1)=y(1);
 13 for i=2:n
 14     yy(i)=yy(i-1)+y(i);
 15 end
 16 B=ones(n-1,2);
 17 for i=1:(n-1)
 18     B(i,1)=-(yy(i)+yy(i+1))/2;
 19     B(i,2)=1;
 20 end
 21 BT=B';
 22 for j=1:n-1
 23     YN(j)=y(j+1);
 24 end
 25 YN=YN';
 26 A=inv(BT*B)*BT*YN;
 27 a=A(1);
 28 u=A(2);
 29 t=u/a;
 30 t_test=5;  %需要预测个数
 31 i=1:t_test+n;
 32 yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
 33 yys(1)=y(1);
 34 for j=n+t_test:-1:2
 35     ys(j)=yys(j)-yys(j-1);
 36 end
 37 x=1:n;
 38 xs=2:n+t_test;
 39 yn=ys(2:n+t_test);
 40 det=0;
 41 for i=2:n
 42     det=det+abs(yn(i)-y(i));
 43 end
 44 det=det/(n-1);
 45 
 46 subplot(2,2,1),plot(x,y,'^r-',xs,yn,'b-o'),title('单调递增' ),legend('实测值','预测值');
 47 disp(['百分绝对误差为:',num2str(det),'%']);
 48 disp(['预测值为: ',num2str(ys(n+1:n+t_test))]);
 49 
 50 
 51 %递减
 52 y1=sin(pi*x1/20);
 53 n1=length(y1);
 54 yy1=ones(n1,1);
 55 yy1(1)=y1(1);
 56 for i=2:n1
 57     yy1(i)=yy1(i-1)+y1(i);
 58 end
 59 B1=ones(n1-1,2);
 60 for i=1:(n1-1)
 61     B1(i,1)=-(yy1(i)+yy1(i+1))/2;
 62     B1(i,2)=1;
 63 end
 64 BT1=B1';
 65 for j=1:n1-1
 66     YN1(j)=y1(j+1);
 67 end
 68 YN1=YN1';
 69 A1=inv(BT1*B1)*BT1*YN1;
 70 a1=A1(1);
 71 u1=A1(2);
 72 t1=u1/a1;
 73 t_test1=5;  %需要预测个数
 74 i=1:t_test1+n1;
 75 yys1(i+1)=(y1(

转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/6721913.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值