Метод Метрополиса, идеальный газ в поле тяжести
Dim N, Alfa as Double
Private Sub Command1_Click()
‘ начальное распределение частиц
For i = 0 To N
Shape1(i).Left = 100 + (Picture1.Width - 200) * Rnd
Shape1(i).Top = 100 + (Picture1.Height - 200) * Rnd
Next i
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
Timer1.Enabled = False
End Sub
Private Sub Command4_Click()
st = 100
For j = 0 To 1000
For i = 0 To N
If Rnd < 0.5 Then
Shape1(i).Top = Shape1(i).Top + st
If Shape1(i).Top > Picture1.Height - 100 Then Shape1(i).Top = Picture1.Height - 100
Else
ppp = Exp(-Alfa * st)
If Rnd < ppp Then
Shape1(i).Top = Shape1(i).Top – st ‘ Перемещение частицы в ‘ новое положение
End If
End If
Next i
Next j
End Sub
Private Sub Form_Activate()
N = 100
Alfa = (Text1.Text / Text2.Text / 30)
'Text1.Text = Alfa
End Sub
Private Sub Timer1_Timer()
st = 100
For i = 0 To N
If Rnd < 0.5 Then
Shape1(i).Top = Shape1(i).Top + st
If Shape1(i).Top > Picture1.Height - 100 Then Shape1(i).Top = Picture1.Height - 100
Else
ppp = Exp(-Alfa * st)
If Rnd < ppp Then
Shape1(i).Top = Shape1(i).Top - st
End If
End If
Next i
End Sub