アットウィキロゴ

dsfe098

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="utf-8" />
        <script src="sample.js"></script>
        <script src="jquery.js"></script>
<script src="svgpaint.js"></script>
<script src="dsge.js"></script>
        <title>DSGE</title>
    </head>
    <body onload="sample()">
   <p id="memo"></p>
   </body>
</html>
 
 
 
var cps = new Array();
var cx = new Array();
var lx = new Array();
var k = new Array();
var h;
 
function sample(){
 
 
    var sub = new dsge();
    sub.a = 0.33;
    sub.beta = 0.95;
    sub.faststep();
    k = sub.k;
    h = sub.h;
    cx = sub.cx;
    lx = sub.lx;
 
 
 
    var sub2 = new dsge();
    sub2.a = 0.33;
    sub2.beta = 0.95;
    sub2.cx = cx;
    sub2.lx = lx;
    sub2.k = k;
    sub2.h = h;
    sub2.don();
    cx = sub2.cx;
    lx = sub2.lx;
 
 
 
    var sub3 = new dsge();
    sub3.a = 0.33;
    sub3.beta = 0.95;
    sub3.cx = cx;
    sub3.lx = lx;
    sub3.k = k;
    sub3.h = h;
    sub3.root();
    cps = sub3.cps;
 
paint();
 
 
}
 
function paint(){
 
var sub=new svgpaint();
 
str="<svg width=\"500\" height=\"500\">";
str=str+sub.rect(0,0,500,500,"blue"); 
for(s=1;s<101;s++){
str=str+sub.circle(5*s,500-cps[s],5,"red"); 
}
str=str+"</svg>";
 
$("#memo").html(str);   
 
 
}
 
class dsge{
 
a:number;
beta:number;
k:number[]=new Array();
lx:number[]=new Array();
cx:number[]=new Array();
cps:number[]=new Array();
h:number;
 
faststep():void{
 
var ks:number;
var ls:number;
var h:number;
var s:number; 
 
ls=(1-this.a)/(2-this.a);
ks=ls*Math.pow((1/ this.beta - 1)/this.a ,1/(this.a - 1)); 
this.h=2*ks/100;
 
 
for(s=1;s<101;s++){
this.k[s]=s*this.h;
}
 
for(s=1;s<101;s++){
this.lx[s]=ls;
this.cx[s]=Math.pow(this.k[s],this.a)*Math.pow(ls,1-this.a);
}
 
}
 
con(n1:number):number{
 
var c1:number;
var n2:number;
var n3:number;
 
n2=Math.floor(n1);
n3=n2+1;
c1=this.cx[n2]+(n1-n2)*(this.cx[n3]-this.cx[n2]);
return c1;
}
 
lab(n1:number):number{
var c1:number;
var n2:number;
var n3:number;
 
n2=Math.floor(n1);
n3=n2+1;
c1=this.lx[n2]+(n1-n2)*(this.lx[n3]-this.lx[n2]);
return c1;
}
 
don():void{
 
 
var lxs:number[] = new Array();
var cxs:number[] = new Array();
var mode:number;
var s:number;
var m:number;
var mx:number;
var n1:number;
var n2:number;
var n3:number;
var c1:number;
var l1:number;
var k1:number;
var r1:number;
var w1:number;
var uc:number;
var s:number; 
var h:number; 
 
mode=0;
 
while(mode<10){
 
for(s=10;s<91;s++){
l1=this.lab(s);
c1=this.con(s);
k1=this.k[s]+Math.pow(this.k[s],this.a)*Math.pow(l1,1-this.a)-c1;
n1=k1/this.h;
c1=this.con(n1);
l1=this.lab(n1);
r1=this.a*Math.pow(k1,this.a-1)*Math.pow(l1,1-this.a);
uc=(this.beta*(1+r1))/c1;
cxs[s]=1/uc;
l1=this.lx[s];
w1=(1-this.a)*Math.pow(this.k[s],this.a)*Math.pow(l1,-this.a);
lxs[s]=1-this.cx[s]/w1;
}
 
var ep:number;
 
ep=0;
for(s=10;s<91;s++){
ep=ep+(this.cx[s]-cxs[s])*(this.cx[s]-cxs[s])+(this.lx[s]-lxs[s])*(this.lx[s]-lxs[s]);
}
 
 
for(s=10;s<91;s++){
this.cx[s]=cxs[s];
this.lx[s]=lxs[s];
}
 
if(ep<0.0001)mode=1000;
 
mode=mode+1;
 
}
 
 
}
 
root():void{
 
var maxc:number;
var minc:number;
var t:number;
var m1:number;
var cp:number[] = new Array();
var k1:number; 
var h:number;
var c1:number;
var n1:number;
var l1:number; 
var s:number;
 
k1=this.k[40];
 
 
for(t=1;t<101;t++){
n1=k1/this.h;
c1=this.con(n1);
l1=this.lab(n1);
k1=k1+Math.pow(k1,this.a)*Math.pow(l1,1-this.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++){
this.cps[s]=500*(cp[s]-minc)/(maxc-minc);
}
 
 
 
 
}
 
 
 
}
 
最終更新:2015年07月27日 14:34