资源描述:
《BP神经网络VB程序汇总》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PrivateSubCommand2_Click()Label2.Caption="样本训练中…"DimiAsInteger,jAsInteger,kAsInteger,pAsInteger,sAsSingleDimMaxx(1To3)AsSingle,Minx(1To3)AsSingle,Meanx(1To3)AsSingleDimx(1To3,1To100)AsSingle,sumx(1To3)AsSingle,TempAsSingleDimDatex(1To3,1To100)AsSingle,inputx(1
2、To3)AsSingle,outputx(1To100)AsSingleDimEx(1To100)AsSingleDimtime(1To5000)AsInteger,cishu(1To100)AsIntegerDimDv_1(1To5,1To3)AsSingle,Dw_1(1To5)AsSingleDimRAsSingleDimMaxdAsSingle,MindAsSingleDims1(1To5)AsSingle,y1(1To5,1To100)AsSingle,s2AsSingle,y2(1To100)AsSin
3、gleDimdeltW(1To100)AsSingle,deltV(1To5,1To100)AsSingleDimDw(1To5)AsSingle,Dv(1To5,1To3)AsSingleDimMyIn(1To3)AsSingleDimErrorx(1To5000)AsSingleRandomizeFori=1To3Maxx(i)=0Minx(i)=0Meanx(i)=0NextiTemp=0Maxd=0Mind=0Fori=1To5Forj=1To3Dv_1(i,j)=0v(i,j)=2*Rnd-1NextjD
4、w_1(i)=0w(i)=2*Rnd-1NextiForj=1To3Fori=1To100x(j,i)=4*(2*Rnd-1)Nextisumx(j)=0Nextj'求最值Forj=1To3Fori=1To100Ifx(j,i)>=Maxx(j)ThenMaxx(j)=x(j,i)EndIfIfx(j,i)<=Minx(j)ThenMinx(j)=x(j,i)Temp=Temp+x(j,i)EndIfNextisumx(j)=TempTemp=0Meanx(j)=sumx(j)/100Nextj'归一化Forj=1
5、To3Fori=1To100IfMaxx(j)-x(j,i)>=x(j,i)-Minx(j)ThenR=Maxx(j)-x(j,i)ElseR=x(j,i)-Minx(j)EndIfDatex(j,i)=(x(j,i)-Meanx(j))/RNextiNextj'期望输出Fori=1To100Forj=1To3inputx(j)=Datex(j,i)Nextjoutputx(i)=2*(inputx(1)+Sin(inputx(2))+Exp(inputx(3)))Nexti'输出归一化Fori=1To100IfM
6、axd<=outputx(i)ThenMaxd=outputx(i)EndIfIfMind>=outputx(i)ThenMind=outputx(i)EndIfNextiFori=1To100Ex(i)=(outputx(i)-Mind)/(Maxd-Mind)Nexti'训练Fors=1To5000Step1time(s)=sForp=1To100cishu(p)=pFori=1To3MyIn(i)=Datex(i,p)NextiFori=1To5Forj=1To3Temp=Temp+v(i,j)*MyIn(j
7、)Nextjs1(i)=TempTemp=0NextiFori=1To5y1(i,p)=1/(1+Exp(-s1(i)))NextiFori=1To3Temp=y1(i,p)*w(i)+TempNextis2=TempTemp=0y2(p)=1/(1+Exp(-s2))deltW(p)=(Ex(p)-y2(p))*y2(p)*(1-y2(p))Fori=1To5deltV(i,p)=deltW(p)*w(i)*y1(i,p)*(1-y1(i,p))NextiNextp'误差Fori=1To100Temp=Temp+
8、(Ex(i)-y2(i))^2NextiErrorx(s)=TempTemp=0'调整权值Fori=1To5Dw_1(i)=Dw(i)NextiFori=1To5Forj=1To100Temp=Temp+deltW(j)*y1(i,j)NextjDw(i)=TempTemp=0NextiFori=1To5Forj=1To3Dv_1(i,j)=Dv(i,j)N