神经网络BP算法程序C语言实现.docVIP

  • 21
  • 0
  • 约6.06千字
  • 约 7页
  • 2017-08-11 发布于重庆
  • 举报
神经网络BP算法程序C语言实现

/************************************************ Back Propagation Algorithm ************************************************/ #include stdio.h #include stdlib.h #include math.h /************************************************ The Definition of User Data ************************************************/ #define MAXINPUT 1 #define MAXHIDE 3 #define MAXOUTPUT 1 #define MAX 1 #define MIN -1 #define T 100 #define CA 4 double a=0.8; double b=0.05; double k=0; double error=0; int t=0; double sout[MAXOUTPUT]; double shide[MAXHIDE]; double m=2; double howchange[MAXHIDE][MAXOUTPUT]; double ihwchange[MAXINPUT][MAXHIDE]; double CatalogueOut[CA][MAXOUTPUT]; double CatalogueIn[CA][MAXINPUT]; /************************************************ The Definition of Data Structure ************************************************/ struct theBP { double input[MAXINPUT]; double hide[MAXHIDE]; double output[MAXOUTPUT]; double ihw[MAXINPUT][MAXHIDE]; double how[MAXHIDE][MAXOUTPUT]; }; struct theBP bpa; /************************************************ Definition of Prototype ************************************************/ void WeightInitial(); void InitialError(); void InPutCatalogue(); void CalculateOut(int k); void CalculateError(int k); void ReverseHideError(); void CalculateChange(); void CalculateNewWeight(); void Test(); void TestCalculateOut(); void camain(); void main() { WeightInitial(); // InitialError(); InPutCatalogue(); //do int m=0; while(1) { printf(请选择要进行的操作\n); printf(0----------------学习\n); printf(1----------------测试\n); printf(2----------------退出\n); scanf(%d,m); switch(m) { case 0: camain(); break; case 1: Test(); break; case 2: exit(0); }//while((error)k);; } } void camain() { for(t=0;tT;t++) { for(int k=0;kCA;k++) { CalculateOut(k); CalculateError(k); ReverseHideError(); CalculateChange(); CalculateNewWeight(); }

文档评论(0)

1亿VIP精品文档

相关文档