Привет! По мере того, как работаем над проектом, узнаю много нового о растении, которое называют борщевиком Сосновского. Каждый раз как едем на дачу, вижу заросли борщевика. Просто джунгли!
воскресенье, 13 апреля 2014 г.
суббота, 12 апреля 2014 г.
Об идее проекта
Привет! Появилась идея применить хорошо известную модель "Жертва" -"Хищник" к проблеме бесконтрольного распространения опасного растения, известного под именем "Борщевик Сосновского" .
понедельник, 10 марта 2014 г.
Моделирование системы "Хищник-Жертва"
Задача "Хищник-Жертва" состоит в том, что у нас есть две группы рыб: травоядные и хищники. Каждый день травоядные плодятся, их количество увеличивается на определённый процент. В то же время хищники постоянно умирают, их количество уменьшается, но если они съедят несколько травоядных, их количество увеличится. Также нужно учитывать то, что травоядные не могут плодиться вечно: чем больше их количество, тем медленнее они плодятся, т. к. страдают от перенаселённости.Изменение количества рыб можно представить такой формулой:
При этом число a должно быть чуть больше 1, число b должно быть в несколько десятков раз меньше числа а, число с будет чуть ниже 1, а число d - не больше 1.
Так выглядит код в Scilab:
Подбирая разные значения a, b , c и d, я получил такие графики:
В результате мы видим, что на первых трёх картинках, у нас были значения смертности хищников 0.8 и 0.9, и поэтому хищники плодились слишком быстро и съели всю рыбу.
А на четвёртом графике я снизил этот параметр до 0.5, хищники стали умирать быстрее, и поэтому травоядные рыбы успевали плодиться и выжили.
- травоядные: xn+1=(a-b*xn)*xn-d*xn*yn;
- хищники: yn+1=c*yn+d*xn*yn;
При этом число a должно быть чуть больше 1, число b должно быть в несколько десятков раз меньше числа а, число с будет чуть ниже 1, а число d - не больше 1.
Так выглядит код в Scilab:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Модель хищник-жертва | |
//a-Коэффициент роста количества травоядных | |
//b-Коэффициент перенаселённости | |
//c-Коэффициент смертности хищников | |
//d-Вероятность съедения жертвы хищником | |
function fish(a, b, c, d) | |
//Задаём массив для травоядных и даём начальное значение 0 | |
x=zeros(100,0); | |
//Задаём массив для хищников и даём начальное значение 0 | |
y=zeros(100,0); | |
//Начальное количество травоядных | |
x(1)=100; | |
//Начальное количество хищников | |
y(1)=10; | |
//Задаём цикл | |
for i=2:100 | |
x(i)=round((a-b*x(i-1))*x(i-1)-d*x(i-1)*y(i-1)); | |
y(i)=round(c*y(i-1)+d*x(i-1)*y(i-1)); | |
end | |
t=[1:100]; | |
clf; | |
plot(t, x,'g', t, y,'r'); | |
set(gca(),"grid",[1 1]); | |
xlabel("Дни"); | |
ylabel("Кол-во рыб"); | |
legend(['травоядные';'хищники']); | |
title(msprintf('Модель Хищник-Жертва a=%f b=%f c=%f d=%f', a, b, c, d)); | |
endfunction | |
А на четвёртом графике я снизил этот параметр до 0.5, хищники стали умирать быстрее, и поэтому травоядные рыбы успевали плодиться и выжили.
Подписаться на:
Сообщения (Atom)