代码如下:
CFnn::CFnn()
{
fp=fopen("www.txt","w+");
ddd=0;
Error=0.0;
Input[0]=0;
Input[1]=0;
Output=0;
m_Bool=false;
InitNet();
}
CFnn::~CFnn()
{
fclose(fp);
}
//模糊神经网络控制的主函数
double CFnn::Control(double input1,double input2)
{
Input[0]=input1;
Input[1]=input2;
if(m_Bool==true)
{
NetIO();
Teacher();
}
m_Bool=true;
Output=NetIO();
return(Output);
}
//模糊神经网络的输入和输出的映射
double CFnn::NetIO()
{
double sum,Out;
if(ddd==2)
{
ddd--;
;}
ddd++;
int i,j,k;
for(i=0;i<2;i++)
{
for(j=0;j<9;j++)
{
NetIn_1[i][j]=Input[i]-W_m[i][j];
NetOut_1[i][j]=NetIn_1[i][j]*NetIn_1[i][j];
NetIn_2[i][j]=-NetOut_1[i][j]/(W_delta[i][j]*W_delta[i][j]);
NetOut_2[i][j]=exp(NetIn_2[i][j]);//问题提示是这里。。。
}
}
k=0;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
NetIn_3[k]=NetOut_2[0][i]*NetOut_2[1][j];
k++;
}
}
sum=0;
for(i=0;i<81;i++)
sum=sum+NetIn_3[i];
for(i=0;i<81;i++)
NetOut_3[i]=NetIn_3[i]/sum;
Out=0;
for(i=0;i<81;i++)
{
Out=Out+NetOut_3[i]*W_t[i];
}
Out=Out/4.0;
TRACE("the Error is :%lf \n",Error);
TRACE("the out is :%lf \n",Out);
return(Out);
}
小白求解释!