アットウィキロゴ

jhi

package x1;
 
 
public class city {
 
 
    double[][] p=new double[11][11];
  double[][] u=new double[11][11];
  double[] n=new double[11];
    double[][] delta=new double[11][11];
 
    double[] lb=new double[11];
    double[] lbs=new double[11];
     double[] lc=new double[11];
    double[] w=new double[11];
     double[] r=new double[11];
    double[] v=new double[11];
 
  double alpha,beta,theta,gamma;  
  int s,sx,number;
 
 
 
    void makedata(){
 
 
 number=10;
 
 
 
 alpha=0.7;
 beta=0.6;  
 
theta=0.9;
gamma=0.5; 
 
 
int t;
 
for(s=1;s<number+1;s++){        
for(sx=1;sx<number+1;sx++){
t=s-sx;
if(t<0)t=-t;
delta[s][sx]=Math.pow(theta,t);
}
}
 
for(s=1;s<number+1;s++){        
for(sx=1;sx<number+1;sx++){
n[sx]=delta[s][sx]*p[s][sx]+n[sx];
}
}        
 
int s1;
 
for(s=1;s<number+1;s++){        
for(sx=1;sx<number+1;sx++){
s1=s-sx;
if(s1<0)s1=-s1;
v[s]=Math.pow(gamma,s1)*n[sx]+v[s];
}
}  
 
 
  for(s=1;s<11;s++){
   lb[s]=0.5;
   }
 
  int mode;
 
  mode=0;
 
  while(mode<50){
 
    for(s=1;s<number+1;s++){
    w[s]=v[s]*beta*Math.pow(n[s],beta-1)*Math.pow(lb[s],1-beta);
    r[s]=v[s]*(1-beta)*Math.pow(n[s],beta)*Math.pow(lb[s],-beta);
    }
 
     for(s=1;s<number+1;s++){
     lc[s]=0;
     for(sx=1;sx<number+1;sx++){
     lc[s]=lc[s]+p[s][sx]*(1-alpha)*delta[s][sx]*w[sx]/r[s];
     }}
 
 
     for(s=1;s<number+1;s++){
     lbs[s]=seekl(s);
     }
 
 
for(s=1;s<11;s++){
 lb[s]=lbs[s];
 }
 
mode=mode+1;
 
  }     
 
 
  double c1,l1;
 
 for(s=1;s<number+1;s++){
 for(sx=1;sx<number+1;sx++){
 w[sx]=v[sx]*beta*Math.pow(n[sx],beta-1)*Math.pow(lb[sx],1-beta);
 r[s]=v[s]*(1-beta)*Math.pow(n[s],beta)*Math.pow(lb[s],-beta);
 c1=alpha*delta[s][sx]*w[sx];
 l1=(1-alpha)*delta[s][sx]*w[sx]/r[s];
 u[s][sx]=Math.pow(c1,alpha)*Math.pow(l1,1-alpha);
 }
 }
 
 
 
    }
double seekl(int s){
 
        double l1,l2,l3;
        double x1,x2;
        int mode;
 
        l1=0.1;
        l2=0.9;
        l3=0;
        mode=0;
 
        while(mode<50){
        l3=(l1+l2)/2;
        x1=lx(s,l3)+l3;
        if(x1>1)l2=l3;
        if(x1<1)l1=l3;
 
 
        mode=mode+1;    
        }
        return l3;
    }
 
    double lx(int s ,double lp){
 
        double ws,rs;
 
    ws=v[s]*beta*Math.pow(n[s],beta-1)*Math.pow(lp,1-beta);
    rs=v[s]*(1-beta)*Math.pow(n[s],beta)*Math.pow(lp,-beta);
 
    int sx;
    double lx;    
    lx=0;
     for(sx=1;sx<number+1;sx++){
    lx=lx+p[s][sx]*delta[s][sx]*(1-alpha)*w[sx]/r[s];
     }
 
     return lx;
 
 
 
    }
 
 
 
}
 
最終更新:2014年05月27日 05:52