您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“matlab BP神經網絡非線性函數擬合的方法是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“matlab BP神經網絡非線性函數擬合的方法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
工程應用中經常會遇到一些復雜的非線性系統,這些系統狀態方程復雜,難以用數學方法準確建模。在這種情況下,可以建立BP神經網絡表達這些非線性系統。該方法把未知系統看成是一個黑箱,首先用系統輸入輸出數據訓練BP神經網絡,使網絡能夠表達該未知函數,然后就可以用訓練好的BP神經網絡預測系統輸出。
%% 清空環境變量
clc
clear
%% 訓練數據預測數據提取及歸一化
%下載輸入輸出數據
load data input output
%從1到2000間隨機排序
k=rand(1,2000);
[m,n]=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));
%選連樣本輸入輸出數據歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP網絡訓練
% %初始化網絡結構
net=newff(inputn,outputn,5);
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.00004;
%網絡訓練
net=train(net,inputn,outputn);
%% BP網絡預測
%預測數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);
%網絡預測輸出
an=sim(net,inputn_test);
%網絡輸出反歸一化
BPoutput=mapminmax('reverse',an,outputps);
%% 結果分析
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))
讀到這里,這篇“matlab BP神經網絡非線性函數擬合的方法是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。