資源簡介
這是基于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
- 上一篇:matlab esn工具箱
- 下一篇:用Matlab實現排隊過程的仿真
評論
共有 條評論