понедельник, 10 марта 2014 г.

Моделирование системы "Хищник-Жертва"

Задача "Хищник-Жертва" состоит в том, что у нас есть две группы рыб: травоядные и хищники. Каждый день травоядные плодятся, их количество увеличивается на определённый процент. В то же время хищники постоянно умирают, их количество уменьшается, но если они съедят несколько травоядных, их количество увеличится. Также нужно учитывать то, что травоядные не могут плодиться вечно: чем больше их количество, тем медленнее они плодятся, т. к. страдают от перенаселённости.Изменение количества рыб можно представить такой формулой:
  • травоядные:  xn+1=(a-b*xn)*xn-d*xn*yn;
  • хищники: yn+1=c*yn+d*xn*yn;
где a - коэффициент роста количества травоядных; b - коэффициент перенаселённости; c - коэффициент смертности хищников; d - вероятность съедения жертвы хищником.
При этом число a должно быть чуть больше 1, число b должно быть в несколько десятков раз меньше числа а, число с будет чуть ниже 1, а число d - не больше 1.
Так выглядит код в Scilab:
Подбирая разные значения a, b , c и d, я получил такие графики:




В результате мы видим, что на первых трёх картинках, у нас были значения смертности хищников 0.8 и 0.9, и поэтому хищники плодились слишком быстро и съели всю рыбу.
А на четвёртом графике я снизил этот параметр до 0.5, хищники стали умирать быстрее, и поэтому травоядные рыбы успевали плодиться и выжили.