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