Основные межвидовые взаимодействия, эволюция
Формальная процедура классификации возможных взаимодействий численности популяций в экосистемах. Моделирование логистической структуры в 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