資源簡介
本文件是基于MATLAB的BP神經網絡非線性系統的建模和非線性函數擬合,是非常適用的,可直接進行運行和查看,建議大家大家可以多多學習,多練習。熟能生巧

代碼片段和文件信息
%%?該代碼為基于雙隱含層BP神經網絡的預測
%
%?
%? 該案例作者申明: 1:本人長期駐扎在此板塊里,對該案例提問,做到有問必答。本套書籍官方網站為:video.ourmatlab.com 2:點此從當當預定本書:《Matlab神經網絡30個案例分析》。 3:此案例有配套的教學視頻,視頻下載方式video.ourmatlab.com/vbuy.html。?
4:此案例為原創案例,轉載請注明出處(《Matlab神經網絡30個案例分析》)。 5:若此案例碰巧與您的研究有關聯,我們歡迎您提意見,要求等,我們考慮后可以加在案例里。
%?
%%?清空環境變量
clc
clear
%%?訓練數據預測數據提取及歸一化
%下載輸入輸出數據
load?data?input?output
%從1到2000間隨機排序
k=rand(12000);
[mn]=sort(k);
%找出訓練數據和預測數據
input_train=input(n(1:1900):)‘;
output_train=output(n(1:1900));
input_test=input(n(1901:2000):)‘;
output_test=output(n(1901:2000));
%選連樣本輸入輸出數據歸一化
[inputninputps]=mapminmax(input_train);
[outputnoutputps]=mapminmax(output_train);
%%?BP網絡訓練
%?%初始化網絡結構
net=newff(inputnoutputn[5?5]);
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.00004;
%網絡訓練
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(‘預測輸出‘‘期望輸出‘)
title(‘BP網絡預測輸出‘‘fontsize‘12)
ylabel(‘函數輸出‘‘fontsize‘12)
xlabel(‘樣本‘‘fontsize‘12)
%預測誤差
error=BPoutput-output_test;
figure(2)
plot(error‘-*‘)
title(‘BP網絡預測誤差‘‘fontsize‘12)
ylabel(‘誤差‘‘fontsize‘12)
xlabel(‘樣本‘‘fontsize‘12)
figure(3)
plot((output_test-BPoutput)./BPoutput‘-*‘);
title(‘神經網絡預測誤差百分比‘)
errorsum=sum(abs(error));
web?browser?www.matlabsky.com
%%
%?
%?