アットウィキロゴ

じゃヴぁdsげ0213

class dsge0313{
public static void main(String args[]){
double a,beta,h,k1,c1,r1;
double ks;
double th[]=new double[11];
double k[]=new double[101];
double cx[][][]=new double[11][11][101];
double cp[][][]=new double[11][11][101];
double lx[][][]=new double[11][11][101];
double lp[][][]=new double[11][11][101];
double px[][][]=new double[11][11][101];
double pp[][][]=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 mc[]=new double[11];
double n1;
int n,n2,n3;
double s1;
int s2,s3;
double ep;
double ls,l1,w1;
int t,m,mx,t1,t2;
double uc,ms,pi;
double p1,p2,p3;
double pc;
double i1;
double dp;
double z1;
double z2;
double dn;
double ds;
int s;
double wedge;
double phi;
double pnon;
double pst;
double gam;
double sig;
double pz;
double price;
double delta;
double pnew;
double maki;
int t77;
phi=0.9;
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;
}
}
}
}
for (m=1;m<11;m++){
th[m]=0.95+0.01*m;
}
for (s=1;s<11;s++){
mc[s]=0.85+0.01*s;
}
a=0.33;
beta=0.95;
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);
}
}
}
t77=0;
while(t77<100){
t=0;
while(t<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;
cp[s][m][n]=1/uc;
w1=mc[s]*th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(lx[s][m][n],-a);
lp[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]-cp[s][m][n],2)+Math.pow(lx[s][m][n]-lp[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]=cp[s][m][n];
lx[s][m][n]=lp[s][m][n];
}
}
}
if (ep<0.0001){
t=1000;
}
t=t+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;
t1=0;
while (t1<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){
t1=1000;
}
t1=t1+1;
}
pp[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]-pp[s][m][n],2);
}
}
}
System.out.println(ep);
for (s=1;s<11;s++){
for (m=1;m<11;m++){
for (n=10;n<91;n++){
px[s][m][n]=pp[s][m][n];
}
}
}
if (ep<0.0001)t2=10000;
t2=t2+1;
}
gam=0.8;
delta=0.1;
sig=1/(1-phi);
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(t77);
System.out.println(ep);
if (ep<0.001)t77=1000;
t77=t77+1;
}



}
}
最終更新:2011年03月12日 22:38