文章目录

  • 1. 按
  • 2. 灰色模型介绍
  • 3. 精度检验等级参照表
  • 4. matlab代码
  • 5. 实验数据
    • 5.1. 测试一
    • 5.2. 测试二

1. 按

灰色预测模型\color{red}灰色预测模型灰色预测模型(Gray Forecast Model)是一种基于小样本数据进行预测的模型。灰色预测模型所需建模信息少,运算方便,建模精度高,在各种预测领域都有着广泛的应用,是处理小样本预测问题的有效工具。

2. 灰色模型介绍

灰色预测模型\color{red}灰色预测模型灰色预测模型(Gray Forecast Model)是通过少量的不完全的信息,建立数学模型并做出预测的一种预测方法。当我们应用运筹学的思想方法解决实际问题,制定发展战略和政策、进行重大问题的决策时,都必须对未来进行科学的预测。预测是根据客观事物的过去和现在的发展规律,借助于科学的方法对其未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断。
灰色系统理论是研究解决灰色系统分析、建模、预测、决策和控制的理论。灰色预测是对灰色系统所做的预测。目前常用的一些预测方法(如回归分析等),需要较大的样本.若样本较小,常造成较大误差,使预测目标失效。灰色预测模型所需建模信息少,运算方便,建模精度高,在各种预测领域都有着广泛的应用,是处理小样本预测问题的有效工具。
灰色系统理论是由华中理工大学邓聚龙教授于1982年提出并加以发展的。二十几年来,引起了不少国内外学者的关注,得到了长足的发展。目前,在我国已经成为社会、经济、科学技术在等诸多领域进行预测、决策、评估、规划控制、系统分析与建模的重要方法之一。特别是它对时间序列短、统计数据少、信息不完全系统的分析与建模,具有独特的功效,因此得到了广泛的应用。
灰色系统是黑箱概念的一种推广。我们把既含有已知信息又含有未知信息的系统称为灰色系统。作为两个极端,我们将称信息完全未确定的系统为黑色系统;称信息完全确定的系统为白色系统。区别白色系统与黑色系统的重要标志是系统各因素之间是否具有确定的关系。

3. 精度检验等级参照表

模型精度等级 均方差比值C
1级(好) C<=0.35
2级(合格) 0.35<C<=0.5
3级(勉强) 0.5<C<=0.65
4级(不合格) 0.65<C

4. matlab代码

function []=greymodel(y)
% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是 GM(1,1)。
% 原始数据的处理方法是一次累加法。
y=input('请输入数据 ');
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:nyy(i)=yy(i-1)+y(i);
end
B=ones(n-1,2);
for i=1:(n-1)B(i,1)=-(yy(i)+yy(i+1))/2;B(i,2)=1;
end
BT=B';
for j=1:n-1YN(j)=y(j+1);
end
YN=YN';
A=inv(BT*B)*BT*YN;
a=A(1);
u=A(2);
t=u/a;
i=1:n+2;
yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
yys(1)=y(1);
for j=n+2:-1:2ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+2;
yn=ys(2:n+2);
plot(x,y,'^r',xs,yn,'*-b');
det=0;sum1=0;
sumpe=0;
for i=1:nsumpe=sumpe+y(i);
end
pe=sumpe/n;
for i=1:n;sum1=sum1+(y(i)-pe).^2;
end
s1=sqrt(sum1/n);
sumce=0;
for i=2:nsumce=sumce+(y(i)-yn(i));
end
ce=sumce/(n-1);
sum2=0;
for i=2:n;sum2=sum2+(y(i)-yn(i)-ce).^2;
end
s2=sqrt(sum2/(n-1));
c=(s2)/(s1);
disp(['后验差比值为:',num2str(c)]);
if c<0.35disp('系统预测精度好')
else if c<0.5disp('系统预测精度合格')else if c<0.65disp('系统预测精度勉强')elsedisp('系统预测精度不合格')endend
enddisp(['下个拟合值为 ',num2str(ys(n+1))]);
disp(['再下个拟合值为',num2str(ys(n+2))]);

5. 实验数据

5.1. 测试一

  • 录入的数据:

    [724.57, 746.62, 778.27, 800.8, 827.75,871.1, 912.37, 954.28, 995.01, 1037.2]
    
    • 1
  • 命令行结果:
    run(‘D:\0COCO\Sys\Documents\MATLAB\gray.m’)
    请输入数据
    [724.57, 746.62, 778.27, 800.8, 827.75,871.1, 912.37, 954.28, 995.01, 1037.2]
    后验差比值为:0.067811
    系统预测精度好
    下个拟合值为 1079.3804
    再下个拟合值为1125.6546
  • 绘图结果:
    说明:红色的点为我们输入的数据,蓝色的点为基于灰色预测模型预测出来的数据。

5.2. 测试二

  • 录入的数据:

    [2.874,3.278,3.337,3.390,3.679]
    
  • 命令行结果:
    run(‘D:\0COCO\Sys\Documents\MATLAB\gray.m’)
    请输入数据
    [2.874,3.278,3.337,3.390,3.679]
    后验差比值为:0.23876
    系统预测精度好
    下个拟合值为 3.7507
    再下个拟合值为3.8928
  • 绘图结果:

灰色预测模型介绍及MATLAB代码实现相关推荐

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

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

  2. 大一小白的数模比赛(灰色关联度和灰色预测)附Matlab代码

    目录 文章目录 前言 一.我都干了什么 二.两个数学模型 1.灰色关联度 2.灰色系统预测 总结 前言 五一期间因为疫情出不了省,没法去玩,但也不能让自己闲着,和同学组队参加了学校的知行杯数模比赛.我 ...

  3. 主成分分析——KMO检验(介绍及Matlab代码)

    文章目录 前言 一.主成分适用性检验 二.KMO检验 1.计算公式 2.Matlab代码 总结 前言  主成分分析已经越来越成为人们广泛应用的多元统计分析方法.但应用中盲目套用主成分分析方法的情况很多 ...

  4. SDM For Face Alignment 流程介绍及Matlab代码实现之训练篇

    SDM 训练阶段的任务如下: 载入标准化的数据(包括400*400的正脸及特征点) 对每一张标准化的图片,模拟人脸检测仪,产生10个扰动的人脸框及相应的初始特征点x0x_0. 求解Δx\Delta x ...

  5. SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇

    SDM全称为 Supervised Descent Method,是一种机器学习的方法,可以被用来做Face Alignment. 下面我们将通过matlab代码来梳理整个实现的过程. 预处理阶段 I ...

  6. matlab sdm,SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇

    SDM全称为 Supervised Descent Method,是一种机器学习的方法,可以被用来做Face Alignment. 下面我们将通过matlab代码来梳理整个实现的过程. 预处理阶段 I ...

  7. 多变量灰色模型matlab程序,多变量灰色预测模型算法的Matlab实现

    !""# 年 ! 月 引 言 自从邓聚龙教授提出灰色系统理论以来,灰色预测模型在许多领域得到了广泛应用.许多的研究工作者对 于动态微分方程模型 $%( &, &)进 ...

  8. 最短路径树(SPT)介绍及matlab代码

    文章目录 前言 一.最短路径树是什么? 二.最短路径树的算法 1.Dijkstra算法(我比较常用和喜欢的算法) 2.Floyd算法 总结 前言   最短路径树是路由算法设计中常用到的一种树,往往我们 ...

  9. SDM For Face Alignment流程介绍及Matlab代码实现之测试篇

    测试很简单了,只需要载入数据,然后做正则化处理,使用训练模型产生的{Rk}\{R_k\},就可以预测特征点了. face_alignment.m:用来预测特征点 function shape = fa ...

最新文章

  1. PostgresSQL生成UUID
  2. 用SERVLET进行用户名和密码验证
  3. linux下运行hadoop,Linux环境下hadoop运行平台的搭建
  4. Spring AOP用法
  5. Gym - 101972A Multiplication Dilemma(模拟)
  6. Redis——学习之路一(初识redis)
  7. Servlet 与 CGI 的比较
  8. 动态路由接收前台传值
  9. JS中var、let、const区别? 用3句话概括
  10. 无所不能java人_无所不能的java
  11. 包管理conda操作,常用conda命令
  12. 安装Visual Studio 2013以及简单使用
  13. 个人博客网站搭建详细视频教程和源码
  14. android 微信朋友圈相册封面裁剪的小秘密
  15. 二分法求函数零点:(递归方法和非递归方法)
  16. 五步就能让CentOS7联网?是的,亲测有效!!!
  17. 什么是Mirai僵尸网络
  18. 动态规划练习(1)--[编程题] 风口的猪-中国牛市
  19. MySQL Workbench 类似Navicat侧边栏查表名
  20. Ubuntu 测网速

热门文章

  1. Firework导航栏字体变大方法
  2. 关于VS2017中VB.NET打开重新打开工程后程序设计界面无法显示的问题
  3. 市场调查与预测试题库【1】
  4. 飞腾服务器平台Benchmark测试指导---Stream
  5. python 读grid 数据_wxpython编程之 grid(数据表格)
  6. 著名电子竞技游戏分析
  7. Axure 7.0 正式版 + 汉化包 安装
  8. python实现一元二次方程求解
  9. excel在线_在线excel也能跨表汇总数据了
  10. window修改chrome关闭标签tab快捷键