污水處理的matlab源程序
x=[-0.4:0.04:3.6];
y=8+2*exp(1-x.^2).*cos(2*pi*x);
net=newff(minmax(x),[20,1],{'tansig','purelin'});
y1=sim(net,x);
net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,x,y);
y2=sim(net,x);
figure;
plot(x,y,'-',x,y1,'-',x,y2,'--');
title('原函數與網絡訓練前后的確仿真結果比較');
text(2,12,'原函數y');
text(2,11,'-未訓練網絡的仿真結果y1');
text(2,10,'--訓練后網絡的仿真結果y2');
這個程序如何轉化成
訓練BP神經網絡連接權值的源代碼(matlab)
Ir=0.05; %Ir為學習速率
err_goal=0.001;%期望最小誤差值
max_epoch=10000;
X=[0.75 1 0 1;0.25 0 0.55 0;0 0 0.45 0;0 0 0 0;0 0 0 0;1 1 1 1;0.5 0 0.5 0.5;0.5 0 0.5 0.5;0 1 0 0;1 1 1 1;0 0 0 0;0 0 0 0;0 0 0 0;0 0 0 0;1 1 1 1];
T=[0 0 0 0;0 1 1 1;0 0 0 0;1 0 0 0];%提供4組15輸入4輸出訓練集和目標集
[M,N]=size(X);q=10;[L,N]=size(T);
Wij=rand(q,M);
Wki=rand(L,q);
b1=zeros(q,1);b2=zeros(L,1);—隨機給定隱含層、輸出層偏值
for epoch=1:max_epoch
Oi=tansig(Wij*X,b1);
Ok=purelin(Wki*Oi,b2);
E=T-Ok;
deltak=deltalin(Ok,E);%計算輸出層的delta
deltai=deltatan(Oi,deltak,Wki);%計算隱含層的deita
[dWki,db2]=learnbp(Oi,deltak,Ir);%調整輸出層加權系數
Wki=Wki+dWki;b2=b2+db2;
[dWij,db1]=learnbp(X,deltai,Ir);
Wij=Wij+dWij;b1=b1+db1;
SSE=sumsqr(T-purelin(Wki*tansig(Wij*X,b1),b2));
if(SSE
本網站文章僅供交流學習 ,不作為商用, 版權歸屬原作者,部分文章推送時未能及時與原作者取得聯系,若來源標注錯誤或侵犯到您的權益煩請告知,我們將立即刪除.