資源描述:
《c語言編bp算法及使用說明.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、c語言編bp算法及使用說明訓(xùn)練樣本數(shù)據(jù)文件sample.txt輸入格式:(單樣本對)(x1,x2,x3....xh,d1,d2,d3,...dj)測試樣本數(shù)據(jù)輸入:(從鍵盤輸入)x1,x2,x3...xh屏幕輸出:y1,y2,y3...yj在確定網(wǎng)絡(luò)結(jié)構(gòu)以后,即可確定(輸入層)nh,(隱層)ni,(輸出層)nj,(樣本容量)nk每次使用之前請修改網(wǎng)絡(luò)結(jié)構(gòu)數(shù)據(jù)。?#include#include#include#include#definenh4/
2、/輸入層節(jié)點個數(shù)#defineni9//隱層節(jié)點個數(shù)#definenj3//輸出層節(jié)點個數(shù)#definenk30//樣本個數(shù)#definenr0.85/*學(xué)習(xí)效率*/#defineEPS0.00001floatx[nk][nh],//每個樣本在輸入層每個節(jié)點的值d[nk][nj],//每個樣本在輸出層每個節(jié)點的值whi[nh][ni],//輸入層和隱藏層每個節(jié)點的連接權(quán)重wij[ni][nj],//隱藏層和輸出層的連接權(quán)重thi[ni],thj[nj];//隱藏層和輸出層每個節(jié)點的閾植inth,i,j,k;float
3、xmin[nh],xmax[nh],//存放輸入層中每個屬性節(jié)點的最小和最大值,便于歸一化dmin[nj],dmax[nj];FILE*fp1,*fp2;voidinit(void);voidstartleaning(void);voidtestsample(void);voidreadw(void);voidwritew(void);floatsigmoid(floata);doubleranu(void);voidinit(void){intmin,max;if(fp1==0){?clrscr();?printf
4、("Cannotfindthelearningsamplefile!");?exit(0);}for(k=0;k5、層接點上,對每個樣本??{??if(x[k][h]x[max][h])max=k;??}?xmin[h]=x[min][h];//所有樣本中h屬性上最小的值?xmax[h]=x[max][h];?for(k=0;k6、[j]d[max][j])max=k;??}??dmin[j]=d[min][j];??dmax[j]=d[max][j];?for(k=0;k7、tt,error[nk],gerror,xj[nj],xi[ni],yj[nj],yi[ni],pxi[ni],pxj[nj];if(fp2==0)?{?for(i=0;i8、.1+0.2*ranu();??fp2=fopen("w.txt","w+");?}else?readw();/*學(xué)習(xí)開始*/printf("tPleaseenterthelearningtimes:");scanf("%ld",&nt);for(n=0;n