智能控制实验遗传算法产量预测神经网络(上)..docxVIP

智能控制实验遗传算法产量预测神经网络(上)..docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能控制实验遗传算法产量预测神经网络(上).

实验一、BP及RBP神经网络逼近 %RBF能够逼近任意的非线性函数 X=-4:0.08:4;%输入 T=1.1*(1-X+2*X.^2).*exp(-X.^2./2);% 输出 net=newrb(X,T,0.001,1);%样本训练 X1=-1:0.01:1;%测试样本 y=sim(net,X1);%组建推理曲线 figure;%新建窗口 plot(X1,y,-r,X,T,:b,LineWidth,3);%绘图 %BP逼近任意函数的MATLAB实现 X=-4:0.08:4;%输入样本 T=8+2*exp(1-X.^2).*cos(2*pi*X);%输出样本 net=newff(minmax(X),[20,1],{tansig,purelin});%建立BP网络 net.trainParam.epochs=15000;%训练次数 net.trainParam.goal=0.001;%训练误差 net=train(net,X,T);%对BP网络进行训练 X1=-1:0.01:1;%测试样本y=sim(net,X1);%对BP网络进行仿真figure;%新建窗口 plot(X1,y,-r,X,T,:b,LineWidth,2);%画函数曲线%BP算法的MATLAB实现程序lr=0.05;%步长err_goal=0.001;%误差max_epoch=10000;%训练次数a=0.9;%惯性系数Oi=0;%隐层输出Ok=0;%输出层输出X=[1 1;-1 -1;1 1];%训练样本T=[1 1;1 1];%目标输出[M,N]=size(X);%[M,N]=[3,4]q=8;%隐层神经元的个数为8[L,N]=size(T);%[L,N]=[2,2]wij=rand(q,M);%0到1的随机数生成8行3列权值矩阵wki=rand(L,q);%隐层与输出层之间的权值矩阵wij0=zeros(size(wij));%权值矩阵各个元素变为0wki0=zeros(size(wki));for epoch=1:max_epoch%训练次数变化 %计算隐层各神经元输出 NETi=wij*X;%隐层输入 for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;%隐层输出 end end %计算输出层各神经元输出 NETk=wki*Oi;%输出层输入 for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1;%输出层输出值 end end %计算误差函数 E=((T-Ok)*(T-Ok))/2;%输出误差 if (Eerr_goal) break; end %调整输出层加权系数,加入了惯性项a*(wki-wki) deltak=Ok.*(1-Ok).*(T-Ok);%输出层局部梯度 w=wki; wki=wki+lr*deltak*Oi;%+a*(wki-wki0);%新的权值矩阵wki wki0=w; %调整隐层加权系数,加入了惯性项a*(wij-wij0) deltai=Oi.*(1-Oi).*(deltak*wki);%i,j层之间的局部梯度 w=wij; wij=wij+lr*deltai*X+a*(wij-wij0);%下次迭代时的权值矩阵wij0=w; endepoch %显示计算次数 %根据训练好的wki,wij和给定的输入计算输出X1=X; %计算隐层各神经元的输出NETi=wij*X1;%隐层i的输入值for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1;%隐层输出 endend %计算输出层各神经元的输出NETk=wki*Oi;%输出层k的输入值for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1;%输出层输出值 endendOk运行结果:epoch = 516Ok = 0.9646 0.9646 0.9728 0.9728

文档评论(0)

sdgr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档