アットウィキロゴ

修正

package bs;
 
 
 
 
 
 
public class optimal {
 
 
    double[] beta=new double[11];
    double alpha;
    int datanumber;
    int number;
 double[] y=new double[500];
 double[][] x=new double[500][4];
 
  double[] betas=new double[11];
 
  double[] d_beta=new double[11];
  double d_alpha;
 
  double[] vec_beta=new double[11];
  double vec_alpha;
  int s;
 
    void makedata(){
 
 
 
        int mode=0;
        while(mode<50){
 
        ex sub=new ex();
        sub.x=x;
        sub.y=y;
        sub.alpha=alpha;
        sub.beta=beta;
        sub.number=number;
        sub.datanumber=datanumber;
        double u1=sub.makedata();
 
 
 
  double h=0.01;      
        for(s=1;s<number+1;s++){
 
            int sx;
            for(sx=1;sx<number+1;sx++){
            betas[sx]=beta[sx];
            }
            betas[s]=beta[s]+h;
 
 
        ex sub2=new ex();
        sub2.x=x;
        sub2.y=y;
        sub2.alpha=alpha;
        sub2.beta=betas;
        sub2.number=number;
        sub2.datanumber=datanumber;
        double u2=sub2.makedata();
 
        d_beta[s]=(u2-u1)/h;
 
        }
 
 
 
        ex sub3=new ex();
        sub3.x=x;
        sub3.y=y;
        sub3.alpha=alpha+h;
        sub3.beta=betas;
        sub3.number=number;
        sub3.datanumber=datanumber;
        double u3=sub3.makedata();
 
        d_alpha=(u3-u1)/h;
 
 
 
 
 
 
  double du=d_alpha*d_alpha;
 for(s=1;s<number+1;s++){
 du=du+d_beta[s]*d_beta[s];
 }
 
 double delta=u1/(100*du);
 
 if(delta>5)mode=1000;
 
 
 for(s=1;s<number+1;s++){
 vec_beta[s]=beta[s]-d_beta[s]*delta;
 }
 vec_alpha=alpha-d_alpha*delta;      
 
 
 
 ex sub7=new ex();
        sub7.x=x;
        sub7.y=y;
        sub7.alpha=vec_alpha;
        sub7.beta=vec_beta;
        sub7.number=number;
        sub7.datanumber=datanumber;
        double u7=sub7.makedata();
 
 
 
        if(u1>u7){
 for(s=1;s<number+1;s++){
            beta[s]=vec_beta[s];
        }
         alpha=vec_alpha;
        }
 if(u7>u1)mode=1000;
 if(u1==u7)mode=1000;
 
     mode=mode+1;
 
 
        }
 
 
 
 
 
 
    }
 
 
 
 
}
 
最終更新:2016年12月07日 20:23