public class pro {
int[] point=new int[50];
double mu,sig;
int number;
double dmu,dsig;
public static void main(String[] args) {
pro te=new pro();
}
pro(){
number=10;
int s;
for(s=1;s<11;s++){
point[s]=20;
}
mu=4;
sig=2;
int mode=0;
while(mode<1000){
cal sub=new cal();
sub.point=point;
sub.number=number;
double u1=sub.makedata(mu,sig);
double h;
h=0.01;
cal sub2=new cal();
sub2.point=point;
sub2.number=number;
double u2=sub2.makedata(mu+h,sig);
dmu=(u2-u1)/h;
cal sub3=new cal();
sub3.point=point;
sub3.number=number;
double u3=sub3.makedata(mu,sig+h);
dsig=(u3-u1)/h;
double du=u1/100;
double t=du/(dsig*dsig+dmu*dmu);
cal sub4=new cal();
sub4.point=point;
sub4.number=number;
double u4=sub3.makedata(mu+dmu*t,sig+dsig*t);
System.out.println(mu+","+sig+","+u1+","+u4);
if(u4>u1){
mu=mu+dmu*t;
sig=sig+dsig*t;
}
mode=mode+1;
if(u1>u4)mode=10000;
}
}
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;
}
}
最終更新:2016年12月19日 09:30