灰色预测GM(1.1)模型及matlab程序负荷预测

news2025/1/20 13:33:36

灰色GM(1.1)预测模型
GM(1.1)模型由包含单一变量的一阶微分方程构成的模型,是灰色模型中最常用的模型。
设有负荷变量为的原始数据列:
3-1
(3-1)
生成一阶累加数据列:
3-2
(3-2)
其中
3-3
(3-3)
一阶微分方程的解呈指数增长形式,与序列增长规律相同,可认为序列满足下列方程:
3-4
(3-4)
根据导数定义得:
3-5
(3-5)
离散形式下,微分项可以表示为:
3-6
(3-6)
其中,x为k和k+1时刻的平均值即。
公式
3-7
(3-7)
表示:
3-8
(3-8)
得:
k=1,+
k=2,+ 3-9
(3-9)
·······
k=n-1,+
将上述方程用矩阵形式表示为
*[] 3-10
(3-10)
简记为:=BA
式中:在这里插入图片描述
=[, A=[], B=
由上述方程可知,和B为已知量,A为待定参数,存在A和u两个变量和n-1个方程,由n-1>2可知,方程组无解。由最小二乘法得到近似解,式=BA可写为
=BA+E 3-11
(3-11)
其中中,E为误差项
使min||-B||=min(-B),利用矩阵求导公式,可得:
3-12
(3-12)
将,代进原来的微分方程,得:
3-13
(3-13)
解之可得:
3-14
(3-14)
离散形式[令],得:
3-15
(3-15)
上式称为GM(1,1)模型的时间函数模式,是GM(1,1)模型灰色预测的具体计算公式,对此公式做累减还原,得到原始数列的灰色预测模型为:
3-16
(3-16)

负荷预测matlab程序算例如下:

// 灰色预测g(1,1)模型,负荷预测
clc
close all
clear all
%% 原始数据
%年份。。。。。。。。。。。。。。。。。。。。。。。。。。负荷
S=[2000	4149	1149	2003.07 	4851	2396	208.15
2001	4186	1273	2175.68 	5221	2500	222.28
2002	4222	1360	2450.48 	5829	2651	246.57
2003	4254	1447	2807.41 	6624	2739	299.53
2004	4284	1524	3456.7  	8097	3353	389.2
2005	4311	1595	4056.76 	9440	3821	391.98
2006	4339	1687	4820.53 	10679	4117	446.2
2007	4368	1739	5800.25 	13322	4676	511.09
2008	4400	1820	6971.05 	15900	5805	545.88
2009	4432	1914	7655.18 	17335	6212	609.22
2010	4462	1966	9451.26 	21253	7989	700.51
2011	4488	2051	11702.82	26150	9523	835.1
2012	4504	2140	12948.88	28800	10573	867.7
2013	4522	2210	14410.19	31930	11910	947.1
2014	4542	2281	15714.63	34674	12000	1018.52
2015	4566	2357	16923.78	36724	14489	1087.26
2016	4592	2438	18499   	40400	16040	1182.5
2017	4622	2524	20006.31	43424	17290	1293.98
2018	4648	2604	22716.51	49013	18322	1428.77];
%% 灰色模型
Result2=ones(1,9);
E2=ones(1,9);
for i=1:9
 T=[S(11,7),S(12,7),S(13,7),S(14,7),S(15,7),S(16,7),S(17,7),S(18,7),S(19,7)];   
A=[S(i,7),S(i+1,7),S(i+2,7),S(i+3,7),S(i+4,7),S(i+5,7),S(i+6,7),S(i+7,7),S(i+8,7),S(i+9,7)];
syms a u;
c=[a,u]';
Ago=cumsum(A);
n=length(A);
for k=1:(n-1)
    Z(k)=(Ago(k)+Ago(k+1))/2;
end
Yn =A;%Yn为常数项向量
Yn(1)=[]; %从第二个数开始,即x(2),x(3)...
Yn=Yn';
E=[-Z;ones(1,n-1)]';%累加生成数据做均值
c=(E'*E)\(E'*Yn);%利用公式求出a,u
c= c';
a=c(1);%得到a的值
u=c(2);%得到u的值
F=[];
F(1)=A(1);
for k=2:(n+1)
    F(k)=(A(1)-u/a)/exp(a*(k-1))+u/a;%求出GM(1,1)模型公式
end
G=[];
G(1)=A(1);
for k=2:(n+1)
    G(k)=F(k)-F(k-1);%两者做差还原原序列,得到预测数据
end
result=G(11);
Result2(i)=result;
E2(i)=(result-T(i))/result;
end
%% 输出
figure
plot(2010:1:2018,T,'b:*',2010:1:2018,Result2,'r-o')
legend('真实值','预测值')
xlabel('年份')
ylabel('用电量/亿千瓦时')

matlab运行预测结果如下图:
运行结果

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

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

相关文章

URLDNS利用链分析

目录 前言: (一)原理 (二)利用链 再来分析 URLDNS.java 这个文件,并且在入口处设置断点进行调试: (三) POC 参考资料 前言: URLDNS是Java反序列化中比较简单的一个链…

引擎入门 | Unity UI简介–第2部分(1)

欢迎回来! 在这个三部分教程系列的第二部分中,你将学习如何在用户界面中加入动画。 在上一个部分中你学习并创建了一个带有两个按钮的场景,也学会了如何使用图像、按钮和文本UI控件,并学习了RectTransform、Anchors和Pivots等核心概念&#…

元宇宙的核心技术之我见

14天学习训练营导师课程: 张子良《 元宇宙体系结构、关键技术和实践探索》 前言 提起元宇宙,相比读者都有所耳闻,而且元宇宙最近两年时间里异常的火,堪比之前的人工智能的火爆场景,甚至要超越人工智能的火爆度了。但是…

kubernetes namespace pod label deployment介绍与命令

kubernetes namespace pod label deployment 介绍与命令 1: namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,kubernetes集群中的所有的Pod都是可以…

STM32实战总结:HAL之wifi

关于无线传输的基础知识,参考: 无线通信技术概览_路溪非溪的博客-CSDN博客 学了这么多,发现信息技术主要就是数据的存储、处理以及传输这几个过程。通过各种各样的技术,来实现这几个目标。 wifi模块 现在常用的是wifi模块&#xf…

今天面了个腾讯拿38K出来的,让我见识到了基础的天花板

各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文,为此咱这里也统一做一次大整理和大归类,这也算是划重点了。 俗话说得好,他山之石,可以攻玉,多看多借鉴还是有帮助的,这次腾讯也在疯狂…

自动化测试如何实施落地?详细教程来了

目录 前言 落地前:分析因素 开展前:评估价值 落地过程:解决问题 推广运营:关注反馈&输出价值 文末总结 重点:配套学习资料和视频教学 前言 这篇文章, 就聊聊自动化项目如何落地,以及…

25. [Python GUI] PyQt5中拖放的基本原理

PyQt5的拖放 拖放涉及到的主要的一些类如下所示: 一、拖放的基本原理 1.1 拖放的动作 拖放操作包括两个动作: 拖动(drag)放下(drop 或称为放置)。 当被拖动时拖动的数据会被存储为 MIME 类型的对象, MIME 类型使用 QMimeData 类来描述。…

C++——new和delete关键字

什么是new和delete new和delete不是函数,和sizeof一样都是C定义的关键字,不同的是sizeof在编译时就可以确定其返回值,而new和delete相对复杂 示例 string *ps new string("hello world");如果换做c语言,上面这句话就…

数据库——数据库备份与恢复

目录 原因: 数据库的备份与恢复: 1、使用MySQLdump命令备份 2、恢复数据库 表的导入和导出 1、表的导出 2、表的导入 原因: 尽管采取了一些管理措施来保证数据库的安全,但是不确定的意外情况总是有可能造成数据的损失,…

数据库理论 05 关系数据库设计——基于《数据库系统概念》第七版

通过E-R图转换得出一组关系模式后 **选择1:**把一些关系模式合并为更大的关系 —— 会产生过多的数据冗余 inst_dept(ID, name, salary, dept_name, building, budget)如果通过E-R模型转换得出如下两个关系模式 sec_class(sec_id, building, room_number) and se…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java计算机专业建设管理系统3286d

面对老师五花八门的设计要求,首先自己要明确好自己的题目方向,并且与老师多多沟通,用什么编程语言,使用到什么数据库,确定好了,在开始着手毕业设计。 1:选择课题的第一选择就是尽量选择指导老师…

ThreadLocal源码解析 1.运行原理

ThreadLocal源码解析—运行原理 简介 ThreadLocal 类用来提供线程内部的局部变量,这种变量在多线程环境下访问(通过 get 和 set 方法访问)时能保证各个线程的变量相对独立于其他线程内的变量,分配在堆内的 TLAB 中。 ThreadLoc…

【Mybatis编程:根据若干个id批量删除相册(动态SQL)】

目录 1. 执行的SQL语句 2. 在AlbumMapper.java接口添加抽象方法 3. 在AlbumMapper.xml中配置以上抽象方法映射的SQL语句 4. 标签书写规范 1. 执行的SQL语句 需要执行的SQL语句大致是: delete from pms_album where id? or id? or ... id? delete from pms…

《机器学习实战》10.K-均值聚类算法

目录 利用K-均值聚类算法对未标注数据分组 K-均值聚类算法 2 使用后处理来提高聚类性能 3 二分K-均值算法 4 示例:对地图上的点进行聚类 4.1 Yahoo!PlaceFinder API 4.2 对地理坐标进行聚类 5 本章小结 本章涉及到的相关代码和数据 利用K-均值聚…

Unity基本编译环境设置(代码自动补全)

基本说明: 中国 Unity 官网下载地址:https://unity.cn/releases 请下载 Unity HUB 来管理和安装你的 Unity 各种版本 场景一: Windows系统 |Unity 2020之前的版本 |Visual Studio Community编辑器 电脑中没有任何…

并发控制常用定位方法及解决措施

并发控制常用定位方法及解决措施 7.1 排队问题 出现业务阻塞、性能下降、查询无响应等类似现网问题时,通过以下方法可以排查是否排队问题并定位排队原因,同时根据排队原因给出相应规避措施。 7.1.1 确认是否排队 首先确认是否排队问题,其…

力扣(LeetCode)2095. 删除链表的中间节点(C++)

快慢指针 设置哑结点,便于删除头结点。找到链表的中间结点,可以用快慢指针从头结点出发,慢指针最后停在中间结点。删除中间结点,应当找中间结点的前一个结点。于是想到加入哑结点,这样初始快慢指针既可以往前一个位置…

RADServer应用程序的交钥匙应用程序基础

RADServer应用程序的交钥匙应用程序基础 RADServer是快速构建和部署基于服务的应用程序的交钥匙应用程序基础。RAD Server提供自动化的Delphi和CREST/JSON API发布和管理、企业数据库集成中间件、IoT Edgeware和一系列应用程序服务,如用户目录和身份验证服务、推送通…

retimer芯片调式总结

1,主备状态是否ok。 看里面的0-3工作在Master(master Active), 4-7 工作在Master(wait master),主控0-3,备控4-7. current postion说明: typedef enum {VEGA_HMUX_SWITCH_TO_MASTER = 0,VEGA_HMUX_SWITCH_TO_SLAVE = 1,VEGA_HMUX_SWITCH_TO_PATTERN = 2,VEGA_HMUX_SWITC…