⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yichuanbp.m

📁 此包含有遗传算法、粒子群算法、BP算法优化对角递归神经网络的MATLAB程序
💻 M
字号:
function [e,y]=yichuanBP(p,o,M,endz_indiv)
%M是迭代次数
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不会把所有样本的输出全部叠加
     for j=1:8 %隐层节点数
        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('测试样本'); ylabel('丙烯/ppm');legend('实际曲线','遗传算法');
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -