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

bp神經網路及matlab實現

發布時間:2024-08-07 15:10:38

❶ matlab bp神經網路

輸入量必須有才能預測,只是輸入量要比原來的往後延長一點,如原來的t=1:5,可改為t1=3:7,這樣,再模擬,就向後預測了2個點。3入1出的類似,要有3個輸入。

❷ 2輸入2輸出,bp神經網路MATLAB代碼,怎麼編寫

k=0:1:6000;
w=0.03*k*pi/180;
x=0.4+0.2*cos(w);
z=0.2+0.2*sin(w);
y1=-atan(x/z)+acos(sqrt(1-(x.^2+z.^2-0.07).^2/(0.36*x.^2+0.36*z.^2)));
y2=asin((0.25-x.^2-z.^2)/0.24)-pi;
[input,minI,maxI,output,minO,maxO]=premnmx([x,z]',[y1,y2]');%進行歸一化處理
net=newff(minmax(input),[2,10,2],{'tansig','tansig','purelin'},'traingd');
net.trainParam.show=100;
net.trainParam.Lr=0.05;
net.trainParam.epochs=6000;
net.trainParam.goal=1e-4;
net=train(net,input,output);
output=sim(net,input);
postmnmx(output,minO,maxO);
plot(k,y1,k,y2);

%說明:x和z為輸入,y1和y2為輸出,對輸入進行了歸一化處理,並將兩個輸出構成一個矩陣output,相當於輸入變成了input,輸出變成了output,

❸ 求預測一組數據的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('客流量(百萬)');
運行結果:

❹ 用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);

❺ 求matlab高手寫bp神經網路寫一個6輸入3輸出的模型

比如輸入以下這些,屬於2輸入1輸出的:
p=[1,2;3,4;5,6;7,8];
%輸入 一共四組,每組兩個

t=[3,7,11,15];
%教師輸出 只輸出1個值,對應輸入的4個
net=newff(p',t,{10,10},{'tansig','tansig'},'trainlm');
%創建名為net的bp網路
%newff(輸入,輸出,{隱層節點,隱層節點。。。有幾層設幾個},{『傳輸 函數』,『傳輸函數』。。。有幾層設幾個},訓練函數)

net.trainParam.goal = 0.00001; %設置精確度
net.trainParam.epochs = 5000; %設置步長

[net,tr] = train(net,p',t); %訓練開始
。。。。。。
%訓練完以後,可以進行模擬,比如
p=[10,20];
a=sim(net,p')
如果是分類的話,比如分兩類
再打
a=a>10;
就能分成兩類

❻ 求一個bp神經網路預測模型的MATLAB程序

BP神經網路預測的步驟:

1、輸入和輸出數據。

2、創建網路。fitnet()

3、劃分訓練,測試和驗證數據的比例。net.divideParam.trainRatio;net.divideParam.valRatio;net.divideParam.testRatio

4、訓練網路。train()

5、根據圖表判斷擬合好壞。ploterrcorr();parcorr();plotresponse()

6、預測往後數據。net()

7、畫出預測圖。plot()

執行下列命令

BP_prediction

得到結果:

[ 2016, 14749.003045557066798210144042969]

[ 2017, 15092.847215188667178153991699219]

[ 2018, 15382.150005970150232315063476562]

[ 2019, 15398.85769711434841156005859375]

[ 2020, 15491.935150090605020523071289062]

閱讀全文

與bp神經網路及matlab實現相關的資料

熱點內容
沒有網路怎麼定位 瀏覽:972
剪切到優盤文件找不到了 瀏覽:764
電腦管家的文件名 瀏覽:910
如何將掃描文件轉換為電子版 瀏覽:4
u盤的h246文件怎麼播放 瀏覽:203
如何用阿里雲伺服器學習資料庫 瀏覽:84
華為文件管理找不到下載文件 瀏覽:409
word模板dot的使用 瀏覽:466
春節車找人app哪個好 瀏覽:618
文件管理電腦找不到了怎麼辦 瀏覽:516
如何改變app圖標圖片 瀏覽:767
什麼是大數據結構的最低層 瀏覽:575
pdf文件給對方後期改密碼收回 瀏覽:295
word2010怎麼畫箭頭 瀏覽:184
win10的自動備份文件在哪個目錄 瀏覽:843
文件夾打包成jar 瀏覽:456
卸載魯大師找不到文件 瀏覽:173
匯編程序不知道哪裡有錯誤 瀏覽:821
ai視頻教程cs5 瀏覽:379
億林網路怎麼樣 瀏覽:102

友情鏈接