アットウィキロゴ

polo

class pro{
public static void main(String args[]){
double phi,a,beta,gam,delta,sig;
int s,m,n,mx;
double ms;
double ls,ks;
double k1;
double n1,s1;
int n2,n3,s2,s3;
double uc,dn,ds;
double c1,l1,r1,w1,i1;
double wedge;
double p1,p2,p3,pi,pc,z1,z2,dp;
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 eejump[][][][]=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];
double pxs[][][]=new double[11][11][101];
int t,t1,t2,t3;
double price,pnon,pst,pnew,maki;
phi=0.9;
a=0.33;
beta=0.95;
gam=0.8;
delta=0.1;
sig=1/(1-phi);

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;
}

t=0;
while(t<100){
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;
}



ms=20;
t2=0;
while(t2<1000){
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
p1=1.05*px[s][m][n];
p2=0.95*px[s][m][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;
dp=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)*(lx[s2][mx][n3]-lx[s2][mx][n2]);
ds=(s1-s2)*(lx[s3][mx][n2]-lx[s2][mx][n2]);
l1=lx[s2][mx][n2]+ds+dn;
wedge=mc[s2]+(s1-s2)*(mc[s3]-mc[s2]);
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
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)*(px[s2][mx][n3]-px[s2][mx][n2]);
ds=(s1-s2)*(px[s3][mx][n2]-px[s2][mx][n2]);
pc=px[s2][mx][n2]+dn+ds;
pi=pc/p1-1;
i1=(1+r1)*(1+pi)-1;
dp=dp+i1*ms*beta/(c1*(1+pi));
}
dp=0.1*dp;
z1=dp-p1;
t3=0;
while (t3<100){
dp=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)*(lx[s2][mx][n3]-lx[s2][mx][n2]);
ds=(s1-s2)*(lx[s3][mx][n2]-lx[s2][mx][n2]);
l1=lx[s2][mx][n2]+ds+dn;
wedge=mc[s2]+(s1-s2)*(mc[s3]-mc[s2]);
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
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)*(px[s2][mx][n3]-px[s2][mx][n2]);
ds=(s1-s2)*(px[s3][mx][n2]-px[s2][mx][n2]);
pc=px[s2][mx][n2]+dn+ds;
pi=pc/p2-1;
i1=(1+r1)*(1+pi)-1;
dp=dp+i1*ms*beta/(c1*(1+pi));
}
dp=0.1*dp;
z2=dp-p2;
p3=p2-z2*(p2-p1)/(z2-z1);
z1=z2;
p1=p2;
p2=p3;
if (z2*z2<0.001)t3=1000;  
t3=t3+1;
}
pxs[s][m][n]=p2;
}
}
}
ep=0;
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
ep=ep+Math.pow(px[s][m][n]-pxs[s][m][n],2);
}
}
}

for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
px[s][m][n]=pxs[s][m][n];
}
}
}
System.out.println(ep);
if (ep<0.0001)t2=10000;
t2=t2+1;
}


for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
pnon=mc[s]*px[s][m][n]/phi;
price=px[s][m][n];
pst=Math.pow(price,1-sig)-gam*Math.pow(pnon,1-sig);
pst=Math.pow(pst/(1-gam),1/(1-sig));
pnew=delta*Math.pow(price,1-sig)+(1-delta)*Math.pow(price,1-sig);
pnew=Math.pow(pnew,1/(1-sig));
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;
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)*(px[s2][mx][n3]-px[s2][mx][n2]);
ds=(s1-s2)*(px[s3][mx][n2]-px[s2][mx][n2]);
price=px[s2][mx][n2]+ds+dn;
pnon=Math.pow(price,1-sig)-(1-gam)*Math.pow(pnew,1-sig);
pnon=Math.pow(pnon/gam,1/(1-sig));
maki=phi*pnon/price;
s1=(maki-0.85)/0.01;
if (s1>10)s1=10;
if (s1<1)s1=1;
eejump[s][m][n][mx]=s1;
}
}
}
}
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
for (mx=1;mx<11;mx++){
gotos[s][m][n][mx]=eejump[s][m][n][mx];
}
}
}
}
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]-checkc[s][m][n],2);
ep=ep+Math.pow(lx[s][m][n]-checkl[s][m][n],2);
ep=ep+Math.pow(px[s][m][n]-checkp[s][m][n],2);
}
}
}
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
checkc[s][m][n]=cx[s][m][n];
checkl[s][m][n]=lx[s][m][n];
checkp[s][m][n]=px[s][m][n];
}
}
}
System.out.println(ep);
if (ep<0.00001)t=1000;
t=t+1;
}



}
}
最終更新:2010年12月01日 21:21