アットウィキロゴ

産業連関表9

package mono;
 
public class pro {
 
    /*前提条件*/
 
     int number;
 
    double[][] x=new double[300][300];
     double[] y=new double[300];
     double[] ex=new double[300];
     double[] im=new double[300];
 
      /*基礎的計算*/
 
     double[] c=new double[300];
    double[][] rate=new double[300][300];
     double[] alpha=new double[300];
 
      /*応用*/
 
      double[] delta=new double[300];
 
 
 
 
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
  pro(){  
 
      number=2;
 
      x[1][1]=140;
      x[1][2]=30;
      x[2][1]=30;
      x[2][2]=40;
      y[1]=350;
      y[2]=400;
      ex[1]=30;
      ex[2]=15;
      im[1]=23;
      im[2]=13;
 
fast sub=new fast();
sub.number=number;
sub.y=y;
sub.ex=ex;
sub.im=im;
sub.x=x;
sub.makedata();
rate=sub.rate;
alpha=sub.alpha;
c=sub.c;
 
 
leon sub2=new leon();
sub2.number=number;
sub2.c=c;
sub2.ex=ex;
sub2.y=y;
sub2.im=im;
sub2.alpha=alpha;
sub2.rate=rate;
sub2.makedata(1);
delta=sub2.delta;
 
System.out.println(delta[1]+","+delta[2]);
 
 
}
 
}
 
 
public class fast {
 
      int number,s,ip,ou;
 
    double[][] x=new double[300][300];
     double[] y=new double[300];
     double[] ex=new double[300];
     double[] im=new double[300];
 
    double x1;
 
     double[] c=new double[300];
    double[][] rate=new double[300][300];
     double[] alpha=new double[300];
 
 
 
    void makedata(){
 
 
       for(s=1;s<number+1;s++){
      x1=0;
      for(ip=1;ip<number+1;ip++){
      x1=x1+x[s][ip];         
      }
      c[s]=y[s]+im[s]-ex[s]-x1;  
      }
 
      for(ou=1;ou<number+1;ou++){
      for(ip=1;ip<number+1;ip++){
      rate[ou][ip]=x[ou][ip]/y[ou];         
      }
      }
 
      double x1;
      for(s=1;s<number+1;s++){
      x1=0;
      for(ou=1;ou<number+1;ou++){
      x1=x1+x[ou][s]; 
      }
      alpha[s]=im[s]/(c[s]+x1); 
      }
 
 
 
 
 
 
 
    }
    }
 
 
 
package mono;
 
 
public class leon{
 
     int number,s,ip,ou;
 
    double[][] x=new double[300][300];
     double[] y=new double[300];
     double[] ex=new double[300];
     double[] im=new double[300];
 
    double x1;
 
     double[] c=new double[300];
    double[][] rate=new double[300][300];
     double[] alpha=new double[300];
 
      double[] ys=new double[300];
      double[] ims=new double[300];
       double[] cs=new double[300];
 
         double[] delta=new double[300];
 
void makedata(int page){  
 
      ys=y;
      cs=c;
      ims=im;
 
      cs[page]=cs[page]+1;
 
      sol();
 
      for(s=1;s<number+1;s++){
      delta[s]=ys[s]-y[s];
      }
 
 
}
 
  void sol(){
 
      int t;
 
      t=0;
      while(t<50){
      cal();
      t=t+1;
      }
 
  }
 
void cal(){
 
 double[] yp=new double[3];
 double[] imp=new double[3];
 int s;
 double y1,x1;
 
 for(s=1;s<number+1;s++){
 y1=ex[s]-ims[s]+cs[s]; 
 for(ou=1;ou<number+1;ou++){
 y1=y1+rate[ou][s]*ys[ou];
 }
 yp[s]=y1;
 }
 
 for(s=1;s<number+1;s++){
 x1=cs[s]; 
 for(ou=1;ou<number+1;ou++){
 x1=x1+rate[ou][s]*ys[ou];
 }
 imp[s]=alpha[s]*x1;
 }
 
 ims=imp;
 ys=yp;
 
}
}
 
最終更新:2014年02月04日 00:54