Головна |
Модель окремої популяції:
Найбільш простим описом динаміки окремо взятої популяції може служити так звана логістична модель, запропонована П. Ферхлюстом в позаминулому столітті для опису динаміки людського населення та Р. Пёрлом вже в 20-ті роки минулого століття про біологічні співтовариствам. Відповідно до неї, динаміка чисельності популяції N описується звичайним диференціальним рівнянням:
,
де a = const є максимальну питому швидкість росту популяції, коефіцієнт b = const описує внутрішньовидову конкурентну боротьбу. Коефіцієнт a являє собою різницю між природним приростом С і смертністю D в популяції: a = С-D.
Вміст functhion.m:
function dN = func (t, N)
global alfa beta;
dN = alfa * N-beta * N ^ 2;
Вміст work.m:
global beta alfa;
N0 = 100;
figure
hold on;
xlabel ('Час')
ylabel ('Чисельність')
beta = 0.025;
alfa = 2.5;
Nrav = alfa / beta;
for N0 = Nrav-30: 10: Nrav + 30
[T, NN] = ode45 ('functhion', [0 3], N0, [], alfa, beta);
plot (t, NN, 'g')
end
Очевидно, що необмежене зростання популяції неможливий, починаючи з деякого моменту, він буде гальмуватися в результаті внутрішньовидової конкуренції.
нейтрализм:
Чисельність популяції першого виду не залежить від чисельності популяції другого виду, тому не має сенсу будувати графік M (N), побудуємо лише графіки M (t) і N (t).
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Вміст sistd.m:
function sist = func (t, p)
global a1 a2 b1 b2;
sist = [(a1-b1 * p (1)) * p (1); (A2-b2 * p (2)) * p (2)];
вміст work1.m
global a1 a2 b1 b2;
a1 = 2.5;
a2 = 3.1;
b1 = 0.002;
b2 = 0.0023;
N0 = 1400;
M0 = 1200;
[T X] = ode45 ('sistd', [0 5], [N0 M0]);
N = X (:, 1);
M = X (:, 2);
figure
hold on
grid on
plot (t, N, 'b')
plot (t, M, 'g')
xlabel ('Час');
ylabel ('Чисельність популяцій');
legend ('1ая популяція', '2ая популяція')
hold off
Як бачимо, чисельності популяцій не залежать одне від одного, чого і слід було очікувати.
Аменсалізм:
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Рівновага настає лише за умови
Вміст siste.m:
function sist = func (t, p)
global a1 a2 b1 b2 b21;
if p (1) <= 0
p (1) = 0;
end
if p (2) <= 0
p (2) = 0;
end
sist = [(a1-b1 * p (1)) * p (1); (A2-b2 * p (2) -b21 * p (1)) * p (2)];
вміст work2.m
global a1 a2 b1 b2 b21;
a1 = 2.5;
a2 = 4.2;
% A2 = 3.1;
b1 = 0.002;
b2 = 0.0023;
b21 = 0.0033;
Nrav = a1 / b1;
Mrav = (a2-b21 * a1 / b1) / b2;
N0 = 500;
M0 = 1500;
[T X] = ode45 ('siste', [0 20], [N0 M0]);
N = X (:, 1);
M = X (:, 2);
figure
hold on
grid on
plot (t, N, 'b')
plot (t, M, 'g')
xlabel ('Час');
ylabel ('Чисельність популяцій');
legend ('1ая популяція', '2ая популяція')
hold off
figure
hold on
grid on
if (a2> b21 * a1 / b1)
plot (N, M, 'r')
plot (Nrav, Mrav, 'b *')
else
plot (N, M, '')
end
plot (N0, M0, 'm *')
xlabel ('1ая популяція');
ylabel ('2ая популяція');
hold off
a2 = 4.2:
Як показують графіки, чисельність першої популяції змінюється так, як ніби вона ізольована, а ось чисельність другий популяції стрімко падає під згубною дією першої. Але чисельності обох популяцій згодом прагнуть до певних рівноважним значенням.
a2 = 3.1:
А тут ми бачимо, що чисельність першої популяції досягла свого рівноважного значення, а друга популяція припинила своє існування.
комменсализм:
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Очевидно, що при будь-яких значеннях коефіцієнтів буде спостерігатися рівновагу.
Вміст siste.m:
function sist = func (t, p)
global a1 a2 b1 b2 b21;
if p (1) <= 0
p (1) = 0;
end
if p (2) <= 0
p (2) = 0;
end
sist = [(a1-b1 * p (1)) * p (1); (A2-b2 * p (2) + b21 * p (1)) * p (2)];
Вміст work3.m аналогічно work2.m
Друга популяція до досягнення рівноваги зростає значно швидше, ніж перша, це відбувається завдяки коефіцієнту ?21, хоча він має не таке вже й велике значення.
a1 = 2.5;
a2 = 4.2;
b1 = 0.002;
b2 = 0.007;
b21 = 0.0033;
конкуренція:
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Рівновага наступить при
позначимо
Рівновага наступить при
позначимо
Зі словом конкуренція асоціюються слова: переможець, переможений. Задамося питанням, в якому випадку конкурентну боротьбу виграє перша популяція, а в якому - друга.
Очевидно, що при k1> 1 і k2 <1 домінувати буде перша популяція. Дійсно, так як і, то частка природного приросту першої популяції і зменшення чисельності другий популяції за рахунок міжвидової конкуренції більше ніж частка природного приросту другий популяції і зменшення чисельності першої за рахунок внутрішньовидової конкуренції (т. К. K1> 1). І роблячи аналогічні висновки з нерівності k2 <1, можна зробити висновок, що чисельність першої популяції в результаті буде вище.
Міркуючи аналогічно, при k2> 1 і k1 <1 домінувати буде друга популяція.
В даному випадку для нас більший інтерес несуть графіки залежності чисельності від часу.
Вміст sistb.m:
function sist = func (t, p)
global a1 a2 b11 b22 b12 b21;
if p (1) <= 0
p (1) = 0;
end
if p (2) <= 0
p (2) = 0;
end
sist = [(a1-b11 * p (1) -b12 * p (2)) * p (1); (A2-b22 * p (2) -b21 * p (1)) * p (2)];
вміст work4.m
global a1 a2 b11 b22 b12 b21;
a1 = 0.2;
a2 = 0.24;
b11 = 0.004;
b22 = 0.0035;
b12 = 0.0033;
b21 = 0.0029;
k2 = b12 * a2 / (a1 * b22);
k1 = a1 * b21 / (b11 * a2);
N0 = 500;
M0 = 1500;
[T X] = ode45 ('sistb', [0 10], [N0 M0]);
N = X (:, 1);
M = X (:, 2);
figure
hold on
grid on
plot (t, N, 'b')
plot (t, M, 'g')
xlabel ('Час');
ylabel ('Чисельність популяцій');
legend ('1ая популяція', '2ая популяція')
hold off
if (k2> 1)
if (k1 <1)
disp ('Конкурентну боротьбу виграє другий вид')
end
end
if (k2 <1)
if (k1> 1)
disp ('Конкурентну боротьбу виграє перший вид')
end
end
work4
Конкурентну боротьбу виграє другий вид
При a1 = 0.44
work4
Конкурентну боротьбу виграє перший вид
Дійсно, в конкурентній боротьбі здобуває перемогу перший вид, хоча його початкова чисельність була в три рази менша за чисельність другого виду, звідси можна зробити висновок, що коефіцієнти в рішенні про результат боротьби відіграють велику роль, ніж початкові чисельності популяцій.
Як бачимо з графіків, наші припущення щодо переможця в конкурентній боротьбі були вірні.
Хижак - жертва:
Досить докладно цей випадок був розглянутий на лабораторній роботі. Однак же наведемо модель, що враховує внутрішньовидову конкуренцію в обох популяціях.
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Рівновага наступить при
Вміст sistс.m:
function sistc = func (t, p)
global a1 a2 b11 b22 b12 b21;
if p (1) <= 0
p (1) = 0;
end
if p (2) <= 0
p (2) = 0;
end
sist = [(a1-b11 * p (1) -b12 * p (2)) * p (1); (-a2-B22 * p (2) + b21 * p (1)) * p (2)];
вміст work5.m
global a1 a2 b11 b22 b12 b21;
a1 = 10;
a2 = 0.24;
b11 = 0.004;
b22 = 0.0035;
b12 = 0.042;
b21 = 0.033;
Mrav = (- a2 * b11 + b21 * a1) / (b22 * b11 + b21 * b12);
Nrav = (a1 * b22 + b12 * a2) / (b22 * b11 + b21 * b12);
N0 = 900;
M0 = 800;
[T X] = ode45 ('sistc', [0 15], [N0 M0]);
N = X (:, 1);
M = X (:, 2);
figure
hold on
grid on
plot (t, N, 'b')
plot (t, M, 'g')
xlabel ('Час');
ylabel ('Чисельність популяцій');
legend ('Жертва', 'Хижак')
hold off
figure
hold on
grid on
if (b21 * a1> a2 * b11)
plot (N, M, 'r')
plot (Nrav, Mrav, 'b *')
else
plot (N, M, 'g')
end
plot (N0, M0, 'm *')
xlabel ('Жертва');
ylabel ('Хижак');
hold off
За графіком легко простежити, що при збільшенні чисельності жертви збільшується чисельність хижака, після чого чисельність жертви падає, що тягне за собою зменшення чисельності хижака, після чого чисельність жертви знову збільшується.
А при таких коефіцієнтах чисельності популяцій збільшуються
b12 = 0.00403;
b21 = 0.0035;
А при таких коефіцієнтах, як популяція жертви, так і популяція хижака, припинять своє існування.
a1 = 0.34;
a2 = 0.44;
b11 = 0.013;
b22 = 0.0035;
b12 = 0.042;
b21 = 0.012;
Мутуалізм (симбіоз):
Диференціальні рівняння зміни численностей популяцій мають такий вигляд:
Рівновага настає при
Рівновага наступить при
Вміст sista.m:
function sist = func (t, p)
global a1 a2 b11 b22 b12 b21;
sist = [(a1-b11 * p (1) + b12 * p (2)) * p (1); (A2-b22 * p (2) + b21 * p (1)) * p (2)];
Вміст work6.m аналогічно work5.m
при коефіцієнтах
a1 = 0.2;
a2 = 0.24;
b11 = 0.004;
b22 = 0.0035;
b12 = 0.0033;
b21 = 0.0029;
Як бачимо, незважаючи ні на що (навіть на благотворний вплив популяцій друг на друга), чисельності популяцій падають.
при коефіцієнтах
b12 = 0.0042;
b21 = 0.0033;
А в цьому випадку чисельності популяцій ростуть до певного рівноважного значення.
А при коефіцієнтах
b12 = 0.00403;
b21 = 0.0035;
Чисельності популяцій необмежено ростуть, причому можна помітити, що зі збільшенням часу чисельності популяцій практично збігаються.
еволюція:
На основі отриманих знань про основні міжвидових взаємодію спробуємо змоделювати еволюцію.
Визначимо сценарій еволюції. Задамо його таблицею, яка визначає зміни відносин між популяціями в часі. У цій таблиці кожній парі видів зіставляється три символи: або «плюс» (коли зміна чисельності одного виду викликає аналогічне зміна чисельності іншого), або «нуль» (при відсутності впливу), або «мінусом» (коли зміна чисельності одного виду викликає зворотне зміна чисельності іншого).
Вплив первоговіда на другий | Вплив второговіда на перший | Примітки | ||
- | Аменсалізм з b21 | |||
- | Аменсалізм з b'21> b21 | |||
| - | Конкуренція з b12 | ||
- | - | Конкуренція з b'12> b12 | ||
хижак | жертва | Чи не чиста модель хижак - жертва |
У таблиці під словами не чиста модель хижак - жертва слід приймати, що хижак харчується не тільки цією жертвою, а й чимось іншим, тобто при відсутності даної жертви хижак не загине. Приймемо рівними початкові чисельності популяцій.
Змоделюємо цю ситуацію в MATLAB.
Задамо функцію, що описує зміну численностей популяцій.
вміст sistev.m
function sist = func (t, p)
global a1 a2 b11 b22 b12 b21 n1 n2 n3 n4 t1 t2 t3 t4 t5;
if p (1) <= 0
p (1) = 0;
end
if p (2) <= 0
p (2) = 0;
end
if p (1)> 950
b21 = 0.0003;
if t1 <0
t1 = t
end
if p (1)> 1100
b21 = 0.0005;
n2 = 2;
if t2 <0
t2 = t
end
end
n1 = 2;
end
if n2> 1
if p (2) <990
b12 = 0.0002;
n3 = 2;
if t3 <0
t3 = t
end
end
end
if n3> 1
if p (2)> 1070
b12 = 0.0003;
n4 = 2;
if t4 <0
t4 = t
end
end
end
if n4> 1
if p (1) <990
b12 = -0.0002;
if t5 <0
t5 = t
end
end
end
sist = [(a1-b11 * p (1) -b12 * p (2)) * p (1); (A2-b22 * p (2) -b21 * p (1)) * p (2)];
вміст evolucia.m
clear
global a1 a2 b11 b22 b12 b21 n1 n2 n3 n4 t1 t2 t3 t4 t5;
t1 = -1;
t2 = -1;
t3 = -1;
t4 = -1;
t5 = -1;
n1 = 0;
n2 = 0;
n3 = 0;
n4 = 0;
a2 = 2.5;
a1 = 2.6;
b22 = 0.002;
b11 = 0.0023;
b12 = 0;
b21 = 0;
N0 = 700;
M0 = 700;
[T X] = ode113 ('sistev', [0 7], [N0 M0]);
N = X (:, 1);
M = X (:, 2)
figure
hold on
grid on
plot (t, N, 'b')
plot (t, M, 'g')
xlabel ('Час');
ylabel ('Чисельність популяцій');
legend ('1-ша популяція', '2-а популяція')
hold off
Результат роботи програми:
evolucia
t1 =
0.45
t2 =
1.27
t3 =
2.06
t4 =
3.16
t5 =
4.27
Чи задовольняє даний графік нашим сценарієм?
Дивлячись на графік, можна сказати наступне. На проміжку часу (0 0,45) чисельності змінюються незалежно один від одного. Далі під час (0,45 1,27) перша популяція придушує розвиток другої, а під час (1,27 2,06) негативний вплив першої популяції на другу позначається ще сильніше. Після цього, під час (2,06 3,16) друга популяція почала конкурувати з першої, що призвело до збільшення чисельності другий популяції і зменшення чисельності першої. А до часу (3,16 4,27) друга популяція стала вже більш серйозним конкурентом для першої. Починаючи з моменту часу, рівного 4,27, перша популяція починає харчуватися другий, що стримує зростання другої популяції і падіння чисельності першої.
Таким чином, отриманий графік задовольняє нашим сценарієм еволюції.