Основные межвидовые взаимодействия, эволюция

Формальная процедура классификации возможных взаимодействий численности популяций в экосистемах. Моделирование логистической структуры в Matlab. Составление дифференциальных уравнений и программы изменения количества популяций биологических сообществ.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.03.2011
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Московский Государственный

Институт Электронной Техники

(Технический Университет)

Курсовая работа

По курсу "Математическое моделирование"

По теме:

"Основные межвидовые взаимодействия, эволюция"

Выполнила:

Азанова И.В.
гр.МП-30
Проверил:
Лисовец Ю.П.

Москва 2007

Основные межвидовые взаимодействия

Модели отдельной популяции, могут достаточно точно описывать динамику популяции и в случае её взаимодействия с другими популяциями. Для этого в уравнение включаются соответствующие члены, выражающие влияние на численность данной популяции со стороны тех или иных видов.

В настоящее время для классификации возможных взаимодействий в экосистемах предлагается следующая формальная процедура: каждой паре видов сопоставляется три символа: либо "плюс", либо "нуль", либо "минусом" (когда изменение численности одного вида вызывает обратное изменение численности другого). Эти категории биотических взаимодействий приведены в таблице:

Тип

Влияние

взаимодействия

Первого вида на второй

Второго вида на первый

1

нейтрализм

0

0

2

аменсализм

-

0

3

комменсализм

+

0

4

конкуренция

-

-

5

Хищник-жертва

+

-

6

Мутуализ (симбиоз)

+

+

Рассмотрим, как же ведут себя численности популяций при каждом из этих взаимодействий. Моделирование в Matlab. Модель отдельной популяции: Наиболее простым описанием динамики отдельно взятой популяции может служить так называемая логистическая модель, предложенная П. Ферхлюстом в позапрошлом веке для описания динамики человеческого населения и Р. Пёрлом уже в 20-ые годы прошлого столетия применительно к биологическим сообществам. Согласно ей, динамика численности популяции N описывается обыкновенным дифференциальным уравнением:

,

популяция экосистема моделирование дифференциальный

где =const представляет собой максимальную удельную скорость роста популяции, коэффициент =const описывает внутривидовую конкурентную борьбу. Коэффициент представляет собой разность между естественным приростом С и смертностью D в популяции: =С-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;

Численности популяций неограниченно растут, причем можно заметить, что с увеличением времени численности популяций практически совпадают.

Эволюция:

На основе полученных знаний об основных межвидовых взаимодействиях попробуем смоделировать эволюцию.

Определим сценарий эволюции. Зададим его таблицей, которая определяет изменения отношений между популяциями во времени. В этой таблице каждой паре видов сопоставляется три символа: либо "плюс" (когда изменение численности одного вида вызывает аналогичное изменение численности другого), либо "нуль" (при отсутствии влияния), либо "минусом" (когда изменение численности одного вида вызывает обратное изменение численности другого).

В таблице под словами не чистая модель хищник - жертва следует принимать, что хищник питается не только этой жертвой, но и чем-то другим, то есть при отсутствии данной жертвы хищник не погибнет. Примем равными начальные численности популяций.

Смоделируем эту ситуацию в 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, первая популяция начинает питаться второй, что сдерживает рост второй популяции и падение численности первой.

Таким образом, полученный график удовлетворяет нашему сценарию эволюции.

Размещено на Allbest.ru


Подобные документы

  • Построение математической модели динамики популяций при помощи электронной таблицы MS Excel. Применение уравнения Лотка-Вольтерра как модели динамики системы "хищник-жертва". Контроль над численностью популяций живых организмов в экологических системах.

    контрольная работа [659,9 K], добавлен 02.04.2017

  • Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.

    курсовая работа [226,6 K], добавлен 05.04.2013

  • Основные этапы математического моделирования. Метод Эйлера как наиболее простой численный метод решения обыкновенных дифференциальных уравнений. Написание компьютерной программы, которая позволит изучать графики системы дифференциальных уравнений.

    курсовая работа [1,9 M], добавлен 05.01.2013

  • Система гиперболических дифференциальных уравнений в частных производных. Таблица идентификаторов для программы. Реализация программы на языке С++. Исходный код программы для вывода в среде MATLAB. Тестовые примеры для программы, реализующей явную схему.

    курсовая работа [1,2 M], добавлен 19.03.2012

  • Математическая модель, описание теории, применяемой к задаче. Обсчет точек методом Рунге-Кутта, модифицированным методом Эйлера, схема и листинг программы. Решение дифференциальных уравнений и построение графиков, решение уравнений в среде Turbo Pascal.

    курсовая работа [76,7 K], добавлен 18.11.2009

  • Изучение игры "Жизнь" Джона Хортона Конуэма, как наиболее известного клеточного автомата, моделирующего развитие и угасание популяции. Компьютерное моделирование биологических популяций с целю выявления факторов определяющих свойства изучаемого объекта.

    практическая работа [4,5 M], добавлен 03.04.2019

  • Решение системы обыкновенных дифференциальных уравнений в программе Matlab. Применение метода Рунге–Кутты. Априорный выбор шага интегрирования. Построение трехмерного графика движения точки в декартовой системе координат и создание видеофайла формата AVI.

    контрольная работа [602,8 K], добавлен 04.05.2015

  • Схема и основные параметры элементов цепи. Вывод системы дифференциальных уравнений. Реализация алгоритма на языке программирования высокого уровня Pascal. Решение дифференциальных уравнений в пакете MathCAD. Решение интерполяции в пакете Excel.

    курсовая работа [375,4 K], добавлен 06.01.2011

  • Разработка быстрого и эффективного алгоритма для решения задачи оценки параметров обыкновенных дифференциальных уравнений с запаздывающими аргументами, не разрешаемых аналитически. Реализация алгоритма в виде библиотеки на языке программирования MATLAB.

    дипломная работа [1,6 M], добавлен 19.06.2012

  • Разработка программы на языке Turbo Pascal 7.0 для преобразования кинетической схемы протекания химических реакций при изотермических условиях в систему дифференциальных уравнений. Ее решение в численном виде методом Рунге-Кутта четвертого порядка.

    курсовая работа [929,7 K], добавлен 06.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.