導航:首頁 > 編程大全 > bp神經網路在matlab

bp神經網路在matlab

發布時間:2023-12-27 10:19:58

① 求預測一組數據的bp神經網路模型的matlab代碼

用matlab求預測一組數據的bp神經網路模型,可以分
1、給定已經數據,作為一個原始序列;
2、設定自回歸階數,一般2~3,太高不一定好;
3、設定預測某一時間段
4、設定預測步數
5、用BP自定義函數進行預測
6、根據預測值,用plot函數繪制預測數據走勢圖
其主要實現代碼如下:
clc
% x為原始序列(行向量)
x=[208.72 205.69 231.5 242.78 235.64 218.41];
%x=[101.4 101.4 101.9 102.4 101.9 102.9];
%x=[140 137 112 125 213 437.43];

t=1:length(x);
% 自回歸階數
lag=3;
%預測某一時間段
t1=t(end)+1:t(end)+5;
%預測步數為fn
fn=length(t1);
[f_out,iinput]=BP(x,lag,fn);
P=vpa(f_out,5);
A=[t1' P'];
disp('預測值')
disp(A)
% 畫出預測圖
figure(1),plot(t,iinput,'bo-'),hold on
plot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid on
title('BP神經網路預測某地鐵線路客流量')
xlabel('月號'),ylabel('客流量(百萬)');
運行結果:

② 可以做用matlab建立BP神經網路嗎

可以。利用函數newff和train。簡單的設置方法

P = [2,1,4,5,3,9]; %Y

T = [1:6]; %X

net = newff(minmax(P),[5 1],{'tansig' 'purelin'}); %newff(a,b,c)

%a:輸入特徵范圍

%b:n-1個隱藏層的大小,S1到S(n-1),默認值為專[]。(輸出層大小S由T確定屬)

%c:轉移函數

net = train(net,P,T); %訓練

Y = sim(net , T); %輸出結果

手打望採納

③ 如何用matlab訓練BP神經網路

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
PR - Rx2 matrix of min and max values for R input elements.
Si - Size of ith layer, for Nl layers.
TFi - Transfer function of ith layer, default = 'tansig'.
BTF - Backprop network training function, default = 'trainlm'.
BLF - Backprop weight/bias learning function, default = 'learngdm'.
PF - Performance function, default = 'mse'.
然後train一下就可以了,具體其他參數查閱相關文檔,一般有前四個參數就夠了。
看一個簡單的例子:
有兩個向量或者矩陣,pn和tn:
net=newff(minmax(pn),[3,1],{'tansig','purelin'},'trainlm');
net.trainParam.epochs=1000;
net.trainParam.goal =1e-5;
net=train(net,pn,tn);
照葫蘆畫瓢就行,具體參數意義就不說了,自己查閱matlab幫助。

④ 用BP神經網路建立數學模型,MATLAB實現,怎樣得到輸入到輸出的計算公式

clear;

%輸入數據矩陣
p1=zeros(1,1000);
p2=zeros(1,1000);
for i=1:1000
p1(i)=rand;
p2(i)=rand;
end
p=[p1;p2];
%目標(輸出)數據矩陣
t = cos(pi*p1)+sin(pi*p2);
%對訓練集中的輸入數據矩陣和目標數據矩陣進行歸一化處理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神經網路
net = newff(pn, tn, [200,10]);
%每10輪回顯示一次結果
net.trainParam.show = 10;
%最大訓練次數
net.trainParam.epochs = 5000;
%網路的學習速率
net.trainParam.lr = 0.05;
%訓練網路所要達到的目標誤差
net.trainParam.goal = 10^(-8);
%網路誤差如果連續6次迭代都沒變化,則matlab會默認終止訓練。為了讓程序繼續運行,用以下命令取消這條設置
net.divideFcn = '';
%開始訓練網路
net = train(net, pn, tn);
%獲取網路權值、閾值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %輸入層到隱層1的權值
b1 = net.b{1} ; %輸入層到隱層1的閾值
w2 = net.lw{2,1}; %隱層1到隱層2的權值
b2 = net.b{2} ; %隱層1到隱層2的閾值
w3 = net.lw{3,2}; %隱層2到輸出層的權值
b3 = net.b{3} ;
in = mapminmax('apply',[0.1;0.5],inputStr);
%用公式計算輸出
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用網路驗證計算結果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);

閱讀全文

與bp神經網路在matlab相關的資料

熱點內容
pfile文件在哪裡 瀏覽:286
編程中如何提取得到十位數 瀏覽:392
app賬戶未驗證怎麼辦啊 瀏覽:40
黑莓bbb文件 瀏覽:97
swf視頻文件手機播放 瀏覽:732
智能電表顯示錯誤代碼err32 瀏覽:813
蘋果6沒開iCloud能找回嗎 瀏覽:469
java正則4位數字 瀏覽:836
計算機考試保存到考生文件夾視頻 瀏覽:477
千本筆記app怎麼下載 瀏覽:769
淘寶店鋪裝修無縫代碼 瀏覽:862
js如何生成唯一的數據 瀏覽:755
win10查看激活 瀏覽:737
iphone屏蔽垃圾簡訊 瀏覽:297
渾南區網站建設要多少錢 瀏覽:606
如何把新輸入的數據跳到第一行 瀏覽:49
sas客戶端配置文件 瀏覽:786
馬斯克怎麼會的編程 瀏覽:185
spss資料庫的管理 瀏覽:705
windows標准圖像文件格式 瀏覽:848

友情鏈接