BP神經網絡非線性函數擬合

基於BP神經網絡的非線性函數擬合算法流程可以分爲BP神經網絡構建、BP神經網絡訓練和BP神經網絡預測三步。

BP神經網絡構建:根據擬合非線性函數特點確定BP神經網絡結構。

BP神經網絡訓練:用非線性函數輸入輸出數據訓練神經網絡,使訓練後的網絡能夠預測非線性函數輸出。

BP神經網絡預測:用訓練好的網絡預測函數輸出,並對預測結果進行分析

%輸入數據
x=rand(1,1500);
y=rand(1,1500);
p=[x;y]';
z=x.^2-y.^2+3;
%從1到1500間隨機排序
k=rand(1,1500);
[m,n]=sort(k);
%找出訓練數據和預測數據
input_train=p(n(1:1400),:)';
output_train=z(n(1:1400));
input_test=p(n(1401:1500),:)';
output_test=z(n(1401:1500));
%訓練樣本輸入輸出數據歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%BP網絡訓練
%初始化網絡結構
net=newff(inputn,outputn,5);
net.trainParam.epochs=500;
net.trainParam.lr=0.05;
net.trainParam.goal=0.0004;
%網絡訓練
net=train(net,inputn,outputn);
%BP網絡預測
%預測數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);
%網絡預測輸出
an=sim(net,inputn_test);
%網絡輸出反歸一化
BPoutput=mapminmax('reverse',an,outputps);
%結果分析
plot(BPoutput,':og');
hold on
plot(output_test,'-*');
ylabel('仿真輸出','fontsize',12);
xlabel('樣本','fontsize',12);

作者:QinL 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章