アットウィキロゴ

dsge04 04

Private Sub Command1_Click()
Dim n As Single
Dim h As Single
Dim a As Single
Dim beta As Single
Dim k(1 To 100) As Single
Dim cx(1 To 100) As Single
Dim lx(1 To 100) As Single
Dim lp(1 To 100) As Single
Dim cp(1 To 100) As Single
Dim v(1 To 100) As Single
Dim vs(1 To 100) As Single
Dim ks As Single
Dim r1 As Single
Dim c1 As Single
Dim l1 As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
Dim e As Single
Dim t As Single
Dim w1 As Single
Dim ls As Single
Dim tk(1 To 100) As Single
Dim tl(1 To 100) As Single
Dim g As Single
Dim t1 As Single
Dim t2 As Single
g = 0.05
For n = 1 To 100
tk(n) = 0.1
tl(n) = 0.1
Next
beta = 0.95
a = 0.33
For n = 1 To 100
Next
ls = (1 - a) / (2 - a)
ks = ls * ((1 / beta - 1) / a) ^ (1 / (a - 1))
h = 2 * ks / 100
For n = 1 To 100
k(n) = n * h
lx(n) = ls
Next
For n = 1 To 100
cx(n) = k(n) ^ a * lx(n) ^ (1 - a) - g
Next
t1 = 0
Do Until t1 > 100
For n = 10 To 90
k1 = k(n) + k(n) ^ a * lx(n) ^ (1 - a) - cx(n) - g
n1 = k1 / h
n2 = Int(n1)
n3 = n2 + 1
c1 = cx(n2) + (n1 - n2) * (cx(n3) - cx(n2))
l1 = lx(n2) + (n1 - n2) * (lx(n3) - lx(n2))
tk1 = tk(n2) + (n1 - n2) * (tk(n3) - tk(n2))
r1 = (1 - tk1) * a * k1 ^ (a - 1) * l1 ^ (1 - a)
cp(n) = c1 / (beta * (1 + r1))
w1 = (1 - tl(n)) * (1 - a) * k(n) ^ a * lx(n) ^ (-a)
lp(n) = 1 - cx(n) / w1
Next
e = 0
For n = 10 To 90
e = e + (cx(n) - cp(n)) ^ 2 + (lx(n) - lp(n)) ^ 2
Next
For n = 10 To 90
cx(n) = cp(n)
lx(n) = lp(n)
Next
If e < 10 ^ (-5) Then t1 = 1000
Debug.Print t1, e
t1 = t1 + 1
Loop
t2 = 0
Do Until t2 > 1000
For n = 10 To 90
k1 = k(n) + k(n) ^ a * lx(n) ^ (1 - a) - cx(n) - g
n1 = k1 / h
n2 = Int(n1)
n3 = n2 + 1
v1 = v(n2) + (n1 - n2) * (v(n3) - v(n2))
vs(n) = Log(cx(n)) + Log(1 - lx(n)) + beta * v1
Next
e = 0
For n = 10 To 90
e = e + (v(n) - vs(n)) ^ 2
Next
For n = 10 To 90
v(n) = vs(n)
Next
If e < 10 ^ (-5) Then t2 = 10000
Debug.Print t2, e
t2 = t2 + 1
Loop








End Sub
最終更新:2009年09月05日 07:16