アットウィキロゴ

あうとn

package nnx;
 
 
public class auto {
 
     int number;
    int number_step;
    int number_var;
    double[] beta=new double[5];
   double[][] alpha=new double[5][5];
   double[][][] theta=new double[6][5][5];
 
   double[][] sig_op=new double[5][5];
   double[][] sig=new double[5][5];
    int[] op=new int[101];
   int[] y=new int[101];
    double[][] x=new double[101][4];
 int s,sx,tr;
 int eq,v; 
  double[][] e=new double[5][101];
  double[][] es=new double[5][101];
 
 
 void makedata(){
 
 
 
 
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
double z=alpha[eq][0];
for(v=1;v<number_var+1;v++){
z=z+alpha[eq][v]*x[s][v];    
}    
es[eq][s]=0;
if(z>0)es[eq][s]=1;
}
}
 
 
 
for(tr=1;tr<number_step+1;tr++){
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
e[eq][s]=es[eq][s];
}}
for(eq=1;eq<number_var+1;eq++){
for(s=1;s<number+1;s++){
double z=theta[tr][eq][0];
for(v=1;v<number_var+1;v++){
z=z+theta[tr][eq][v]*e[v][s];    
}    
es[eq][s]=0;
if(z>0)es[eq][s]=1;
}
}
}
 
int trial;
double maxc=500;
for(trial=1;trial<11;trial++){
 
nn_auto sub=new nn_auto();
sub.es=es;
sub.number_var=number_var;
sub.number=number;
sub.makedata();
sig=sub.sig;
 
double m1=count();
 
 
 
if(m1<maxc){
maxc=m1;
 for(eq=1;eq<number_var+1;eq++){
        for(v=0;v<number_var+1;v++){
        sig_op[eq][v]=sig[eq][v];
        }
        }
 
}
 
 
}
 
 
 
 
 
 
 
}
double count(){
 
    int s,eq,v;
 
    double[][] esx=new double[5][101];
 
        for(s=1;s<number+1;s++){
        for(eq=1;eq<number_var+1;eq++){
         double z=sig[eq][0];
        for(v=1;v<number_var+1;v++){
        z=z+sig[eq][v]*es[v][s];
        }
        esx[eq][s]=0;
        if(z>0)esx[eq][s]=1;
        }
        }
 
 
        double z1=0;
        for(s=1;s<number+1;s++){
        for(eq=1;eq<number_var+1;eq++){
        z1=z1+(es[eq][s]-esx[eq][s])*(es[eq][s]-esx[eq][s]);
        }
        }
 
 
    return z1;
 
 
}
 
 
 
 
}
 
最終更新:2018年03月13日 01:37