package p4;
public class delta {
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[] avg=new double[101];
double[] delta=new double[101];
double[] ps=new double[11];
double deltas;
void makedata(int tr){
int sx,s;
int y,y1,y2;
y1=50*tr-50;
y2=50*tr;
if(y2>1000)y2=2000;
for(s=1;s<11;s++){
double p1=0;
for(y=y1;y<y2;y++){
p1=p1+p[s]*f(y,mu[s],sig[s]);
}
ps[s]=p1;
}
double[] rate=new double[11];
for(y=0;y<2000;y++){
double p2=0;
double[] px=new double[12];
for(s=1;s<11;s++){
px[s]=ps[s]*f(y,mux[s],sigx[s]);
}
p2=0;
for(s=1;s<11;s++){
p2=p2+px[s];
}
for(s=1;s<11;s++){
px[s]=px[s]/p2;
}
for(s=1;s<11;s++){
rate[s]=rate[s]+px[s]*f(y,avg[tr],delta[tr]);
}
}
double[] pp=new double[2001];
for(y=0;y<2000;y++){
double p3=0;
for(s=1;s<11;s++){
p3=p3+rate[s]*f(y,mux[s],sigx[s]);
}
pp[y]=p3;
}
double z1=0;
for(y=0;y<2000;y++){
z1=z1+pp[y]*(y-avg[tr])*(y-avg[tr]);
}
double z2=0;
for(y=0;y<2000;y++){
z2=z2+pp[y];
}
deltas=Math.sqrt(z1/z2);
}
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月10日 04:12