アットウィキロゴ

pro4 DSGE

<html>
<head>
<title>Example</title>
</head>
<body>
<?php
$time1 = microtime();
for ( $m=1; $m<=10; $m++ ){  
$th[$m] = 0.95 + 0.01 * $m;
}
$beta = 0.95;
$a = 0.33;
$ks = 0.5 * pow((1 / $beta - 1) / $a,1 / ($a - 1));
$h = 2 * $ks / 100;
for ($n = 1; $n<=100; $n++){
$k[$n] = $n * $h;
}
for ( $m=1; $m<=10; $m++ ){
for ( $n=1; $n<=100; $n++ ){
$lx[$m][$n] = 0.5;
$cx[$m][$n] = $th[$m] * pow($k[$n], $a) * pow($lx[$m][$n] ,1 - $a) ;
}
}
$t = 0;
Do {
for ( $m=1; $m<=10; $m++ ){
for ( $n=10; $n<=90; $n++ ){
$uc = 0;
for ( $s=1; $s<=10; $s++ ){
$k1 = $k[$n] + $th[$m] *pow($k[$n] , $a) *pow($lx[$m][$n] ,1 - $a) - $cx[$m][$n];
$n1 = $k1 / $h ;
$n2 = floor($n1);
$n3 = $n2 + 1;
$c1 = $cx[$s][$n2] + ($n1 - $n2) * ($cx[$s][$n3] - $cx[$s][$n2]);
$l1 = $lx[$s][$n2] + ($n1 - $n2) * ($lx[$s][$n3] - $lx[$s][$n2]);
$r1 = $th[$s] * $a * pow($k1 , $a - 1) *pow( $l1 , 1 - $a);
$uc = $uc + ($beta * (1 + $r1)) / $c1;
}
$uc = $uc / 10;
$cp[$m][$n] = 1 / $uc;
$w1 = $th[$m] * (1 - $a) * pow($k[$n] , $a) * pow($lx[$m][$n] , -$a);
$lp[$m][$n]= 1 - $c1 / $w1;
}
}
$e = 0;
for ( $m=1; $m<=10; $m++ ){
for ( $n=10; $n<=90; $n++ ){
$e = $e + pow($cx[$m][$n] - $cp[$m][$n] , 2) + pow($lx[$m][$n] - $lp[$m][$n], 2);
}
}
for ( $m=1; $m<=10; $m++ ){
for ( $n=10; $n<=90; $n++ ){
$cx[$m][$n] = $cp[$m][$n];
$lx[$m][$n] = $lp[$m][$n];
}
}
print( $t);
print "=>";
print ( $e);  
print "<br />";
If ( $e < 0.01){
$t=1000;
}
$t =$t +1;
}
while($t < 100);
for ( $m=1; $m<=10; $m++ ){
for ( $n=10; $n<=90; $n++ ){
print ( $th[$m]);
print ",";
print ( $k[$n]);
print ",";
print ( $cx[$m][$n]);  
print ",";
print ( $lx[$m][$n]);  
print "<br />";
}
}
$time2 = microtime();
$time = $time2 - $time1;
print "計算時間は";
print ($time);
print "秒です。";
?>
</body>
</html>
最終更新:2009年04月28日 01:44