アットウィキロゴ

dotuuu

package dk;
 
public class pro {
 
    int[] point=new int[100];
     int[] pointx=new int[100];
    double[] avg=new double[101];
  double[] delta=new double[101];
 
     double[] sigx=new double[11];
    double[] mux=new double[11];
     double[] p=new double[11];
    double[] mu=new double[11];
    double[] sig=new double[11];
 int datanumber,number;
 
 
      double[] ps=new double[11];
    double[] muxs=new double[11];
    double[] sigxs=new double[11];
 
 
    double[][] q=new double[31][11];
  double[][] rate=new double[31][11];
 
    public static void main(String[] args) {
        pro r=new pro();
    }
 
    pro(){
 
 
 
     int s,sx; 
   point[	1	]=1351	;
point[	2	]=	296	;
point[	3	]=	265	;
point[	4	]=	227	;
point[	5	]=	238	;
point[	6	]=	209	;
point[	7	]=	197	;
point[	8	]=	169	;
point[	9	]=	183	;
point[	10	]=	149	;
point[	11	]=	164	;
point[	12	]=	133	;
point[	13	]=	136	;
point[	14	]=	125	;
point[	15	]=	141	;
point[	16	]=	124	;
point[	17	]=	99	;
point[	18	]=	89	;
point[	19	]=	61	;
point[	20	]=	60	;
point[	21	]=	410	;
 
 
pointx[	1	]=	54	;
pointx[	2	]=	205	;
pointx[	3	]=	339	;
pointx[	4	]=	380	;
pointx[	5	]=	407	;
pointx[	6	]=	385	;
pointx[	7	]=	358	;
pointx[	8	]=	336	;
pointx[	9	]=	298	;
pointx[	10	]=	265	;
pointx[	11	]=	223	;
pointx[	12	]=	234	;
pointx[	13	]=	191	;
pointx[	14	]=	168	;
pointx[	15	]=	157	;
pointx[	16	]=	133	;
pointx[	17	]=	93	;
pointx[	18	]=	89	;
pointx[	19	]=	86	;
pointx[	20	]=	77	;
pointx[	21	]=	348	;
 
 
 
avg[	1	]=	270	;
avg[	2	]=	265.9	;
avg[	3	]=	311.9	;
avg[	4	]=	317.3	;
avg[	5	]=	351.2	;
avg[	6	]=	357.7	;
avg[	7	]=	395.9	;
avg[	8	]=	424.1	;
avg[	9	]=	457.5	;
avg[	10	]=	483.8	;
avg[	11	]=	572.2	;
avg[	12	]=	569.3	;
avg[	13	]=	608.9	;
avg[	14	]=	677.7	;
avg[	15	]=	691.8	;
avg[	16	]=	702.8	;
avg[	17	]=	769.8	;
avg[	18	]=	812	;
avg[	19	]=	839	;
avg[	20	]=	884.1	;
avg[	21	]=	1193.40	;
 
 
 
 
 
 datanumber=21;
 number=10;
 
 for(s=1;s<datanumber+1;s++){
delta[s]=50;    
}
 
 
   for(sx=1;sx<number+1;sx++){  
   mu[sx]=100*sx;
   sig[sx]=50;
   mux[sx]=100*sx;
   sigx[sx]=50;
   p[sx]=0.1;
   }
int m;
   for(m=1;m<6;m++){
 
   double[] ratex=new double[21];
 
int tr;
for(tr=1;tr<datanumber+1;tr++){
   rate sub=new rate();
   sub.mux=mux;
   sub.sigx=sigx;
   sub.p=p;
   sub.number=number;
   sub.avg=avg;
   sub.delta=delta;
   sub.makedata(tr);
   ratex=sub.rate;
 
  for(sx=1;sx<number+1;sx++){ 
  rate[tr][sx]=ratex[sx];
  } 
  }
 
rev sub3=new rev();
   sub3.number=number;
   sub3.datanumber=datanumber;
   sub3.avg=avg;
   sub3.delta=delta;
   sub3.rate=rate;
   sub3.makedata();
   muxs=sub3.mux;
    sigxs=sub3.sigx;
 
 
  cal sub2=new cal();
   sub2.mux=mux;
   sub2.sigx=sigx;
   sub2.number=number;
   sub2.datanumber=datanumber;
   sub2.avg=avg;
   sub2.delta=delta;
   sub2.rate=rate;
   sub2.makedata();
   delta=sub2.delta;
 
 
 
   for(sx=1;sx<number+1;sx++){ 
  mux[sx]=muxs[sx];
  sigx[sx]=sigxs[sx];
 
   } 
 
    System.out.println(mux[1]+","+sigx[1]);
    }
 
 
 
 
 
    }
   double f(double x,double mux,double sigx){
double pi,f1,f2;
 
        pi=Math.PI;
 
        f2=Math.sqrt(2*pi*sigx*sigx);
        f1=-(x-mux)*(x-mux)/(2*sigx*sigx);
 
        return Math.exp(f1)/f2;
}
 
}
 
package dk;
 
 
public class rate {
 
    int[] point=new int[100];
     int[] pointx=new int[100];
    double[] avg=new double[101];
  double[] delta=new double[101];
 
     double[] sigx=new double[11];
    double[] mux=new double[11];
     double[] p=new double[11];
    double[] mu=new double[11];
    double[] sig=new double[11];
 int datanumber,number;
 
 
      double[] ps=new double[11];
    double[] mus=new double[11];
    double[] sigs=new double[11];
 
 
    double[][] q=new double[31][11];
  double[] rate=new double[31];
 
 
 
    void makedata(int tr){
 
 
 
     int s,sx; 
 
   double[] px=new double[3000];
  double[][] py=new double[11][3000];
   int y;
   for(y=1;y<2000;y++){
   px[y]=f(y,avg[tr],delta[tr]); 
   }
 
 
  for(y=1;y<2000;y++){
  double p1=0;
   for(s=1;s<number+1;s++){
   p1=p1+f(y,mux[s],sigx[s]);
   }
 
 for(s=1;s<number+1;s++){
   py[s][y]=f(y,mux[s],sigx[s])/p1;
 }
 
  }
 
  double[] pp=new double[21];
 
 
  for(s=1;s<number+1;s++){
  double p2=0;
   for(y=1;y<2000;y++){
   p2=p2+py[s][y]*px[y];
 
   }
 pp[s]=p2;  
  }
 
 
   double p3=0;
   for(s=1;s<number+1;s++){
   p3=p3+pp[s];
   }
 
   for(s=1;s<number+1;s++){
   rate[s]=pp[s]/p3;
   }
 
 
    }
   double f(double x,double mux,double sigx){
double pi,f1,f2;
 
        pi=Math.PI;
 
        f2=Math.sqrt(2*pi*sigx*sigx);
        f1=-(x-mux)*(x-mux)/(2*sigx*sigx);
 
        return Math.exp(f1)/f2;
}
 
}
 
 
package dk;
 
 
public class rev {
 
    int[] point=new int[100];
     int[] pointx=new int[100];
    double[] avg=new double[101];
  double[] delta=new double[101];
 
     double[] sigx=new double[11];
    double[] mux=new double[11];
     double[] p=new double[11];
    double[] mu=new double[11];
    double[] sig=new double[11];
 int datanumber,number;
 
 
      double[] ps=new double[11];
    double[] mus=new double[11];
    double[] sigs=new double[11];
 
 
    double[][] q=new double[12][2001];
  double[][] rate=new double[31][11];
 
 
 
    void makedata(){
 
   int tr=5;     
 for(tr=1;tr<datanumber+1;tr++){
   int y,s;
 for(y=1;y<2000;y++){
 double p1=0; 
 for(s=1;s<number+1;s++){
 q[s][y]=q[s][y]+rate[tr][s]*f(y,avg[tr],delta[s]);
 }
 }
 
 for(s=1;s<number+1;s++){
 double a1=0;
double a2=0; 
double a3=0;
   for(y=1;y<2000;y++){
   a1=a1+q[s][y];
   a2=a2+q[s][y]*y;    
   }
 mux[s]=a2/a1;
 
 for(y=1;y<2000;y++){
 a3=a3+q[s][y]*(y-mux[s])* (y-mux[s]);   
   }
sigx[s]=Math.sqrt(a3/a1);
 }  
 
 }
 
 
 
    }
   double f(double x,double mux,double sigx){
double pi,f1,f2;
 
        pi=Math.PI;
 
        f2=Math.sqrt(2*pi*sigx*sigx);
        f1=-(x-mux)*(x-mux)/(2*sigx*sigx);
 
        return Math.exp(f1)/f2;
}
 
}
 
最終更新:2017年01月14日 03:42