アットウィキロゴ

産業連関表8

package miti4;
 
 
public class leo {
 
     double[][] x=new double[500][500];
       double[] y=new double[500];
  int number;
 double[] ex=new double[500];
   double[] im=new double[500];
 
 
   double x1;
 
     double[] c=new double[540];
    double[][] rate=new double[540][540];
     double[] alpha=new double[540];
 
      double[] ys=new double[540];
      double[] ims=new double[540];
       double[] cs=new double[540];
 
      double[][] delta=new double[540][540];
 
 
 
 
 
    void makedata(){
 
 
 
  pre();
 
      ys=y;
      cs=c;
      ims=im;
 
      int s,sx;
 
  for(s=1;s<number+1;s++){
 
     cs=c;
     ims=im;
     ys=y;
 
     cs[s]=cs[s]+1;
 
      sol();
   for(sx=1;sx<number+1;sx++){   
  delta[s][sx]=ys[sx]-y[sx];  
   }   
 
 
  }
 
 
 
 
 
 
  }
 
void sol(){
 
      int t;
      double e1;
 
      t=0;
      while(t<50){
      e1=cal();
      if(e1<0.0001)t=100;
      t=t+1;
      }
 
  }
 
 
  void pre(){
 
      double x2;
 
      int ip,ou;
 
      for(ip=1;ip<number+1;ip++){
      x2=0;
      for(ou=1;ou<number+1;ou++){
      x2=x2+x[ou][ip];         
      }
      c[ip]=y[ip]+im[ip]-ex[ip]-x2;  
      }
 
      for(ou=1;ou<number+1;ou++){
      for(ip=1;ip<number+1;ip++){
      rate[ou][ip]=x[ou][ip]/y[ou];         
      }
      }
 
 
      for(ip=1;ip<number+1;ip++){
      x2=0;
      for(ou=1;ou<number+1;ou++){
      x2=x2+x[ou][ip]; 
      }
      alpha[ip]=im[ip]/(c[ip]+x2); 
      }
 
  }
 
double cal(){
 
 double[] yp=new double[100];
 double[] imp=new double[100];
 int s,ip,ou;
 double y1,x2;
 
 for(ip=1;ip<number+1;ip++){
 y1=ex[ip]-ims[ip]+cs[ip]; 
 for(ou=1;ou<number+1;ou++){
 y1=y1+rate[ou][ip]*ys[ou];
 }
 yp[ip]=y1;
 }
 
 for(ip=1;ip<number+1;ip++){
 x2=cs[ip]; 
 for(ou=1;ou<number+1;ou++){
 x2=x2+rate[ou][ip]*ys[ou];
 }
 imp[ip]=alpha[ip]*x2;
 }
 
 double ep;
 
 ep=0;
 for(s=1;s<number+1;s++){
 ep=ep+(ys[s]-yp[s])*(ys[s]-yp[s]);
 }
 
 ims=imp;
 ys=yp;
 return ep;
}
 
 
 
}
 
最終更新:2014年02月03日 03:26