“常用公式”在线计算,“设计手册”在线查询
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 1 个关于本帖的回复 最后回复于 2013-8-16 09:35

沙发
秦晓蕊 新来的 发表于 2013-8-16 09:35:19 | 只看该作者
研发埠培训中心
clear%数据输入huanghe_p=[370503434575490420560640558343326405446423422697598377435472451667601689541485425389382707422];huanghe_t=[5157135867537205677179878104894535896395685959828495196156525999418939997587016305615201040 535];%归一化处理p=(huanghe_p-min(huanghe_p))/(max(huanghe_p)-min(huanghe_p));t=(huanghe_t-min(huanghe_t))/(max(huanghe_t)-min(huanghe_t));%数据输入2:网络有关参数EPOCHS=10000;GOAL=0.000005;%建立bp神经网络,并训练,仿真。其中输入为p,输出为t%-------------------------隐层神经元确定-----------------------------s=3:15;%s 为常向量,表示神经元的个数res=zeros(size(s));%res将要存储误差向量,这里先置零pn=[p(1:5);p(6:10);p(11:15);p(16:20)];tn=[t(1:5);t(6:10);t(11:15);t(16:20)];for i=1:length(s)               net=newff(minmax(pn),[s(i),4],{'tansig','purelin'},'trainlm');    net.iw{1,1}=zeros(size(net.iw{1,1}))+0.5;    net.lw{2,1}=zeros(size(net.lw{2,1}))+0.75;    net.b{1,1}=zeros(size(net.b{1,1}))+0.5;    net.b{2,1}=zeros(size(net.b{2,1}));    net.trainParam.epochs=EPOCHS;    net.trainParam.goal =GOAL;    net=train(net,pn,tn);    y=sim(net,pn);e=tn-y;error=mse(e,net);res(i)=norm(error);end%选取最优神经元数,number为使得误差最小的隐层神经元个数number=find(res==min(res));if(length(number)>1) no=number(1)else no=numberendclear error,res%选定隐层神经元数目后,建立网络,训练仿真。net=newff(minmax(pn),[no,4],{'tansig','purelin'},'trainlm');    net.iw{1,1}=zeros(size(net.iw{1,1}))+0.5;    net.lw{2,1}=zeros(size(net.lw{2,1}))+0.75;    net.b{1,1}=zeros(size(net.b{1,1}))+0.5;    net.b{2,1}=zeros(size(net.b{2,1}));    net.trainParam.epochs=EPOCHS;    net.trainParam.goal =GOAL;net=train(net,pn,tn);y=sim(net,pn);e=tn-y;error=mse(e,net)%error为网络的误差向量r=norm(error);%r为网络的整体误差save net                      %保存最好的网络%预测input=[p(11:15);p(16:20);p(21:25);p(26:30)];yuce=sim(net,input);%结果反归一化y1=[y(1, y(2, y(3, y(4,];yuce1=[yuce(1, yuce(2, yuce(3, yuce(4,];t1=y1*(max(huanghe_t(1:20))-min(huanghe_t(1:20)))+min(huanghe_t(1:20));yuce2=yuce1*(max(huanghe_t(1:20))-min(huanghe_t(1:20)))+min(huanghe_t(1:20));%计算误差wucha=abs(t1-huanghe_t(1:20))./huanghe_t(1:20)b=minmax(wucha);average_wucha=mean(wucha);%作图figure(1)plot(1:20,huanghe_t(1:20),'*-',1:20,t1,'o:')figure(2)plot(1:20,huanghe_t(11:30),'*-',1:20,yuce2,'o:')
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台