• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Matlab
  • 标签: matlab代码  

资源简介

本人在数学建模过程中撰写的matlab代码,完全可用,功能是利用BP神经网络对时间序列进行预测,内含matlab格式的数据,便于运行检验。

资源截图

代码片段和文件信息

%清空环境变量
clc
clf
clear

%下载输入输出数据
load swdata input output

%根据原始数据绘图
figure(1);
plot(inputoutput‘LineWidth‘2);
title(‘超市上午顾客人数‘‘FontSize‘12);
xlabel(‘时间/天‘‘FontSize‘12);
ylabel(‘上午顾客人数/人‘‘FontSize‘12);
grid on;

%随机选择21组训练数据和7组预测数据
k=rand(128);
[mn]=sort(k);
input_train=input(n(1:21):)‘;
output_train=output(n(1:21):)‘;
input_test=input(n(22:28):)‘;
output_test=output(n(22:28):)‘;

%训练数据归一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);

%BP神经网络构建
net=newff(inputnoutputn6);

%网络参数配置(迭代次数,学习率,目标)

net.trainParam.show = 50;  %显示训练迭代过程(NaN表示不显示,缺省25)
net.trainParam.lr = 0.01;     %学习率(缺省0.01)
net.trainParam.epochs = 10000; %最大训练次数
net.trainParam.goal = 0.00001;   %训练要求精度

%BP神经网络训练
net=train(netinputnoutputn);

%预测数据归一化
inputn_test=mapminmax(‘apply‘input_testinputps);

%BP神经网络预测输出
an=sim(netinputn_test);

%输出结果反归一化
BPoutput=mapminmax(‘reverse‘anoutputps);

%网络预测结果图形
figure(2)
plot(BPoutput‘:og‘)
hold on
plot(output_test‘-*‘);
legend(‘预测输出‘‘期望输出‘)
title(‘BP神经网络预测输出‘‘fontsize‘12)
ylabel(‘函数输出‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)

%网络预测误差图形
% error=abs(BPoutput-output_test);
% figure(3)
% plot(error‘-*‘)
% title(‘BP网络预测误差‘‘fontsize‘12)
% ylabel(‘误差‘‘fontsize‘12)
% xlabel(‘样本‘‘fontsize‘12)

figure(4)
plot(abs((output_test-BPoutput)./output_test)‘-*‘);
title(‘神经网络预测误差百分比‘)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1647  2014-05-24 09:25  matlab文件\sw.m
     文件         476  2014-05-23 23:28  matlab文件\swdata.mat
     文件        1647  2014-05-24 03:38  matlab文件\ws.m
     文件         477  2014-05-24 02:49  matlab文件\wsdata.mat
     文件        1647  2014-05-25 11:20  matlab文件\xw.m
     文件         476  2014-05-24 02:39  matlab文件\xwdata.mat
     目录           0  2014-05-24 10:07  matlab文件\

评论

共有 条评论