資源簡介
本文件是基于MATLAB的BP神經(jīng)網(wǎng)絡(luò)非線性系統(tǒng)的建模和非線性函數(shù)擬合,是非常適用的,可直接進(jìn)行運行和查看,建議大家大家可以多多學(xué)習(xí),多練習(xí)。熟能生巧

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