Головна

Моделювання в MATLAB

  1. Альошина І. В. дає наступне визначення іміджмейкінгу - моделювання іміджу і процес управління.
  2. Аналітичний метод рішення диференціальних рівнянь в системі Matlab.
  3. Графічні можливості системи MATLAB
  4. Імітаційне моделювання
  5. Імітаційне моделювання
  6. Імітаційне моделювання
  7. Імітаційне моделювання

Модель окремої популяції:

Найбільш простим описом динаміки окремо взятої популяції може служити так звана логістична модель, запропонована П. Ферхлюстом в позаминулому столітті для опису динаміки людського населення та Р. Пёрлом вже в 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
 час t
-

-  Конкуренція з 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, перша популяція починає харчуватися другий, що стримує зростання другої популяції і падіння чисельності першої.

Таким чином, отриманий графік задовольняє нашим сценарієм еволюції.

Основні міжвидові взаємодії | від Іоанна

© 2016-2022  um.co.ua - учбові матеріали та реферати