アットウィキロゴ

ニューケインジアンj

package dsge8;
 
public class pro {
 
double a,beta,phi,ms,gam,delta;
int s,m,n;
 
double th[]=new double[101]; 
double mc[]=new double[101];
double k[]=new double[101]; 
 
double h;
 
double cn[]=new double[101]; 
double ln[]=new double[101]; 
double lm[]=new double[101]; 
double cm[]=new double[101]; 
double ls[]=new double[101]; 
double cs[]=new double[101];
double pn[]=new double[101];
double pm[]=new double[101];
double ps[]=new double[101];
 
double goton[]=new double[101]; 
double gotos[]=new double[101]; 
double gotom[]=new double[101]; 
double gotomx[]=new double[101]; 
 
 
double chcn[]=new double[101]; 
double chln[]=new double[101]; 
double chlm[]=new double[101]; 
double chcm[]=new double[101]; 
double chls[]=new double[101]; 
double chcs[]=new double[101];
double chpn[]=new double[101];
double chpm[]=new double[101];
double chps[]=new double[101];
 
 
 
    public static void main(String[] args) {
        pro test=new pro();
    }
 
 
pro(){
 
 
 fasttime();
 
 int card;
 
card=0;
while(card<100){ 
 
simple sub=new simple();
sub.a=a;
sub.beta=beta;
sub.th=th;
sub.h=h;
sub.k=k;
sub.cn=cn;
sub.ln=ln;
sub.cm=cm;
sub.lm=lm;
sub.cs=cs;
sub.ls=ls;
sub.mc=mc;
sub.gotos=gotos;
sub.gotom=gotom;
sub.goton=goton;
sub.gotomx=gotomx;
sub.makedata();
cn=sub.cn;
cm=sub.cm;
cs=sub.cs;
ln=sub.ln;
lm=sub.lm;
ls=sub.ls;
 
money sub2=new money();
sub2.a=a;
sub2.beta=beta;
sub2.th=th;
sub2.h=h;
sub2.k=k;
sub2.cn=cn;
sub2.ln=ln;
sub2.cm=cm;
sub2.lm=lm;
sub2.cs=cs;
sub2.ls=ls;
sub2.pn=pn;
sub2.pm=pm;
sub2.ps=ps;
sub2.mc=mc;
sub2.ms=ms;
sub2.gotos=gotos;
sub2.gotom=gotom;
sub2.goton=goton;
sub2.gotomx=gotomx;
sub2.makedata();
pn=sub2.pn;
pm=sub2.pm;
ps=sub2.ps;
 
nk sub3=new nk();
sub3.a=a;
sub3.beta=beta;
sub3.phi=phi;
sub3.delta=delta;
sub3.th=th;
sub3.h=h;
sub3.k=k;
sub3.cn=cn;
sub3.ln=ln;
sub3.cm=cm;
sub3.lm=lm;
sub3.cs=cs;
sub3.pn=pn;
sub3.pm=pm;
sub3.ps=ps;
sub3.ls=ls;
sub3.mc=mc;
sub3.gotos=gotos;
sub3.gotom=gotom;
sub3.goton=goton;
sub3.gotomx=gotomx;
sub3.makedata();
gotos=sub3.gotos;
gotom=sub3.gotom;
goton=sub3.goton;
gotomx=sub3.gotomx;
 
double ep;
 
ep=check();
 
if(ep<0.0001)card=1000;
 
System.out.println(ep);
 
rev();
 
}
 
}
 
 
void rev(){
 
 
for(m=1;m<101;m++){
chlm[m]=lm[m];
chcm[m]=cm[m];
chpm[m]=pm[m];
}
 
for(n=1;n<101;n++){
chln[n]=ln[n];
chcn[n]=cn[n];
chpn[n]=pn[n];
}
 
for(s=1;s<101;s++){
chls[s]=ls[s];
chcs[s]=cs[s];
chps[s]=ps[s];
}
 
}
 
double check(){
 
    double ep;
    ep=0;
 
    for(n=1;n<101;n++){
ep=ep+Math.pow(ln[n]-chln[n],2);
ep=ep+Math.pow(cn[n]-chcn[n],2);
ep=ep+Math.pow(pn[n]-chpn[n],2);
}
 
for(s=1;s<101;s++){
ep=ep+Math.pow(ls[s]-chls[s],2);
ep=ep+Math.pow(cs[s]-chcs[s],2);
ep=ep+Math.pow(ps[s]-chps[s],2);
}
 
for(m=1;m<101;m++){
ep=ep+Math.pow(lm[m]-chlm[m],2);
ep=ep+Math.pow(cm[m]-chcm[m],2);
ep=ep+Math.pow(pm[m]-chpm[m],2);
}
 
 
return ep;
}
 
 
 
 
void fasttime(){
 
    double ks,lsx;
 
    a=0.33; 
beta=0.95; 
phi=0.9; 
ms=20;
gam=0.8; 
delta=0.1; 
 
for(m=1;m<101;m++){ 
th[m]=0.95+0.001*m; 
}
 
for (s=1;s<101;s++){ 
mc[s]=0.77+0.0001*s; 
} 
 
for (s=1;s<101;s++){ 
cs[s]=0;
ls[s]=0;
ps[s]=0;
gotos[s]=0;
} 
 
for (m=1;m<101;m++){ 
cm[m]=0;
lm[m]=0;
pm[m]=0;
gotom[m]=0;
gotomx[m]=0;
}        
 
for (n=1;n<101;n++){ 
pn[n]=1;  
goton[n]=0;
}
 
double l1,c1;
 
 
m=50;
s=50;
lsx=(1-a)/(2-a); 
ks=lsx*Math.pow((1 / beta - 1) / a , 1 / (a - 1)); 
h=2*ks/100; 
for (n=1;n<101;n++){ 
k[n]=n*h;
ln[n]=lsx;
l1=lab(s,m,n);
cn[n]=th[m]*Math.pow(k[n],a)*Math.pow(ln[n],1-a)-cm[m]-cs[s];   
} 
 
}
double lab(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=ln[n1]+ls[s1]+lm[m]+(sx-s1)*(ls[s2]-ls[s1])+(nx-n1)*(ln[n2]-ln[n1]);    
return l1;    
}
 
 
double con(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=100;
if(s2>100)s2=100;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=cn[n1]+cs[s1]+cm[m]+(sx-s1)*(cs[s2]-cs[s1])+(nx-n1)*(cn[n2]-cn[n1]);    
return l1;    
}
 
}
 
 
 
 
 
 
package dsge8;
 
public class simple {
 
 
int s,m,n,mx; 
 
/*パラメーター*/    
double a,beta,ms; 
 
double th[]=new double[101]; 
double mc[]=new double[101]; 
double k[]=new double[101]; 
double h;    
 
/*消費、労働供給*/
 
double cn[]=new double[101]; 
double ln[]=new double[101]; 
double lm[]=new double[101]; 
double cm[]=new double[101]; 
double ls[]=new double[101]; 
double cs[]=new double[101];
 
/*その他*/
 
double goton[]=new double[101]; 
double gotos[]=new double[101]; 
double gotom[]=new double[101]; 
double gotomx[]=new double[101]; 
 
int mode;
 
void makedata(){
 
fast();
 
sec();
 
third();
 
}
 
void third(){
 
double css[]=new double[101]; 
double lss[]=new double[101];  
 
int t3;
 
double c1,l1,k1,uc,wedge,r1,w1;
double n1,s1,ep;
 
m=50;
n=50; 
 
t3=0; 
while(t3<100){ 
 
for (s=1;s<101;s++){ 
c1=con(s,m,n);
l1=lab(s,m,n);
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(l1,1-a)-c1; 
n1=k1/h; 
uc=0; 
for (mx=1;mx<101;mx++){ 
s1=gotos(s,m,n,mx); 
c1=con(s1,mx,n1);
l1=con(s1,mx,n1);
wedge=wed(s1); 
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); 
uc=uc+(beta*(1+r1))/c1; 
} 
uc=0.01*uc; 
css[s]=1/uc-cn[n]-cm[m]; 
l1=lab(s,m,n);
w1=mc[s]*th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(l1,-a); 
lss[s]=1-con(s,m,n)/w1-ln[n]-lm[m]; 
} 
 
 
ep=0; 
for (s=1;s<101;s++){ 
ep=ep+Math.pow(cs[s]-css[s],2)+Math.pow(ls[s]-lss[s],2); 
}  
 
for (s=1;s<101;s++){ 
cs[s]=css[s]; 
ls[s]=lss[s]; 
} 
 
 
if (ep<0.0001)t3=1000;   
t3=t3+1; 
} 
 
 
 
}
 
void fast(){
 
double cns[]=new double[101]; 
double lns[]=new double[101];  
    int t1;
 
double c1,l1,k1,uc,wedge,r1,w1;
double n1,s1,ep;
s=50;
m=50; 
t1=0; 
while(t1<100){ 
 
for (n=10;n<91;n++){ 
c1=con(s,m,n);
l1=lab(s,m,n);
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(l1,1-a)-c1; 
n1=k1/h; 
uc=0; 
for (mx=1;mx<101;mx++){ 
s1=gotos(s,m,n,mx); 
c1=con(s1,mx,n1);
l1=con(s1,mx,n1);
wedge=wed(s1); 
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); 
uc=uc+(beta*(1+r1))/c1; 
} 
uc=0.01*uc; 
cns[n]=1/uc-cm[m]-cs[s]; 
l1=lab(s,m,n);
w1=mc[s]*th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(l1,-a); 
lns[n]=1-con(s,m,n)/w1-lm[m]-ls[s]; 
} 
 
 
ep=0; 
for (n=10;n<91;n++){ 
ep=ep+Math.pow(cn[n]-cns[n],2)+Math.pow(ln[n]-lns[n],2); 
}  
 
for (n=10;n<91;n++){ 
cn[n]=cns[n]; 
ln[n]=lns[n]; 
} 
 
if (ep<0.0001)t1=1000;   
t1=t1+1; 
} 
 
 
 
}
 
void sec(){
 
double cms[]=new double[101]; 
double lms[]=new double[101];  
 
int t2;
 
double c1,l1,k1,uc,wedge,r1,w1;
double n1,s1,ep;
s=50;
n=50; 
 
t2=0; 
while(t2<100){ 
 
for (m=1;m<101;m++){ 
c1=con(s,m,n);
l1=lab(s,m,n);
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(l1,1-a)-c1; 
n1=k1/h;  
uc=0; 
for (mx=1;mx<101;mx++){ 
s1=gotos(s,m,n,mx); 
c1=con(s1,mx,n1);
l1=con(s1,mx,n1);
wedge=wed(s1); 
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); 
uc=uc+(beta*(1+r1))/c1; 
} 
uc=0.01*uc; 
cms[m]=1/uc-cn[n]-cs[s]; 
l1=lab(s,m,n);
w1=mc[s]*th[m]*(1-a)*Math.pow(k[n],a)*Math.pow(l1,-a); 
lms[m]=1-con(s,m,n)/w1-ln[n]-ls[s]; 
} 
 
 
ep=0; 
for (m=1;m<101;m++){ 
ep=ep+Math.pow(cm[m]-cms[m],2)+Math.pow(lm[m]-lms[m],2); 
}  
 
for (m=1;m<101;m++){ 
cm[m]=cms[m]; 
lm[m]=lms[m]; 
} 
 
 
if (ep<0.0001)t2=1000;   
t2=t2+1; 
} 
 
}
 
double gotos(double sx,int m,double nx,int mx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=goton[n1]+gotos[s1]+gotom[m]+gotomx[mx]+(sx-s1)*(gotos[s2]-gotos[s1])+(nx-n1)*(goton[n2]-goton[n1]);    
return l1;    
}
double wed(double sx){
  double we;
  int s2,s3;
  s2=(int)sx; 
if (s2>99)s2=99;   
if (s2<1)s2=1;   
s3=s2+1; 
we=mc[s2]+(sx-s2)*(mc[s3]-mc[s2]);  
return we;
}
double lab(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=ln[n1]+ls[s1]+lm[m]+(sx-s1)*(ls[s2]-ls[s1])+(nx-n1)*(ln[n2]-ln[n1]);    
return l1;    
}
 
 
double con(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=100;
if(s2>100)s2=100;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=cn[n1]+cs[s1]+cm[m]+(sx-s1)*(cs[s2]-cs[s1])+(nx-n1)*(cn[n2]-cn[n1]);    
return l1;    
}
 
 
} 
 
 
 
 
 
package dsge8;
 
public class money {
 
double a,beta,ms; 
double h; 
int s,m,n,mx; 
double th[]=new double[101]; 
double mc[]=new double[101]; 
double k[]=new double[101]; 
 
double cn[]=new double[101]; 
double ln[]=new double[101]; 
double lm[]=new double[101]; 
double cm[]=new double[101]; 
double ls[]=new double[101]; 
double cs[]=new double[101];
 
double goton[]=new double[101]; 
double gotos[]=new double[101]; 
double gotom[]=new double[101]; 
double gotomx[]=new double[101];  
 
double pn[]=new double[101]; 
double pm[]=new double[101]; 
double ps[]=new double[101];
 
 
 
    void makedata(){ 
 
fast();
 
sec();
 
third();
 
}  
 
void third(){    
 
 
double pss[]=new double[101];
 
 
int t1,t2; 
double ep; 
double n1,s1; 
double dp; 
double p1,p2,p3,z1,z2; 
 
n=50;
m=50;
 
t2=0; 
while(t2<100){ 
 
 
 
for (s=1;s<101;s++){ 
p1=1.05*price(s,m,n); 
p2=0.95*price(s,m,n); 
dp=seekdp(p1); 
z1=dp-p1; 
t1=0; 
while (t1<100){ 
dp=seekdp(p2); 
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; 
} 
pss[s]=p2-pm[m]-pn[n]; 
} 
 
ep=0; 
for (s=1;s<101;s++){ 
ep=ep+Math.pow(ps[s]-pss[s],2); 
}  
 
for (s=1;s<101;s++){ 
ps[s]=pss[s]; 
} 
 
if (ep<0.0001)t2=10000;   
t2=t2+1; 
 
 
 
} 
 
}
 
void fast(){    
 
 
    double pns[]=new double[101]; 
 
 
int t1,t2; 
double ep; 
double n1,s1; 
double dp; 
double p1,p2,p3,z1,z2; 
 
s=50;
m=50;
t2=0; 
while(t2<100){ 
 
for (n=5;n<95;n++){ 
p1=1.05*price(s,m,n); 
p2=0.95*price(s,m,n); 
 
dp=seekdp(p1); 
z1=dp-p1; 
t1=0; 
while (t1<100){ 
dp=seekdp(p2); 
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; 
} 
pns[n]=p2-pm[m]-ps[s]; 
} 
 
ep=0; 
for (n=10;n<91;n++){ 
ep=ep+Math.pow(pn[n]-pns[n],2); 
}  
 
for (n=10;n<91;n++){ 
pn[n]=pns[n]; 
} 
 
if (ep<0.0001)t2=10000;   
t2=t2+1; 
 
 
 
} 
 
}
 
void sec(){    
 
        int t1,t2; 
double ep; 
double n1,s1; 
double dp; 
double p1,p2,p3,z1,z2; 
 
double pms[]=new double[101]; 
 
s=50;
n=50;
 
t2=0; 
while(t2<100){ 
 
 
 
for (m=1;m<101;m++){ 
p1=1.05*price(s,m,n); 
p2=0.95*price(s,m,n); 
dp=seekdp(p1); 
z1=dp-p1; 
t1=0; 
while (t1<100){ 
dp=seekdp(p2); 
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; 
} 
pms[m]=p2-pn[n]-ps[s]; 
} 
 
ep=0; 
for (m=1;m<101;m++){ 
ep=ep+Math.pow(pm[m]-pms[m],2); 
}  
 
for (m=1;m<101;m++){ 
pm[m]=pms[m]; 
} 
 
if (ep<0.0001)t2=10000;   
t2=t2+1; 
 
 
} 
}    
 
 
double seekdp(double pp){ 
double n1,s1,dp,pc; 
int n2,n3,s2,s3; 
double k1,c1,i1,l1,r1,pi,wedge; 
 
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lab(s,m,n),1-a)-con(s,m,n); 
n1=k1/h;  
dp=0; 
for (mx=1;mx<101;mx++){ 
s1=gotos(s,m,n,mx);    
l1=lab(s1,mx,n1); 
wedge=wed(s1); 
r1=wedge*th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a); 
c1=con(s1,mx,n1);  
pc=price(s1,mx,n1); 
pi=pc/pp-1; 
i1=(1+r1)*(1+pi)-1; 
dp=dp+i1*ms*beta/(c1*(1+pi)); 
} 
dp=0.01*dp; 
return dp; 
} 
 
double gotos(double sx,int m,double nx,int mx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=goton[n1]+gotos[s1]+gotom[m]+gotomx[mx]+(sx-s1)*(gotos[s2]-gotos[s1])+(nx-n1)*(goton[n2]-goton[n1]);    
return l1;    
}
double wed(double sx){
  double we;
  int s2,s3;
  s2=(int)sx; 
if (s2>99)s2=99;   
if (s2<1)s2=1;   
s3=s2+1; 
we=mc[s2]+(sx-s2)*(mc[s3]-mc[s2]);  
return we;
}
 
double lab(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=ln[n1]+ls[s1]+lm[m]+(sx-s1)*(ls[s2]-ls[s1])+(nx-n1)*(ln[n2]-ln[n1]);    
return l1;    
}
 
 
double con(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=100;
if(s2>100)s2=100;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=cn[n1]+cs[s1]+cm[m]+(sx-s1)*(cs[s2]-cs[s1])+(nx-n1)*(cn[n2]-cn[n1]);    
return l1;    
}
 
double price(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=100;
if(n1>95)n1=95;
if(n2>95)n2=95;
l1=pn[n1]+ps[s1]+pm[m]+(sx-s1)*(ps[s2]-ps[s1])+(nx-n1)*(pn[n2]-pn[n1]);    
return l1;    
}
 
 
}
 
 
 
 
 
package dsge8;
 
public class nk {
 
 
double phi,a,beta,ms,gam,delta; 
double h; 
int s,m,n,mx; 
double sig;
 
 
double th[]=new double[101]; 
double mc[]=new double[101]; 
double k[]=new double[101]; 
 
 
 
double ejn[]=new double[101];
double ejm[]=new double[101];
double ejmx[]=new double[101];
double ejs[]=new double[101];
 
 
 
double goton[]=new double[101];
double gotom[]=new double[101];
double gotomx[]=new double[101];
double gotos[]=new double[101];
double cn[]=new double[101]; 
double ln[]=new double[101]; 
double lm[]=new double[101]; 
double cm[]=new double[101]; 
double ls[]=new double[101]; 
double cs[]=new double[101];
double pn[]=new double[101]; 
double pm[]=new double[101]; 
double ps[]=new double[101];
 
 
 
 
 void makedata(){ 
 
 
sig=1/(1-phi);  
 
fast();
 
sec();
 
third();
 
forth();
 
for(s=1;s<101;s++){
gotos[s]=ejs[s];
}
 
for(n=1;n<101;n++){
goton[n]=ejn[n];
}
 
for(m=1;m<101;m++){
gotom[m]=ejm[m];
}
 
for(mx=1;mx<101;mx++){
gotomx[mx]=ejmx[mx];
}
 
} 
void fast(){
 
double pnon,pricex,pst,pnew,k1,maki;
double n1;    
double s1;
int s2,s3;
 
m=50;
s=50;
mx=50;
 
for (n=5;n<95;n++){ 
pnon=mc[s]*price(s,m,n)/phi; 
pricex=price(s,m,n); 
pst=Math.pow(pricex,1-sig)-gam*Math.pow(pnon,1-sig); 
pst=Math.pow(pst/(1-gam),1/(1-sig)); 
pnew=delta*Math.pow(pricex,1-sig)+(1-delta)*Math.pow(pricex,1-sig); 
pnew=Math.pow(pnew,1/(1-sig)); 
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lab(s,m,n),1-a)-con(s,m,n); 
n1=k1/h;    
s1=gotosx(s,m,n,mx); 
pricex=price(s1,mx,n1); 
pnon=Math.pow(pricex,1-sig)-(1-gam)*Math.pow(pnew,1-sig); 
pnon=Math.pow(pnon/gam,1/(1-sig)); 
maki=phi*pnon/pricex; 
s1=(maki-0.77)/0.0001; 
if (s1>99)s1=99; 
if (s1<1)s1=1;   
ejn[n]=s1-ejs[s]-ejm[m]-ejmx[mx];  
} 
 
 
 
}   
 
void sec(){
 
double pnon,pricex,pst,pnew,k1,maki;
double n1;    
double s1;
int s2,s3;
 
n=50;
s=50;
mx=50;
 
for (m=1;m<101;m++){ 
pnon=mc[s]*price(s,m,n)/phi; 
pricex=price(s,m,n); 
pst=Math.pow(pricex,1-sig)-gam*Math.pow(pnon,1-sig); 
pst=Math.pow(pst/(1-gam),1/(1-sig)); 
pnew=delta*Math.pow(pricex,1-sig)+(1-delta)*Math.pow(pricex,1-sig); 
pnew=Math.pow(pnew,1/(1-sig)); 
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lab(s,m,n),1-a)-con(s,m,n); 
n1=k1/h;    
s1=gotosx(s,m,n,mx); 
pricex=price(s1,mx,n1); 
pnon=Math.pow(pricex,1-sig)-(1-gam)*Math.pow(pnew,1-sig); 
pnon=Math.pow(pnon/gam,1/(1-sig)); 
maki=phi*pnon/pricex; 
s1=(maki-0.77)/0.0001; 
if (s1>99)s1=99; 
if (s1<1)s1=1;   
ejm[m]=s1-ejs[s]-ejn[n]-ejmx[mx];  
} 
 
 
 
}   
 
void third(){
 
double pnon,pricex,pst,pnew,k1,maki;
double n1;    
double s1;
int s2,s3;
 
n=50;
m=50;
mx=50;
 
for (s=1;s<101;s++){ 
pnon=mc[s]*price(s,m,n)/phi; 
pricex=price(s,m,n); 
pst=Math.pow(pricex,1-sig)-gam*Math.pow(pnon,1-sig); 
pst=Math.pow(pst/(1-gam),1/(1-sig)); 
pnew=delta*Math.pow(pricex,1-sig)+(1-delta)*Math.pow(pricex,1-sig); 
pnew=Math.pow(pnew,1/(1-sig)); 
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lab(s,m,n),1-a)-con(s,m,n); 
n1=k1/h;    
s1=gotosx(s,m,n,mx); 
pricex=price(s1,mx,n1); 
pnon=Math.pow(pricex,1-sig)-(1-gam)*Math.pow(pnew,1-sig); 
pnon=Math.pow(pnon/gam,1/(1-sig)); 
maki=phi*pnon/pricex; 
s1=(maki-0.77)/0.0001; 
if (s1>99)s1=99; 
if (s1<1)s1=1;   
ejs[s]=s1-ejm[m]-ejn[n]-ejmx[mx];  
} 
 
 
 
}   
 
void forth(){
 
double pnon,pricex,pst,pnew,k1,maki;
double n1;    
double s1;
int s2,s3;
 
n=50;
m=50;
mx=50;
 
for (s=1;s<101;s++){ 
pnon=mc[s]*price(s,m,n)/phi; 
pricex=price(s,m,n); 
pst=Math.pow(pricex,1-sig)-gam*Math.pow(pnon,1-sig); 
pst=Math.pow(pst/(1-gam),1/(1-sig)); 
pnew=delta*Math.pow(pricex,1-sig)+(1-delta)*Math.pow(pricex,1-sig); 
pnew=Math.pow(pnew,1/(1-sig)); 
k1=k[n]+th[m]*Math.pow(k[n],a)*Math.pow(lab(s,m,n),1-a)-con(s,m,n); 
n1=k1/h;    
s1=gotosx(s,m,n,mx); 
pricex=price(s1,mx,n1); 
pnon=Math.pow(pricex,1-sig)-(1-gam)*Math.pow(pnew,1-sig); 
pnon=Math.pow(pnon/gam,1/(1-sig)); 
maki=phi*pnon/pricex; 
s1=(maki-0.77)/0.0001; 
if (s1>99)s1=99; 
if (s1<1)s1=1;   
ejmx[mx]=s1-ejm[m]-ejn[n]-ejs[s];  
} 
 
 
 
}   
 
double price(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=pn[n1]+ps[s1]+pm[m]+(sx-s1)*(ps[s2]-ps[s1])+(nx-n1)*(pn[n2]-pn[n1]);    
return l1;    
}
 
double gotosx(double sx,int m,double nx,int mx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>100)s2=100;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=goton[n1]+gotos[s1]+gotom[m]+gotomx[mx]+(sx-s1)*(gotos[s2]-gotos[s1])+(nx-n1)*(goton[n2]-goton[n1]);    
return l1;    
}
 
double lab(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=99;
if(s2>99)s2=99;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=ln[n1]+ls[s1]+lm[m]+(sx-s1)*(ls[s2]-ls[s1])+(nx-n1)*(ln[n2]-ln[n1]);    
return l1;    
}
 
 
double con(double sx,int m,double nx){
double l1;
int n1,n2,s1,s2;
n1=(int)nx;
n2=n1+1;
s1=(int)sx;
s2=s1+1;
if(s1<1)s1=1;
if(s1>99)s1=100;
if(s2>100)s2=100;
if(n1>100)n1=100;
if(n2>100)n2=100;
l1=cn[n1]+cs[s1]+cm[m]+(sx-s1)*(cs[s2]-cs[s1])+(nx-n1)*(cn[n2]-cn[n1]);    
return l1;    
}
 
 
 
 
 
}
 
最終更新:2013年12月30日 02:57