Предлагаемые версии программной реализации для моделей

Option Explicit

' Текст модуля модели Жертва-Хищник.

Sub JertvaHi2001()'Модель Жертва-Хищник

Dim z As String: Dim v As String: v = "Модель: Жертва-Хищник"

Dim g As String: g = "Введите исходное количество"

Dim Xo As Single: z = lnputBox(g + "жертв- Xo", v): Xo = CSng(z)

Dim Yo As Single: z = lnputBox(g + "хищников- Yo", v): Yo = CSng(z)

g = "Введите значение коэффициента": Dim a As Single: Dim b As Single

z = lnputBox(g + "прироста жертв при отсутствии хищников- а=", v)

а = CSng(z): z = lnputBox(g + "убытия жертв как пища для хищников- b", v)

b = CSng(z): Dim с As Single: Dim d As Single

z = lnputBox(g + "вымирания хищников при отсутствии жертв- с", v)

с = CSng(z): z = lnputBox(g + "прироста хищников в силу наличия жертв- d", v)

d = CSng(z): Dim AY As Single: Dim BX As Single

z = lnputBox(g + "А-(учет процесса насыщения числа хищников)", v)

AY = CSng(z): z = lnputBox(g + "В- (учета ресурсов существования жертв)", v)

BX = CSng(z): Dim T As Single: Dim h As Single: Dim e As Single

z = InputВох("Введите интервал времени для анализа системы- Т", v)

Т = CSng(z): z = InputВох("Введите начальный шаг численного решения- h", v)

h = CSng(z): z = InputВох("Введите точность расчета- е", v): е = CSng(z)

Dim i As Integer: Dim f As Single: Dim s As Single: Dim XT As Single

Dim YT As Single: XT = Xo: YT = Yo: Dim N As Integer: N = 1

Dim x As Single: Dim Y As Single: Dim X1 As Single: Dim Y1 As Single

Metka: f = 0: x = Xo: Y = Yo

Do While f < T

X1 =x*(1 + (a-b*Y/(1 + AY*x)-BX*x)*h/N)

Y1 =Y*(1 + (d*x/(1 + AY*x)-c)*h/N):f = f + h/N

x = X1: Y = Y1: Loop

'f<T

If Abs(x - XT) + Abs(Y - YT) > e Then

XT = x: YT = Y: N = N +

1:

GoTo Metka: End If

v = "Численность жертв(Х) и хищников(У)"

z = "Модуль VBA:" + "За время t=" & CStr(Clnt(T))

z = z & "; X(t)=" & CStr(Clnt(x)) &"; Y(t)=" & CStr(Clnt(Y))

i = MsgBox(z, 1, v): i = МsgВох('Занести результат в ЭТ?", 1, v)

If i > 0 Then

Dim w As String: Dim NT As Integer:Dim NR As lnteger:Dim NC As Integer:

Dim p as string: р="Укажите номер"

w = lnputBox(p+" электронной таблицы", v, 1): NT = Clnt(w)

w = InputBox(p+" номер строки электронной таблицы", v, 45): NR = Clnt(w)

w = InputВох("Укажите номер столбца ЭТ", v, 1): NC = Clnt(w)

z = z + ";(Точность e=" + CStr(e) + ";шаг h=" + CStr(h) + ")"

w = "(При Xo=" + CStr(Xo) + ";a=" + CStr(a) + ";b="

w = w + CStr(b) + ";A=" + CStr(AY) + ";Yo=" + CStr(Yo) + ";c="

w = w + CStr(c) + ";d=" & CStr(d) + ";B=" + CStr(BX) + ")"

Worksheets(NT).Cells(NR, NC).Formula = z

Worksheets(NT).Cells(NR + 1, NC).Formula = w

End If:

End Sub 'JH2001

Текст модуля модели Жертва-Пища-Хищник

Option Explicit

Function НGP1(a1As Single, a2 As Single, a3 As Single, X As Single, _

Y As Single, Z As Single) As Single

HGP1 = X * (a1 * (a2 - X/Y)*(X/Y - a3) - Z):

End Function 'HGP1

Function HGP2(c1As Single, c2 As Single, X As Single, Y As Single) As Single

Dim s As Single: s = X

Lf Y<X Then

: s = Y: End If: HGP2 = d * (1 - Y) * (Y - c2) - s

End Function 'HGP2

Function HGP3(b1As Single, b2 As Single, X As Single, Z As Single) As Single

HGP3 =b1 * Z * (X - b2):

End Function 'HGP3

Function Ochibka(RM() As Single) As Single Dim a As Single: Dim i As Integer: Ochibka = 0 For i = 0 To 2: a = Abs(RM(15 + i) - RM(12 + i)) If a > Ochibka Then:

Ochibka = a: End If: Next i:








Дата добавления: 2016-02-04; просмотров: 506;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.