%% 案例18: 基于Elman神经网络的电力负荷预测模型研究
%
%
%% 清空环境变量
clc;
clear all
close all
nntwarn off;
%% 数据载入
load data;
a=data;
%% 选取训练数据和测试数据
for i=1:6
p(i,:)=[a(i,:),a(i+1,:),a(i+2,:)];
end
% 训练数据输入
p_train=p(1:5,:);
% 训练数据输出
t_train=a(4:8,:);
% 测试数据输入
p_test=p(6,:);
% 测试数据输出
t_test=a(9,:);
% 为适应网络结构 做转置
p_train=p_train';
t_train=t_train';
p_test=p_test';
%% 网络的建立和训练
% 利用循环,设置不同的隐藏层神经元个数
nn=[7 11 14 18];
for i=1:4
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1];
% 建立Elman神经网络 隐藏层为nn(i)个神经元
net=newelm(threshold,[nn(i),3],{'tansig','purelin'});
% 设置网络训练参数
net.trainparam.epochs=1000;
net.trainparam.show=20;
% 初始化网络
net=init(net);
% Elman网络训练
net=train(net,p_train,t_train);
% 预测数据
y=sim(net,p_test);
% 计算误差
error(i,:)=y'-t_test;
end
%% 通过作图 观察不同隐藏层神经元个数时,网络的预测效果
plot(1:1:3,error(1,:),'-ro','linewidth',2);
hold on;
plot(1:1:3,error(2,:),'b:x','linewidth',2);
hold on;
plot(1:1:3,error(3,:),'k-.s','linewidth',2);
hold on;
plot(1:1:3,error(4,:),'c--d','linewidth',2);
title('Elman预测误差图')
set(gca,'Xtick',[1:3])
legend('7','11','14','18','location','best')
xlabel('时间点')
ylabel('误差')
hold off;
MarcoPage
- 粉丝: 4430
- 资源: 8835
最新资源
- 基于微信小程序的员工日志管理信息系统设计与实现.docx
- 基于微信小程序的校园心声墙小程序设计与实现.docx
- Visual Studio Code 的命令行界面 (CLI)详细介绍.pdf
- python-7.异常BMI输入-该胖胖,该瘦瘦.py
- 基于微信小程序的中医“知源”小程序设计与实现.docx
- python-8.字符串转换-你的类型.py
- 模式识别matlab源码
- python-9.urllib.request请求读取网页-我爬爬爬.py
- 金融贷款审批预测数据.zip
- 基于极限学习机(ELM)的数据回归预测 matlab代码
- 在现代计算机视觉和图像处理领域,图形用户界面(GUI)的应用越来越广泛 Python 的 Tkinter 库提供了一种简单而强大的方式来创建 GUI 应用程序 本课程设计的目标是通过 Tkinter
- 快手小程序模板企业官方专用小程序模板源代码
- 基于卷积-长短期记忆网络(CNN-LSTM)的数据分类预测 matlab代码,要求2019A及以上版本
- 基于门控循环单元网络(GRU)的时间序列预测 matlab代码,要求2019版本及以上
- IOI1998矩形周长加强版数据闲人勿下
- 易飞ERP 9.2 安装包 百度云盘 下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈