#inclu de "iostream.h" #inclu de "iomanip.h" #inclu de "stdlib.h" #inclu de "math.h" #inclu de "stdio.h" #inclu de "time.h" #inclu de "fstream.h" #define N 4 //学习样本个数 #define T_N 4 //检验样本的个数 #define IN 2 //输入层神经元数目 #define HN 3 //隐层神经元数目 #define ON 1 //输出层神经元数目 //一般化误差数组 dou ble delta_ON[N][ON]; dou ble delta_HN[N][HN]; // dou ble delta_IN[N][IN]; // dou ble P[IN]; //单个样本输入数据 dou ble P[N][IN]; //单个样本输入数据 // dou ble T[ON]; //单个样本教师数据 dou ble T[N][ON]; //单个样本教师数据 dou ble W[HN][IN]; //输入层至隐层权值 dou ble V[ON][HN]; //隐层至输出层权值 dou ble X[HN]; //隐层的输入 dou ble Y[ON]; //输出层的输入 // double H[HN]; //隐层的输出 double H[N][HN]; //隐层的输出 double O[ON]; //输出层的输出 double YU_HN[HN]; //隐层的阈值 double YU_ON[ON]; //输出层的阈值 // double err_m[N]; //第m 个样本的总误差 double err_m[N][ON]; //第m 个样本的总误差 double sum_err_m[N]; double a1; //输出层至隐层的学习效率 double a2; double b1; //隐层至输入层学习效率 double b2; ofstream out_test_result( "test_result.txt", ios::out ); //定义一个放学习样本的结构 struct { double input[IN]; //输入在上面定义是一个 double teach[ON]; //输出在上面定义也是一个 }Study_Data[N];//学习样本 //定义一个放检测样本的结构 struct { double input[IN]; //输入在上面定义是一个 double teach[ON]; //输出在上面定义也是一个 }Test_Data[T_N];//检测样本 /////////////////////////// //初始化权、阈值子程序///// /////////////////////////// initial() { //隐层权、阈值初始化// srand( (unsigned)time( NULL ) ); for(int i=0;i