资源简介

这是基于BP神经网络遗传算法极值寻优的MATLAB源代码,请大家多多参考!!!

资源截图

代码片段和文件信息

%% 清空环境变量
clc
clear

tic
%% 训练数据预测数据提取及归一化
%下载输入输出数据
load data input output

%从1到2000间随机排序
k=rand(14000);
[mn]=sort(k);

%找出训练数据和预测数据
input_train=input(n(1:3900):)‘;
output_train=output(n(1:3900):)‘;
input_test=input(n(3901:4000):)‘;
output_test=output(n(3901:4000):)‘;

%选连样本输入输出数据归一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);

%% BP网络训练
% %初始化网络结构
net=newff(inputnoutputn5);

net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.0000004;

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

%% BP网络预测
%预测数据归一化
inputn_test=mapminmax(‘apply‘input_testinputps);
 
%网络预测输出
an=sim(netinputn_test);
 
%网络输出反归一化
BPoutput=mapminmax(‘reverse‘anoutputps);

%% 结果分析

figure(1)
plot(BPoutput‘:og‘)
hold on
plot(output_test‘-*‘);
legend(‘预测输出‘‘期望输出‘‘fontsize‘12)
title(‘BP网络预测输出‘‘fontsize‘12)
xlabel(‘样本‘‘fontsize‘12)
ylabel(‘输出‘‘fontsize‘12)
print -dtiff -r600 4-3
%预测误差
error=BPoutput-output_test;

figure(2)
plot(error‘-*‘)
title(‘神经网络预测误差‘)

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

errorsum=sum(abs(error))

toc

save data net inputps outputps

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1291  2009-12-19 09:05  案例4\BP.m

     文件        420  2009-08-16 22:48  案例4\Code.m

     文件       1556  2009-08-16 22:59  案例4\Cross.m

     文件        134  2009-09-11 15:31  案例4\data.m

     文件      94683  2009-12-19 16:59  案例4\data.mat

     文件        326  2009-09-15 09:36  案例4\fun.m

     文件       2694  2010-01-30 20:24  案例4\Genetic.m

     文件       1545  2009-08-16 23:05  案例4\Mutation.m

     文件        535  2009-09-11 15:36  案例4\net.mat

     文件        823  2009-09-11 21:24  案例4\Select.m

     文件        278  2009-12-26 21:25  案例4\test.asv

     文件        278  2009-12-26 21:26  案例4\test.m

     目录          0  2019-01-12 16:22  案例4

----------- ---------  ---------- -----  ----

               104563                    13


评论

共有 条评论