Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim beta As Single
Dim ks As Single
Dim a As Single
Dim h As Single
Dim k(100) As Single
Dim cx(100) As Single
Dim LX(100) As Single
Dim LP(100) As Single
Dim cp(100) As Single
Dim n1 As Single
Dim n2 As Single
Dim n3 As Single
Dim s As Single
Dim e1 As Single
Dim m As Single
Dim n As Single
Dim s1 As Single
Dim t As Single
Dim w1 As Single
Dim s2 As Single
Dim s3 As Single
Dim p3 As Single
Dim k1 As Single
Dim c1 As Single
Dim l1 As Single
Dim r1 As Single
Dim uc As Single
Dim pp As Single
Dim i1 As Single
Dim LS As Single
beta = 0.95
a = 0.33
For n = 1 To 100
Next
LS = 0.5
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)
Next
t = 0
Do Until t > 100
For n = 10 To 90
k1 = k(n) + k(n) ^ a * lx(n) ^ (1 - a) - cx(n)
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))
r1 = a * k1 ^ (a - 1) * l1 ^ (1 - a)
cp(n) = c1 / (beta * (1 + r1))
w1 = (1 - a) * k(n) ^ a * lx(n) ^ (-a)
lp(n) = 1 - cx(n) / w1
Next
e1 = 0
For n = 10 To 90
e1 = e1 + (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 e1 < 10 ^ (-5) Then t = 1000
t = t + 1
Loop
Dim kt(0 To 100) As Single
Dim ct(0 To 100) As Single
Dim LT(100) As Single
Dim c2 As Single
Dim c3 As Single
Dim l2 As Single
Dim l3 As Single
Dim t1 As Single
kt(0) = k(40)
For t = 0 To 99
n1 = kt(t) / h
n2 = Int(n1)
n3 = n2 + 1
c3 = cx(n2) + (n1 - n2) * (cx(n3) - cx(n2))
l3 = LX(n2) + (n1 - n2) * (LX(n3) - LX(n2))
LT(t) = l3
ct(t) = c3
kt(t + 1) = kt(t) + kt(t) ^ a * l3 ^ (1 - a) - ct(t)
Next
Dim minc As Single
Dim maxc As Single
minc = LT(0)
maxc = LT(0)
For t = 1 To 99
If LT(t) < minc Then minc = LT(t)
If LT(t) > maxc Then maxc = LT(t)
Next
Dim g As Graphics = PictureBox1.CreateGraphics()
Dim x1 As Single
Dim x2 As Single
Dim y1 As Single
Dim y2 As Single
For t = 0 To 98
x1 = 3 * t
x2 = 3 * (t + 1)
y1 = 100 - 100 * (LT(t) - minc) / (maxc - minc)
y2 = 100 - 100 * (LT(t + 1) - minc) / (maxc - minc)
g.DrawLine(Pens.Red, x1, y1, x2, y2)
Next
g.DrawLine(Pens.Black, 0, 100, 300, 100)
g.DrawLine(Pens.Black, 0, 0, 0, 200)
End Sub
End Class
最終更新:2009年12月05日 05:38