GM11灰色模型
作者:桂。
时间:2017-08-12 08:34:06
链接:http://www.cnblogs.com/xingshansi/p/7348714.html
前言
灰色模型(Gray model)常用来对数据进行预测,这里简要记录其思路。
一、名称由来
常见系统分类:
- 白色系统是指一个系统的内部特征是完全 已知的,即系统的信息是完全充分的。
- 黑色系统是指一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研究。
- 灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。

二、算法原理

.png)

.png)

假设生成序列的一阶模型(核心思想):

.png)
将其带入上面一阶方程解(参数已求出)
取t为离散值(t = k+1)
而

这样便完成了预测。
.png)
主函数
clc;clear all;close all
set(0,'defaultfigurecolor','w');
%{
参考:《离散模型与灰色预测模型建模机理》,谢乃明,刘思峰
本程序主要用来计算根据灰色理论建立的模型的预测值。
应用的数学模型是 GM(1,1)。
原始数据的处理方法是一次累加法。
%}
f = @(t,b)(0.3*t.^2+b+0.3*randn(1,length(t)));%定义待预测函数
t = 0:.2:5;
b = 3;
x0 = f(t,b);
x_pre = GM11(x0);
plot(t,x0,'k',t,x_pre,'r--');
xlabel('时间(年)');
ylabel('幅度');
title('GM11预测模型');
legend('原始数据','预测数据');
GM11的function:
function x_pre = GM11(x0)
x0 = x0(:);
n = length(x0);
x1 = cumsum(x0);
for i = 1:n-1
G(i,1) = -(x1(i)+x1(i+1))/2;
G(i,2) = 1;
end
Y = x0(2:end);
belta = pinv(G'*G)*G'*Y;
a = belta(1);
u = belta(2);
%predict
x_pre1 = zeros(n,1);
x_pre = x_pre1;
for k = 0:n-1
x_pre1(k+1) = (x0(1)-u/a)*exp(-a*k)+u/a;
end
x_pre(1) = x0(1);
for k = 1:n-1
x_pre(k+1) = x_pre1(k+1)-x_pre1(k);
end
结果图:

GM11灰色模型的更多相关文章
- python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导
来源公式推导连接 https://blog.csdn.net/qq_36387683/article/details/88554434 关键词:灰色预测 python 实现 灰色预测 GM(1,1)模 ...
- R实现灰色预测
1.简介 预测就是借助于对过去的探讨去推测.了解未来.灰色预测通过原始数据的处理和灰色模型的建立,发现.掌握系统发展规律,对系统的未来状态做出科学的定量预测.对于一个具体的问题,究竟选择什么样的预测模 ...
- 【数学建模】灰色系统理论II-Verhulst建模-GM(1,N)-GM(2,1)建模
灰色系统理论中,GM(1,1)建模很常用,但他是有一定适应范围的. GM(1,1)适合于指数规律较强的序列,只能描述单调变化过程.对于具有一定随机波动性的序列,我们考虑使用Verhulst预测模型,或 ...
- NLP&数据挖掘基础知识
Basis(基础): SSE(Sum of Squared Error, 平方误差和) SAE(Sum of Absolute Error, 绝对误差和) SRE(Sum of Relative Er ...
- 3Dmax+blend+WPF综合运用
原文:3Dmax+blend+WPF综合运用 赛后总结 本人小菜,WPF刚入门,只是写一下最近的项目心得.欢迎各位前辈们前来拍砖指正,感激不敬!先申明,小弟我入门仓促,很多东西也是一知半解,所以很多问 ...
- 常见的机器学习&数据挖掘知识点
原文:http://blog.csdn.net/heyongluoyao8/article/details/47840255 常见的机器学习&数据挖掘知识点 转载请说明出处 Basis(基础) ...
- 2019第九届MathorCup数学建模
题目下载:https://www.lanzous.com/i3taz2j 总共四个问题 问题1 首先附件一中的数据,拿到后肯定感觉棘手.我们的处理方法: 在下面缺失数据的地方我们都认为是问题3中的预测 ...
- WPF--3Dmax+blend+WPF综合运用
引自:http://blog.sina.com.cn/s/blog_95dbdf9e0100we3z.html 本人小菜,WPF刚入门,只是写一下最近的项目心得.欢迎各位前辈们前来拍砖指正,感激不敬! ...
- Unreal Engine 4 系列教程 Part 6:动画教程
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
随机推荐
- jquery设置按钮disabled
通常我们设置disabled属性会用attr和removeAttr,但是今天我们不讨论这个方式 我们讨论是的prop jQuery的定义是:获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性 ...
- Highstock生成股票K线图
在线演示 本地下载 使用HightStock生成股票K线图例子.
- IN 查询时出现ORA-01795:列表中的最大表达式数为1000解决方法
问题描写叙述: SQL进行IN查询时出现:java.sql.SQLException: ORA-01795: 列表中的最大表达式数为 1000 解决的方法: 问题原因是:SQL进行IN查询时.IN中的 ...
- linux pdb调试总结
1.首先gdb编译: gcc -g xxx.c -o xxx 2.然后 gdb xxx进入调试 break 行号 加入断点 (1)然后run就能够跑到下一个断点 (2)step(或s)单步跟踪 (3) ...
- listView下拉刷新加载数据
这个下拉效果在网上最早的例子恐怕就是Johan Nilsson的实现,http://johannilsson.com/2011/03/13/android-pull-to-refresh-update ...
- iOS中重用UITableView单元格时,千万别忘了这个
不多说,看截图
- 测试storm异常信息(时时更新)
Exception in thread "main" java.lang.RuntimeException: org.apache.thrift7.protocol.TProtoc ...
- HTTP Content-type整理
文件扩展名 Content-Type(Mime-Type) 文件扩展名 Content-Type(Mime-Type) .*( 二进制流.不知道下载文件类型) application/octet-st ...
- 【转】SQL2008的sa账户被禁用,其他账户无法连接的解决方法
或者你还有其它的sysadmin权限的账号,你可以用此账号登录,重置SA密码. 但是在以下情况下,怎么办呢? 1. SA密码丢失或者SA账号被禁用. 2. 你进行了一些安全操作,把BuiltinAdm ...
- assert语句(assert用来判断语句的真假)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python学习手册 868 #assert语句(assert用来判断语句的真假) #案例 mylist=[ ...

.png)

.png)

.png)


.png)
计算均值生成序列:.png)