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