灰色预测

灰色预测

  • 一、灰色预测理论简介
    • (1)灰色系统
    • (2)灰色系统的特点
    • (3)灰色生成
    • (4)GM(1,1)模型
    • (5)GM(1,1)模型精度检验
  • 二、MATLAB执行代码

一、灰色预测理论简介

(1)灰色系统

灰色系统是黑箱概念的一种推广。我们把既含有己知信息又含有未知信息的系统称为灰色系统.作为两个极端,我们将称信息完全未确定的系统为黑色系统;称信息完全确定的系统为白色系统.区别白色系统与黑色系统的重要标志是系统各因素之间是否具有确定的关系。

(2)灰色系统的特点

①用灰色数学处理不确定量,使之量化.
②充分利用已知信息寻求系统的运动规律.
③灰色系统理论能处理贫信息系统(就是信息不充足)

(3)灰色生成

将原始数据列中的数据,按某种要求作数据处理称为生成.客观世界尽管复杂,表述其行为的数据可能是杂乱无章的,然而它必然是有序的,都存在着某种内在规律,不过这些规律被纷繁复杂的现象所掩盖,人们很难直接从原始数据中找到某种内在的规律.对原始数据的生成就是企图从杂乱无章的现象中去发现内在
规律.
常用的灰色系统生成方式有:累加生成,累减生成,均值生成,级比生成等,下面主要介绍累加生成.

(4)GM(1,1)模型

求公式x(0) (k+1) = a[-1/2(x(1) (k) + x(1) (k+1))] + u 中的u和a
在这里插入图片描述
在这里插入图片描述

(5)GM(1,1)模型精度检验

精度检验一般有三种方法:相对误 差大小检验法,关联度检验法和后验差检验法.下面主要介绍后验差
检验法

后检验法求C = S12 /S22
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、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))]);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 过期策略与源码分析

在 Redis 中我们可以给一些元素设置过期时间,那当它过期之后 Redis 是如何处理这些过期键呢? 过期键执行流程 Redis 之所以能知道那些键值过期,是因为在 Redis 中维护了一个字典,存储了所有设置了过期时间的键值,我们称之为过期字典。 过期键判断流程如下图所示: 过期…

Java类类getComponentType()方法与示例

类类getComponentType()方法 (Class class getComponentType() method) getComponentType() method is available in java.lang package. getComponentType()方法在java.lang包中可用。 getComponentType() method is used to returns the Class denoting the component type o…

SVN分支与合并

SVN分支与合并1 分支与合并的概念&#xff1a;分支&#xff1a;版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性&#xff0c;而不会对开发有编译错误的干扰。当新的特性足够稳定之后&#xff0c;开发…

Oracle常用数据字典表

Oracle常用数据字典表 查看当前用户的缺省表空间SQL>select username,default_tablespace from user_users; 查看当前用户的角色SQL>select * from user_role_privs;查看当前用户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from user_tab…

Redis 键值过期操作

过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期;pexpire key milliseconds:设置 key 在 n 毫秒后过期;expireat key timestamp:设置 key 在某个时间戳(精确到秒)之后过期;pexpireat key millisecondsTimestamp:设置…

图论模型迪杰斯特拉算法

一、步骤 二、MATLAB执行代码 tulun1.m weight [0 2 8 1 Inf Inf Inf Inf Inf Inf Inf;2 0 6 Inf 1 Inf Inf Inf Inf Inf Inf;8 6 0 7 5 1 2 Inf Inf Inf Inf;1 Inf 7 0 …

转:VMware安装Mac OS X Mavericks系统图文教程

Mac OS X一直是苹果电脑的御用操作系统&#xff0c;相当于我们常用的Windows操作系统而言&#xff0c;它能够给我们提供不一样的操作体验。令人欣喜的是&#xff0c;2013年10月23 日苹果宣布从Mac OS X Mavericks(即Mac OS X 10.9)起&#xff0c;之后的Mac系统全部免费升级。借…

--c语言运算符_C按位运算符-能力问题和解答

--c语言运算符C programming Bitwise Operators Aptitude Questions and Answers: In this section you will find C Aptitude Questions and Answers on Bitwise Operators like Bitwise OR (|), Bitwise AND (&), Bitwise NOT (!). C编程按位运算符的天赋问题和答案&…

ORACLE SQL获取时间字段

是本周第几天 Select to_char(sysdate,D)-1 from dual 24小时的形式显示出来要用HH24select to_char(sysdate,yyyy-MM-dd HH24:mi:ss) from dual;select to_date(2005-01-01 13:14:20,yyyy-MM-dd HH24:mi:ss) from dual;to_date() function1.日期格式参数 含义说明D 一周中的星…

优秀的基数统计算法——HyperLogLog

为什么要使用 HyperLogLog? 在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,该用什么的类型来统计? 如果我们使用 Redis 中的集合来统计,当它每天有数千万级别的访问时,将会是一个巨大的问题。因为这些访问量不能被清空,…

图论模型Floyd算法

图论模型Floyd算法一、简介二、MATLAB执行代码一、简介 二、MATLAB执行代码 tulun2.m a [ 0,50,inf,40,25,10;50,0,15,20,inf,25;inf,15,0,10,20,inf;40,20,10,0,10,25;25,inf,20,10,0,55;10,25,inf,25,55,0]; [D, path]floyd(a)floyd.m function [D,path,min1,path1]floyd(a,…

php变量赋值给js

原文:php变量赋值给js$(document).ready(function(){<?php $f"name"?>var t<?php echo $f?>;alert(t)})或 <script language"javascript" > var t<?php echo "sd"?>; alert(t) </script>关键是sd两旁既要加…

java 根据类名示例化类_Java LocalDateTime类| AdjustInto()方法与示例

java 根据类名示例化类LocalDateTime类AdjustInto()方法 (LocalDateTime Class adjustInto() method) adjustInto() method is available in java.time package. AdjustInto()方法在java.time包中可用。 adjustInto() method is used to adjust this LocalDateTime object into…

2013-11-11 Oracle 课堂测试 练习题 例:BULK COLLECT及return table

--1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的 --学生编号、学生名称、图书编号、图书名称、借出日期&#xff1b; select s.stuid, s.stuname, b.bid, b.title, bo.t_timefrom borrow bojoin student s on bo.stuid s.stuidjoin book b on bo.b…

查询附近的人——GEO

受过高等教育的我们都知道,我们所处的任何位置都可以用经度和纬度来标识,经度的范围 -180 到 180,纬度的范围为 -90 到 90。纬度以赤道为界,赤道以南为负数,赤道以北为正数;经度以本初子午线(英国格林尼治天文台)为界,东边为正数,西边为负数。 Redis 在 3.2 版本中增…

种群竞争模型

种群竞争模型一、种群竞争模型二、分析&#xff08;1&#xff09;未改变初值&#xff08;2&#xff09;改变自然增长率r&#xff08;3&#xff09;改变该环境种群最大容量&#xff08;4&#xff09;改变两个种群初始数量&#xff08;5&#xff09;改变资源竞争力三、MATLAB执行…

为什么我要选择erlang+go进行server架构(2)

原创文章&#xff0c;转载请注明出处&#xff1a;server非业余研究http://blog.csdn.net/erlib 作者Sunface 为什么我要选择Erlang呢&#xff1f; 一、erlang特别适合中小团队创业&#xff1a; erlang有异常成熟、经过电信级别大规模验证的OTP应用库&#xff0c;仅仅须要非常ea…

Python | 计算给定数字的平方(3种不同方式)

Given a number, and we have to calculate its square in Python. 给定一个数字&#xff0c;我们必须在Python中计算其平方。 Example: 例&#xff1a; Input:Enter an integer numbers: 8Output:Square of 8 is 64Calculating square is a basic operation in mathematics;…

PFILE和SPFILE

PFILE和SPFILE介绍一、PFILEPfile&#xff08;Parameter File&#xff0c;参数文件&#xff09;是基于文本格式的参数文件&#xff0c;含有数据库的配置参数。1、PFILE - initSID.ora(默认PFILE名称),位置在$ORACLE_HOME/dbs目录下面。 这是一个文本文件&#xff0c;可以用任何…

内存淘汰机制与算法

在本文开始之前,我们先要明白:在 Redis 中,过期策略和内存淘汰策略两个完全不同的概念,但很多人会把两者搞混。 首先,Redis 过期策略指的是 Redis 使用那种策略,来删除已经过期的键值对;而 Redis 内存淘汰机制指的是,当 Redis 运行内存已经超过 Redis 设置的最大内存之…