?? yichuanbp.m
字號(hào):
function [e,y]=yichuanBP(p,o,M,endz_indiv)
%M是迭代次數(shù)
t=8.*ones(1,8);
t=cumsum(t);
t=[0 t];
wi=zeros(8,8);
wo=zeros(8,1);
wd=zeros(8,1);
xxi=0.79668;
xxd=0.56882;
xxo=0.13517;
for j=1:8
wi(j,:)=endz_indiv(1,t(j)+1:t(j+1));
wd(j)=endz_indiv(1,(64+j));
wo(j)=endz_indiv(1,72+j);
end
xj=zeros(8,1);
xj_1=xj;
e=zeros(1,86);
y=zeros(1,86);
N=0;
while N<M
N=N+1;
for k=1:86
Ini = p(k,:)';
yo=0; %放在這里,為了下面命令yo不會(huì)把所有樣本的輸出全部疊加
for j=1:8 %隱層節(jié)點(diǎn)數(shù)
sj(j)=wi(j,:)*Ini+wd(j)*xj_1(j);
xj(j)=(1-exp(-sj(j)))/(1+exp(-sj(j)));
yo=yo+xj(j)*wo(j);
xj_1(j)=xj(j);
end
y(k)=yo;
e(k) = o(k) - y(k);
pj=zeros(8,1);
for j=1:8
Pj(j)=wo(j)*(1+xj(j))*(1-xj(j))*xj_1(j);
end
Qij=zeros(8,8);
for j=1:8
for i=1:8
Qij(i,j)=wo(j)*(1+xj(j))*(1-xj(j))*Ini(i);
end
end
for j=1:8
wo(j)=wo(j)+xxo*e(k)*xj(j);
wd(j)=wd(j)+xxd*e(k)*Pj(j);
end
for j=1:8
for i=1:8
wi(i,j)=wi(i,j)+xxi*e(k)*Qij(i,j);
end
end
end
end
%[y1]=postmnmx(y,2330.7,2636.8);[o1]=postmnmx(o,2330.7,2636.8);e1=sum(e(1,:).*e(1,:))/86;
%plot([1:86],o1,[1:86],y1,'-r'),axis([1 86 2300 2700]);xlabel('測(cè)試樣本'); ylabel('丙烯/ppm');legend('實(shí)際曲線','遺傳算法');
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -