灰色预测的主要特点是模型使用的不是原始数据序列,而是生成的数据序列。其核心体系是灰色模型(Grey Model,简称GM),即对原始数据作累加生成(或其它方法生成)得到近似的指数规律再进行建模的方法。

灰色系统的特点:

     1.数据量太少,不足以用神经网络或者回归等模型

     2.数据及其时间是已知的

     3.数据和时间之间存在内在联系

     4.具体函数关系未知

     5.短期预测(用于预测接下来的几个时间段的数据)

GM(1,1)表示模型是1阶微分方程,且只含1个变量的灰色模型。

GM(2,1)表示模型是2阶微分方程,且只含1个变量的灰色模型。

GM(1,1)适合于指数规律较强的序列,只能描述单调变化过程。对于具有一定随机波动性的序列,我们考虑使用Verhulst预测模型,或者GM(2,1)模型。

Verhulst和GM(2,1)适合于非单调的摆动发展序列或者具有饱和状态的 S 形序列。

下面做二者的对比:

已知序列:

分别建立GM(1,1)、GM(2,1)模型进行预测

①GM(1,1)模型

clc,clear
x0=[2.874 3.278 3.39 3.679 3.77 3.8]';
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=B\Y                                    %拟合参数u(1)=a,u(2)=b
x=dsolve('Dx+a*x=b','x(0)=x0');          %求微分方程的符号解
x=subs(x,{'a','b','x0'},{u(1),u(2),x0(1)}); %代入估计参数值和初始值
yuce1=subs(x,'t',[0:n-1]);               %求已知数据的预测值
y=vpa(x,6)                                %其中的6表示显示6位数字
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'    %计算级比偏差值,u(1)=a

输出为:

可见该模型达到较高的要求

预测第7个数据:

82.4747*exp(0.0393139*6) - 79.6007-(82.4747*exp(0.0393139*5) - 79.6007)

输出结果:

②GM(2,1)模型

clc,clear;
x0=[2.874 3.278 3.39 3.679 3.77 3.8];
n=length(x0);
x1=cumsum(x0)   %计算1次累加序列
a_x0=diff(x0)' %计算1次累减序列
z=0.5*(x1(2:end)+x1(1:end-1))';%计算矩阵序列
B=[-x0(2:end)',-z,ones(n-1,1)];
u=B\a_x0   %最小二乘法拟合参数
syms x(t)
x=dsolve(diff(x,2)+u(1)*diff(x)+u(2)*x==u(3),x(0)==x1(1),x(5)==x1(6));%求符号解
xt=vpa(x,6)
yuce=subs(x,t,0:n-1);     %求已知数据点1次累加序列的预测值
yuce=double(yuce)      %显示6位数字的符号解       得到的y可以用来预测
x0_hat=[yuce(1),diff(yuce)];    %求已知数据点的预测值
x0_hat=round(x0_hat)      %四舍五入取整数
epsilon=x0-x0_hat   %求残差
delta=abs(epsilon./x0)  %求相对误差

输出为:

可见该模型达到较高的要求

预测第7个数据

38.8692*exp(0.0787376*6) - 0.0398091*exp(0.617978*6) - 35.9554-(38.8692*exp(0.0787376*5) - 0.0398091*exp(0.617978*5) - 35.9554)

输出结果:

Matlab灰色预测GM(1,1)和GM(2,1)对比相关推荐

  1. MATLAB灰色预测

    一.灰色预测 1.灰色系统下的灰色预测 <1>什么是灰色系统? 所谓的灰色系统其实就是夹杂在白色系统和黑色系统之中的一种系统,而白色系统就是全部信息已知的系统,黑色系统就是全部信息未知的系 ...

  2. matlab灰色预测弱化代码,灰色预测模型介绍及MATLAB代码实现

    灰色预测模型介绍及MATLAB代码实现 灰色预测模型介绍及MATLAB代码实现 文章目录 1. 按 2. 灰色模型介绍 3. 精度检验等级参照表 4. matlab代码 5. 实验数据 5.1. 测试 ...

  3. matlab 灰色预测(有点离谱)

    灰色预测 clc,clear; close all; syms a u; c=[a,u]';%构成矩阵 A=[2006 1138 993 1027 1155 1175 1299 1786 1781 1 ...

  4. 灰色预测方法预测温度matlab,灰色预测matlab代码怎么写

    这是我曾经写过的一个灰色预测的程序:第一个文件为函数,需要在调用时输入原始数据x0和预测周期T, 第二个文件用于计算灰色关联度,使用时直接修改相关参数和原始数据. ------------------ ...

  5. matlab——灰色预测

    @数学建模 数学建模--灰色预测 灰色预测理论 灰色理论认为信息不完全系统的行为现象尽管是朦胧的,数据是复杂的,但它具备一定的潜在规律,是有整体功能的.灰色预测就是从杂乱中寻找出规律,从而对系统进行预 ...

  6. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf

    利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...

  7. 「 数学模型 」“灰色预测GM(1,1)模型原理及Matlab实例”讲解

    一.前言 小白将使用的灰色预测模型的Matlab代码贴在下面,代码使用了灰色模型进行两次回归预测,缺点是精度不高,预测后的残差有点大. 灰色预测模型主要内容: GM(1,1)模型(1阶1个影响因素): ...

  8. 灰色关联以及灰色预测GM(1,n),GM(1,1)模型(Python实现)

    **灰色关联以及灰色预测GM(1,n),GM(1,1)模型** 简介:本篇文章简单的介绍灰色关联以及灰色预测模型,使用python代码进行实现. 1. 灰色系统的概论 2. 关于灰色关联度那些事 3. ...

  9. gm 1 n 模型matlab,灰色预测模型GM1,n模型的matlab源...

    2021-02-22 15:01齐春春 客户经理 function GM1_1(X0) %format long ; [m,n]=size(X0); X1=cumsum(X0); %累加 X2=[]; ...

最新文章

  1. 开发者必备的15 个Web开发工具
  2. 十四、linux 静态/动态申请字符设备号
  3. 【排序】归并类排序—归并排序(逆序数问题)
  4. Java TCP/IP Socket 编程 笔记
  5. 怎么在java上运行服务器,用java做了一个简单的定时任务工程,不知道如何让它在服务器上运行起来?应该怎样做???...
  6. Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...
  7. Lua中调用C/C++函数 (转)
  8. 【转】使用C语言实现MD5消息摘要算法
  9. malloc函数用法
  10. atitit.提升软件开发效率大的总结O5
  11. 数据挖掘导论 第四章 重点习题解答
  12. 步进电机驱动器电压是多少?
  13. PTX ISA 7.4 参考手册翻译
  14. 0CTF-babyheap2017祥讲
  15. javaSE (十六)Randon、System类的方法(生成随机数、主动垃圾回收、终止jvm、对程序进行记时、System自带的复制数组的方法)
  16. java——char类型以及Character
  17. 太极计算机 杨振,杨振基传太极拳内功心法
  18. 科大讯飞AI营销云广告投放数据分析报告【实战总结】
  19. iostream 代表着什么意思?
  20. vue-pdf实现预览pdf文件以及含有电子印章的pdf文件

热门文章

  1. 问题 : 导弹防御系统
  2. python资本市场财务数据分析_史上最全的上市公司财务数据
  3. swustoj289消灭老鼠-利用队列解决简单的约瑟夫环
  4. Design Compiler (三)——DC综合的流程
  5. java -jar xxx.jar设置JVM参数问题
  6. SSL证书生成,签名,验证
  7. 世界那么大,你要去看看!
  8. 做短视频的必备工具和素材网,一部手机就能做,稳定收益200多
  9. 深圳java工资一般多少,学习路线+知识点梳理
  10. Android 模拟按键,模拟触摸点击,模拟滑动