您好,登錄后才能下訂單哦!
這篇“matlab神經網絡擬合非線性函數怎么用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“matlab神經網絡擬合非線性函數怎么用”文章吧。
%% 構造擬合數據
for i=1:4000
input(i,:)=10*rand(1,2)-5;
output(i)=input(i,1)^2+input(i,2)^2;
end
output=output';
save data input output
%% 清空環境變量
clc
clear
tic
%% 訓練數據預測數據提取及歸一化
%下載輸入輸出數據
load data input output
%從1到2000間隨機排序
k=rand(1,4000);
[m,n]=sort(k);
%找出訓練數據和預測數據
input_train=input(n(1:3900),:)';
output_train=output(n(1:3900),:)';
input_test=input(n(3901:4000),:)';
output_test=output(n(3901:4000),:)';
%選連樣本輸入輸出數據歸一化
[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.0000004;
%網絡訓練
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({'預測輸出','期望輸出'},'fontsize',12)
title('BP網絡預測輸出','fontsize',12)
xlabel('樣本','fontsize',12)
ylabel('輸出','fontsize',12)
print -dtiff -r600 4-3
%預測誤差
error=BPoutput-output_test;
figure(2)
plot(error,'-*')
title('神經網絡預測誤差')
figure(3)
plot((output_test-BPoutput)./BPoutput,'-*');
title('神經網絡預測誤差百分比')
errorsum=sum(abs(error));
toc
save data net inputps outputps
以上就是關于“matlab神經網絡擬合非線性函數怎么用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。