package p5;
public class pro {
int number,datanumber;
double[][] rate=new double[22][11];
double[] avg=new double[22];
double[] delta=new double[22];
int[] point=new int[22];
double[] muxs=new double[11];
double[] sigxs=new double[11];
double[] mus=new double[11];
double[] sigs=new double[11];
public static void main(String[] args) {
pro t=new pro();
}
pro(){
double[][] count=new double[12][2001];
number=10;
datanumber=21;
int s;
int tr,y;
for(s=1;s<number+1;s++){
for(tr=1;tr<datanumber+1;tr++){
for(y=0;y<2001;y++){
count[s][y]=count[s][y]+point[tr]*rate[tr][s]*f(y,avg[tr],delta[tr]);
}
}
}
for(s=1;s<number+1;s++){
double a1=0;
double a2=0;
double a3=0;
for(y=0;y<2001;y++){
a1=a1+count[s][y];
a2=a2+y*count[s][y];
}
if(a1>0)muxs[s]=a2/a1;
a3=0;
for(y=0;y<2001;y++){
a3=a3+count[s][y]*(y-muxs[s])*(y-muxs[s]);
}
if(a1>0)sigxs[s]=Math.sqrt(a3/a1);
}
for(s=1;s<number+1;s++){
double a1=0;
double a2=0;
double a3=0;
for(tr=1;tr<datanumber+1;tr++){
a1=a1+point[tr]*rate[tr][s];
double z=50*tr-25;
if(tr==21)z=1200;
a2=a2+z*point[tr]*rate[tr][s];;
}
if(a1>0)mus[s]=a2/a1;
a3=0;
for(tr=1;tr<datanumber+1;tr++){
double z=50*tr-25;
if(tr==21)z=1200;
a3=a3+(z-mus[s])*(z-mus[s])*point[tr]*rate[tr][s];
}
if(a1>0)sigs[s]=Math.sqrt(a3/a1);
}
}
double f(double x,double mup,double sigp){
double pi,f1,f2;
pi=Math.PI;
f2=Math.sqrt(2*pi*sigp*sigp);
f1=-(x-mup)*(x-mup)/(2*sigp*sigp);
return Math.exp(f1)/f2;
}
}
最終更新:2017年01月12日 05:12