アットウィキロゴ

prog10

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 cp(1 To 100) As Single
Dim mx(1 To 100) As Single
Dim ks As Single
Dim r1 As Single
Dim c1 As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
Dim e As Single
Dim t As Single
beta = 0.95
a = 0.33
ks = ((1 / beta - 1) / a) ^ (1 / (a - 1))
h = 2 * ks / 100
For n = 1 To 100
k(n) = n * h
Next
For n = 1 To 100
cx(n) = k(n) ^ a
Next
t = 0
Do Until t > 100
For n = 10 To 90
k1 = k(n) + k(n) ^ a - cx(n)
r1 = a * k1 ^ (a - 1)
n1 = k1 / h
n2 = Int(n1)
n3 = n2 + 1
c1 = cx(n2) + (n1 - n2) * (cx(n3) - cx(n2))
cp(n) = c1 / (beta * (1 + r1))
Next
e = 0
For n = 1 To 100
e = e + (cx(n) - cp(n)) ^ 2
Next
For n = 1 To 100
cx(n) = cp(n)
Next
If e < 10 ^ (-5) Then t = 1000
Debug.Print t, e
t = t + 1
Loop
For n = 10 To 90
k1 = k(n) + k(n) ^ a - cx(n)
r1 = a * k1 ^ (a - 1)
mx(n) = cx(n) * (1 + r1) / r1
Debug.Print mx(n)
Next
End Sub
最終更新:2009年04月25日 00:13