灰色预测

灰色预测

  • 一、灰色预测理论简介
    • (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 中维护了一个字典,存储了所有设置了过期时间的键值,我们称之为过期字典。 过期键判断流程如下图所示: 过期…

SVN分支与合并

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

图论模型迪杰斯特拉算法

一、步骤 二、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 …

图论模型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,…

查询附近的人——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执行…

内存淘汰机制与算法

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

Java基础结构语句和IDEA使用和数组

Java基础结构语句和IDEA和数组基本类型和引用类型static第一章&#xff1a;结构语句1.1.1三元运算符1.1.2switch语句1.1.3do-while循环第二章&#xff1a;IDEA2.1_IDEA的项目结构2.2_IDEA的使用&#xff08;代码及时自动保存&#xff09;&#xff08;1&#xff09;代码快捷方式…

同时对view延时执行两个动画时候的现象

同时对view延时执行两个动画时候的现象 对于view延时执行了两个动画后&#xff0c;会将第一个动画效果终止了&#xff0c;直接在第一个动画的view的最后的状态上接执行后续的动画效果&#xff0c;也就是说&#xff0c;我们可以利用这个特性来写分段动画效果&#xff0c;比如&am…

子网掩码+ip地址_C ++程序使用位掩码查找唯一编号

子网掩码ip地址Problem statement: C Program to find unique number in an array of n numbers in which except one (unique number) rest all are present thrice. 问题陈述&#xff1a; C 程序在n个数字的数组中查找唯一数字&#xff0c;其中除一个(唯一数字)外其余所有其余…

消息队列的其他实现方式

在 Redis 5.0 之前消息队列的实现方式有很多种,比较常见的除了我们上文介绍的发布订阅模式,还有两种:List 和 ZSet 的实现方式。 List 和 ZSet 的方式解决了发布订阅模式不能持久化的问题,但这两种方式也有自己的缺点,接下来我们一起来了解一下,先从 List 实现消息队列的…

死锁 预防死锁避免死锁_死锁和处理死锁的方法

死锁 预防死锁避免死锁僵局 (Deadlock) In the multiprogramming operating system, there are a number of processing which fights for a finite number of resources and sometimes waiting process never gets a chance to change its state because the resources for wh…

消息队列——发布订阅模式

在 Redis 中提供了专门的类型:Publisher(发布者)和 Subscriber(订阅者)来实现消息队列。 在文章开始之前,先来介绍消息队列中有几个基础概念,以便大家更好的理解本文的内容。 首先,发布消息的叫做发布方或发布者,也就是消息的生产者,而接收消息的叫做消息的订阅方或…

eclipse安装jetty插件

2019独角兽企业重金招聘Python工程师标准>>> 1 eclipse安装jetty插件 由于项目需要&#xff0c;eclipse需要安装jetty插件&#xff0c;从百度搜索的结果基本都是从http://run-jetty-run.googlecode.com/svn/trunk/updatesite获取jetty&#xff0c;国内的网络根本无法…

实战:分布式锁详解与代码

什么是锁? 锁是一种常用的并发控制机制,用于保证一项资源在任何时候只能被一个线程使用,如果其他线程也要使用同样的资源,必须排队等待上一个线程使用完。 锁的示意图,如下所示: 什么是分布式锁? 上面说的锁指的是程序级别的锁,例如 Java 语言中的 synchronized 和 …

编译原理第三章

编译原理第三章3.1_正规文法和状态转换图&#xff08;1&#xff09;构造状态转换图&#xff08;2&#xff09;状态矩阵3.2_有限自动机3.2.1_确定的有限自动机DFA3.2.2_非确定的有限自动机NFA3.3_NFA转换为DFA&#xff08;NFA确定化&#xff09;3.3.1_无ε动作的NFA确定化3.3.2_…

ftp上传和下载命令

2019独角兽企业重金招聘Python工程师标准>>> 假设有一目标FTP服务器&#xff0c;IP&#xff1a;123.123.123.123&#xff0c;用户名&#xff1a;ftpname 密码&#xff1a;ftppwd。当前要通过命令行将D:\ftpin目录下的file.doc上传到目标服务器&#xff0c;从服务器下…

《算法导论》学习笔记——快速排序

快速排序 1.快速排序原理 快速排序是一种应用很广泛的排序算法&#xff0c;与归并排序类似&#xff0c;快速排序也采用了分治策略。对于一个待排序的数组A[p...r]进行快速排序&#xff0c;根据分治思想&#xff0c;可以分为如下三个步骤&#xff1a;   - 分解&#xff1a;数组…

JavaTCP连接

输入输出操作 可以这样理解&#xff1a; BufferedReader/BufferedWriter使用三部曲&#xff1a; 服务器操作 import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class Server {private static int port 8002;//设置端口号public static v…

Java API概述及应用

Java API概述及应用5.1_Scanner和Random的使用&#xff08;1&#xff09;Scanner&#xff08;2&#xff09;Random生成随机数5.2_ArrayList集合的使用&#xff08;1&#xff09;ArrayList的定义及限制&#xff08;2&#xff09;函数调用&#xff08;3&#xff09;字符串字符串加…