class pro{
public static void main(String args[]){
double phi,a,beta;
int s,m,n,mx;
double ls,ks;
double k1;
double n1,s1;
int n2,n3,s2,s3;
double uc,dn,ds;
double c1,l1,r1,w1;
double wedge;
double h;
double ep;
double th[]=new double[11];
double mc[]=new double[11];
double px[][][]=new double[11][11][101];
double checkc[][][]=new double[11][11][101];
double checkp[][][]=new double[11][11][101];
double checkl[][][]=new double[11][11][101];
double gotos[][][][]=new double[11][11][101][11];
double k[]=new double[101];
double cx[][][]=new double[11][11][101];
double lx[][][]=new double[11][11][101];
double cxs[][][]=new double[11][11][101];
double lxs[][][]=new double[11][11][101];
int t1;
phi=0.9;
a=0.33;
beta=0.95;
for (m=1;m<11;m++){
th[m]=0.95+0.01*m;
}
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
px[s][m][n]=1;
}
}
}
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
checkc[s][m][n]=1;
checkl[s][m][n]=1;
checkp[s][m][n]=1;
}
}
}
for (n=1;n<101;n++){
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (mx=1;mx<11;mx++){
gotos[s][m][n][mx]=s;
}
}
}
}
ls=(1-a)/(2-a);
ks=ls*Math.pow((1/beta-1)/a, 1 /(a - 1));
h=2*ks/100;
for (n=1;n<101;n++){
k[n]=n*h;
for (s=1;s<11;s++){
for (m=1;m<11;m++){
lx[s][m][n]=ls;
cx[s][m][n]=th[m]*Math.pow(k[n],a)*Math.pow(lx[s][m][n],1-a);
}
}
}
for (s=1;s<11;s++){
mc[s]=0.85+0.01*s;
}
t1=0;
while(t1<100){
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lx[s][m][n],1-a)-cx[s][m][n];
n1=k1/h;
n2=(int)n1;
n3=n2+1;
uc=0;
for (mx=1;mx<11;mx++){
s1=gotos[s][m][n][mx];
s2=(int)s1;
if (s2>9)s2=9;
if (s2<1)s2=1;
s3=s2+1;
dn=(n1-n2)*(cx[s2][mx][n3]-cx[s2][mx][n2]);
ds=(s1-s2)*(cx[s3][mx][n2]-cx[s2][mx][n2]);
c1=cx[s2][mx][n2]+ds+dn;
dn=(n1-n2)*(lx[s2][mx][n3]-lx[s2][mx][n2]);
ds=(s1-s2)*(lx[s3][mx][n2]-lx[s2][mx][n2]);
l1=lx[s2][mx][n2]+dn+ds;
wedge=mc[s2]+(s1-s2)*(mc[s3]-mc[s2]);
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
uc=uc+(beta*(1+r1))/c1;
}
uc=0.1*uc;
cxs[s][m][n]=1/uc;
w1=mc[s]*th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(lx[s][m][n],-a);
lxs[s][m][n]=1-cx[s][m][n]/w1;
}
}
}
ep=0;
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
ep=ep+Math.pow(cx[s][m][n]-cxs[s][m][n],2)+Math.pow(lx[s][m][n]-lxs[s][m][n],2);
}
}
}
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
cx[s][m][n]=cxs[s][m][n];
lx[s][m][n]=lxs[s][m][n];
}
}
}
if (ep<0.0001)t1=1000;
t1=t1+1;
}
}
}
最終更新:2010年12月01日 19:10