アットウィキロゴ

dsge

var a,beta,ks,h,ls;
var ep;
var maxc,minc;
var card; 
 
k = new Array(101);
cx = new Array(101);
lx = new Array(101);
cm = new Array(101);
lm = new Array(101);
 
cp = new Array(101);
cps = new Array(101);
th =new Array(101);
 
chcx = new Array(101);
chlx = new Array(101);
chcm = new Array(101);
chlm = new Array(101);
 
function path(){
 
var t,m1;
 
k1=k[50];
 
for(t=1;t<101;t++){
n1=k1/h;
m1=100*Math.random();
m=Math.floor(m1)+1;
c1=con(m,n1);
l1=lab(m,n1);
k1=k1+th[m]*Math.pow(k1,a)*Math.pow(l1,1-a)-c1;
cp[t]=c1;
}
 
maxc=0;
for(s=1;s<101;s++){
if(cp[s]>maxc)maxc=cp[s];
}
 
minc=9999;
for(s=1;s<101;s++){
if(cp[s]<minc)minc=cp[s];
}
 
 
 
for(s=1;s<101;s++){
cps[s]=500*(cp[s]-minc)/(maxc-minc);
}
 
 
}
 
function paint(){
 
path();
 
var str;
 
var x1,y1,x2,y2;
 
str="<svg width=\"500\" height=\"500\">";
 
for(s=1;s<100;s++){
x1=100+5*s;
x2=105+5*s;
y1=600-cps[s];
y2=600-cps[s+1];
str=str+line(x1,y1,x2,y2,"red");
}
str=str+line(100,100,100,600,"black");
str=str+line(100,600,600,600,"black");
str=str+"</svg>";
 
$("#svg").html(str);
 
}
 
 
function startpoint(){
 
for(m=1;m<101;m++){
th[m]=0.95+0.001*m;
}
 
for(m=1;m<101;m++){
cm[m]=0;
lm[m]=0;
}
 
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(s=1;s<101;s++){
k[s]=s*h;
}
 
for(s=1;s<101;s++){
lx[s]=ls;
cx[s]=Math.pow(k[s],a)*Math.pow(ls,1-a);
}
 
 
for(m=1;m<101;m++){
chcm[m]=0;
chlm[m]=0;
}
 
for(s=10;s<91;s++){
chcx[s]=0;
chlx[s]=0;
}
 
}
 
function con(m1,n1){
var c1;
var n2,n3;
n2=Math.floor(n1);
n3=n2+1;
c1=cx[n2]+(n1-n2)*(cx[n3]-cx[n2])+cm[m1];
return c1;
}
 
function lab(m1,n1){
var c1;
var n2,n3;
n2=Math.floor(n1);
n3=n2+1;
c1=lx[n2]+(n1-n2)*(lx[n3]-lx[n2])+lm[m1];
return c1;
}
 
function check(){
 
var s,m;
 
ep=0;
 
for(m=1;m<101;m++){
ep=ep+(cm[m]-chcm[m])*(cm[m]-chcm[m])+(lm[m]-chlm[m])*(lm[m]-chlm[m]);
}
 
for(s=10;s<91;s++){
ep=ep+(cx[s]-chcx[s])*(cx[s]-chcx[s])+(lx[s]-chlx[s])*(lx[s]-chlx[s]);
}
 
 
for(m=1;m<101;m++){
chcm[m]=cx[m];
chlm[m]=lx[m];
}
 
for(s=10;s<91;s++){
chcx[s]=cx[s];
chlx[s]=lx[s];
}
 
}
 
function fast(){
 
lxs = new Array(101);
cxs = new Array(101);
var mode;
var s,m,mx;
var n1,n2,n3;
var uc,c1,l1,k1,r1,w1;
 
mode=0;
 
while(mode<10){
 
m=50;
 
for(s=10;s<91;s++){
l1=lab(m,s);
c1=con(m,s)
k1=k[s]+th[m]*Math.pow(k[s],a)*Math.pow(l1,1-a)-c1;
n1=k1/h;
uc=0;
for(mx=1;mx<101;mx++){
c1=con(mx,n1);
l1=lab(mx,n1);
r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
uc=uc+(beta*(1+r1))/c1;
}
uc=uc/100;
cxs[s]=1/uc-cm[m];
l1=lx[s]+lm[m];
w1=th[m]*(1-a)*Math.pow(k[s],a)*Math.pow(l1,-a);
lxs[s]=1-cx[s]/w1-lm[m];
}
 
ep=0;
for(s=10;s<91;s++){
ep=ep+(cx[s]-cxs[s])*(cx[s]-cxs[s])+(lx[s]-lxs[s])*(lx[s]-lxs[s]);
}
 
 
for(s=10;s<91;s++){
cx[s]=cxs[s];
lx[s]=lxs[s];
}
 
if(ep<0.0001)mode=1000;
 
mode=mode+1;
 
}
 
}
 
 
function sec(){
 
lms = new Array(101);
cms = new Array(101);
var mode;
var s,m,mx;
var n1,n2,n3;
var uc,c1,l1,k1,r1,w1;
 
mode=0;
 
while(mode<10){
 
s=50;
 
for(m=1;m<101;m++){
l1=lab(m,s);
c1=con(m,s)
k1=k[s]+th[m]*Math.pow(k[s],a)*Math.pow(l1,1-a)-c1;
n1=k1/h;
uc=0;
for(mx=1;mx<101;mx++){
c1=con(mx,n1);
l1=lab(mx,n1);
r1=th[mx]*a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
uc=uc+(beta*(1+r1))/c1;
}
uc=uc/100;
cms[m]=1/uc-cx[s];
l1=lx[s]+lm[m];
w1=th[m]*(1-a)*Math.pow(k[s],a)*Math.pow(l1,-a);
c1=cx[s]+cm[m];
lms[m]=1-c1/w1-lx[s];
}
 
ep=0;
for(m=1;m<101;m++){
ep=ep+(cm[m]-cms[m])*(cm[m]-cms[m])+(lm[m]-lms[m])*(lm[m]-lms[m]);
}
 
 
for(m=1;m<101;m++){
cm[m]=cms[m];
lm[m]=lms[m];
}
 
if(ep<0.0001)mode=1000;
 
mode=mode+1;
 
}
 
}
 
function dsge(){
 
 
 
startpoint();
 
card=0;
 
while(card<100){
 
fast();
 
sec();
 
check();
 
if(ep<0.0001)card=100;
 
card=card+1;
 
}
 
}
 
function line(x1,y1,x2,y2,col){
var strx;
strx="<line x1="+change(x1)+" y1="+change(y1)+" x2="+change(x2)+" y2=";
strx=strx+change(y2)+" stroke="+change(col)+"/>";
return strx;
}
 
 
function change(str){
var strx;
 
strx="\""+str+"\"";
 
return strx;
}
最終更新:2015年03月09日 17:28