99042

Исследование модели «хищник - жертва»

Курсовая

Информатика, кибернетика и программирование

Модель популяции, учитывающая миграцию особей по ареалу. Система «хищник - жертва». Релаксационные колебания в системе «хищник - жертва». «Умный» хищник. Релаксационные колебания в системе «хищник - жертва» с учетом диффузии...

Русский

2016-07-29

2.43 MB

4 чел.

Министерство образования и науки Российской Федерации

Государственное образовательное учреждение

высшего профессионального образования

«Нижегородский государственный университет

им. Н. И. Лобачевского»

механико-математический факультет

Кафедра численного моделирования физико-механических процессов

   

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

Исследование модели  «хищник - жертва».

Исполнитель:

студентка 645 группы

Макова Светлана Витальевна

Руководитель:

доцент кафедры ЧМФМП

СабаеваТатьяна Анатольевна

 

                                                             

                                                                Н. Новгород

                                                                      2012                                             

Содержание

Введение………………………………………………………………………………………...3

1 Постановка задачи…………………………………………………………………………....4

2 Модель популяции, учитывающая миграцию особей по ареалу………………………….5

3 Система «хищник - жертва»…………………………………………………………………7

4 Релаксационные колебания в системе «хищник - жертва». «Умный» хищник.………....8

5 Релаксационные колебания в системе «хищник - жертва» с учетом диффузии……...…12

6 Графики………………………………………………………………………………………14

7 Приложения………………………………………………………………………………….17

8 Заключение…………………………………………………………………………………..27

9 Список используемой литературы…………………………………………………………28

Введение

       Экологическая система является, прежде всего, динамической, эволюция которой описывается векторным полем в фазовом пространстве. Система эволюционирует, двигаясь к устойчивому положению равновесия. Но кроме устойчивых существуют и неустойчивые равновесия. И если система зависит от параметров, то при их изменении перестраиваются и семейства фазовых кривых. Устойчивое положение может сливаться с неустойчивым, после чего оба исчезают, или же «неожиданно» возникает пара положений равновесия. Если устойчивое положение равновесия описывает установившийся равновесный режим в какой-либо реальной экологической системе, то при его слиянии с неустойчивым равновесием система должна совершить скачок, перескочить на совершенно другой режим. Скачки такого типа и привели к термину «теория катастроф».

       Однако возможны и другие «катастрофы», не связанные непосредственно с бифуркацией самого состояния равновесия, когда при изменении параметра равновесие теряет устойчивость само по себе, не сталкиваясь с другим равновесием (неустойчивым). Это случаи рождения или умирания предельного цикла. Возможны два случая.

  1. После потери устойчивости равновесия рождается предельный цикл, радиус которого пропорционален , где  ε – разница между текущим значением параметра и бифуркационным, при котором равновесие теряет устойчивость. Этот тип называется «мягкой» потерей устойчивости. Амплитуда колебаний при малых ε мала, и сам колебательный установившийся режим мало отличается от положения равновесия.
  2. Неустойчивый предельный цикл ограничивает область устойчивости (притяжения) устойчивого равновесия. При изменении параметра область притяжения этого равновесия уменьшается, умирает неустойчивый предельный цикл, равновесие теряет устойчивость, и система уходит из этого равновесия скачком, перескакивая в другое состояние, которое может быть устойчивой стационарной точкой, либо устойчивыми колебаниями, либо каким-либо более сложным режимом. Этот тип называется «жесткой» потерей устойчивости.

  1.  Постановка задачи

Исследовать возможные движения модели «хищник» - «жертва», в зависимости от параметров среды.

Наиболее популярная модель «хищник-жертва» записывается в виде:

где x – численность популяции «жертвы», y – численность популяции «хищника»,  – мальтузианская функция «жертвы»  или коэффициент естественного прироста, V(x) – трофическая функция, т.е скорость потребления жертвы одним хищником,  k – к.п.д. переработки биомассы жертвы в новую биомассу хищника, m – коэффициент его естественной смертности.

Данная задача рассматривается в книге Ю. М. Свирежева «Нелинейные волны, диссипативные структуры и катастрофы в экологии».

  1.   Модель популяции, учитывающая миграцию особей по ареалу

  Как показывают наблюдения над окружающей нас природой (впрочем, как и над нами самими), ни один организм любого вида не может жить и продолжать свою жизнь в одиночестве – все они образуют группы, называемые популяциями. Основная характеристика популяции – её плотность: численность или биомасса на единицу пространства, занимаемого популяцией. Само это пространство называется ареалом популяции.

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

  Любая особь популяции в процессе своей жизнедеятельности перемещается по ареалу, имеет свой радиус индивидуальной активности. Это понятие было впервые введено Н.В.Тимофеевым-Ресовским, а сам радиус может быть измерен экспериментально. Заметим, что если этот радиус больше, чем характерный размер ареала, то популяцию можно считать хорошо перемещаемой и при её описании можно не учитывать пространственных эффектов.

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

                                         

  - Есть среднеквадратичное перемещение за поколение, которое называется радиусом индивидуальной активности.

  Предположим теперь, что процесс миграции, с одной стороны, и процессы размножения и гибели – с другой стороны, не зависят друг от друга. Пусть динамика плотности популяции (локально в «точке») описывается уравнением

                                        .

  Здесь х, у – пространственные координаты, F(N, x, y) – так называемый локальный закон роста популяции, в общем случае зависит от плотности и от пространственных координат. Тогда приращение плотности за время  в точке (х,у) за счет миграции и локального роста равно

                      .

                      .

 

Раскладывая  в ряд Тейлора в окрестности точки (х, у) и предполагая, что третий момент достаточно мал,   можно ограничиться в этом разложении членами второго порядка по  и . Тогда переходя при , получим уравнение вида

                                                        (1),

  где , , которое описывает динамику пространственно распределенной популяции. Уравнение (1) – это уравнение нелинейной диффузии.

  1.  Система «хищник - жертва»

  Пусть x(t), y(t) – численность популяций «жертвы» и «хищника» соответственно. Наиболее популярная модель системы «хищник - жертва» записывается в виде (2)                     

Здесь ,  – мальтузианская функция «жертвы»  или коэффициент естественного прироста, V(x) – трофическая функция, т.е скорость потребления жертвы одним хищником,  k – к.п.д. переработки биомассы жертвы в новую биомассу хищника, m – коэффициент его естественной смертности.

  Мальтузианскую функцию можно представить в виде , где B(x) – функция рождаемости, D(x) – функция смертности. Практически для всех популяций D(x) – монотонно возрастающая функция, причем D(0)=m, а возрастание смертности с ростом x объясняется ростом конкуренции за ограниченный ресурс (пища, пространство и т. п.). Рождаемость для многих видов определяется лишь физиологическими пределами и не зависит от x, так что B(x) = n = C (C = const), где n – это так называемая естественная рождаемость (или плодовитость). Однако для многих видов животных, которые могут мигрировать достаточно свободно и просторно заселяющих свой ареал, это предположение не совсем верно. При малых плотностях размножение определяется, скорее, вероятностью встречи брачных партнеров.

  Функцию V(x), обладающую следующими свойствами: V(x) – монотонна, V(0) = 0 и , будем называть трофической функцией. Последнее условие есть отражение того факта, что даже при обилии пищи скорость потребления жертв хищниками всегда ограничена. Однако поведение это функции при конечных х может быть весьма различным. Как показали многочисленные эксперименты, все многообразие трофических функций можно разбить на два класса. К первому классу отнесем функции, выпуклые вверх, а ко второму –  S–образные функции. Если первый тип характерен для беспозвоночных хищников и многих видов хищных рыб, то второй – для организмов, проявляющих достаточно сложное поведение (например, способных к обучению). Кроме этих двух классов существуют и другие, в частности, некоторые промежуточные варианты, например, с более резко выраженным порогом насыщения, который характерен для организмов – фильтраторов. Если положить , то получим классическую модель В.Вольтера.

  1.  Релаксационные колебания в системе «хищник - жертва». Умный хищник

Рассмотрим систему «хищник-жертва». Предположим, что хищник «умный», т.е.

     трофическая функция V(x) - S-образна.

 Сделаем замену:

Зададим максимально простую параметризацию мальтузианской функции жертвы:

И трофической функции хищника:

тогда получаем систему (3)

 

Предположим, что жертва размножается со скоростью гораздо большей чем хищник, т.е  , тогда   можно рассматривать как малый параметр, переменную X как «быструю», а Y - «медленную»

  Тогда динамика системы в значительной степени будет определяться видом равновесного многообразия

  Или

  Второе многообразие зависит только от одного параметра  – «емкости» среды популяции жертв.

На рисунках 1 и 2 изображены два вида этой кривой при различных значениях :

Рис.1 Рис.2

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

Рис. 3

Пусть  и равновесное многообразие имеет вид изображенный на рисунке 2. Так как поведение системы зависит еще от параметра b (значение ), то рассмотрим различные варианты поведения при различных значениях .

  1. Значение параметра или , где  , экологически это означает, что хищник плохо или хорошо адаптирован к среде соответственно. Рассмотрим случай при . При этом будет происходить быстрое движение вдоль оси Х до кривой медленных движений, затем Y будет убывать, а X возрастать до значения . Затем система совершит «катастрофический» скачок и продолжится движение к равновесной точке, как видно на рисунке 4.

 Рис. 4

  1. Значение параметра.Как видно на рисунке 5 вначале происходит быстрый «скачок» вдоль оси Х до кривой медленных движений, затем происходит медленное убывание Y и возрастание X до точки , после чего происходит «катастрофический» скачок и движение кривой до точки, где происходит второй «катастрофический» скачок. Цикл замкнулся, возник так называемый «релаксационный» цикл. Описываемые им колебания, для которых характерны чередования достаточно гладких режимов и «катастроф», называют обычно «релаксационными». Существующее здесь равновесие неустойчиво, но сам релаксационный цикл устойчив.

Рис. 5

       Здесь можно говорить, что отображение имеет особенность. Это особенность        является складкой и представляет собой простейший тип катастрофы. Но эта особенность устойчива, то есть она не исчезает при малых шевелениях самого отображения. Устойчивость такого типа называется еще структурной.

  1.  Релаксационные колебания в системе «хищник - жертва» с учетом диффузии. «Умный» хищник.

Система уравнений (3) запишется в виде (4)

                              

                                 

  где  – коэффициент диффузии, здесь уже  и  – плотность популяции в точке   в момент времени t. Будем рассматривать поведение экологической системы в области

                                              

  и граничными условиями

                         

                                              

  Эти краевые условия можно интерпретировать, например, как, стоящий на границе ареала забор.

  Для того, чтобы решить систему дифференциальных уравнений (4) разобьем [а, b] оси  и [0,T] оси t соответственно на N1 и N2 частей; пусть , . Через точки деления проведем прямые, параллельные соответствующим осям. В результате пересечения этих прямых получим узлы , которые образуют сетку.

                                            .

  Эта сетка имеет шаги h и  соответственно по направлениям х и t (рис.6). Для того, чтобы написать разностную аппроксимацию для системы (4) воспользуемся шаблоном, который состоит из четырех точек.

                

                

                

  Точность аппроксимации: 0() – первый порядок по времени и второй порядок по координате.

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

  A2[0]=0; B2[0]=-1/h; C2[0]=1/h; D2[0]=0; A2[i]=-D/(h*h); B2[i]=(2*D/(h*h) +1/dt);

  C2[i]=-D/(h*h); D2[i]=Y0[i]/dt+Y0[i]*(X0[i]*X0[i]/(X0[i]*X0[i]+1)-b); A2[N1]=-1/h;

  B2[N1]=1/h; C2[N1]=0; D2[N1]=0; A3[0]=-C2[0]/B2[0]; B3[0]=D2[0]/B2[0];

  A3[i+1]=-C2[i+1]/(B2[i+1]+A2[i+1]*A3[i]);

  B3[i+1]=(D2[i+1]-A2[i+1]*B3[i])/(B2[i+1]+A2[i+1]*A3[i]); Y[N1]=B3;

  Для устойчивости метода прогонки достаточно, чтобы . Таким образом мы нашли . Нарисуем y(x) – фазовую траекторию поведения экологической системы с учетом пространственных координат.

  1.  Графики

Графики строятся для системы «хищник - жертва», с S – образной трофической функцией, т.е. для системы с умным хищником. Рассмотрим 3 выше описанных случая.

  1. . Рисунок 6.
  2. Пусть хищник имеет промежуточную адаптацию, т.е.  

. Соответствующий рисунок 7.

  1. Пусть теперь , где , . Рисунок 8.

 рисунок 6.

Поведение системы с учетом диффузии рисунок 7.

Поведение системы с учетом диффузии

Рисунок 8.

  1.  Приложения

#pragma once

namespace Burakov {

 using namespace System;

 using namespace System::ComponentModel;

 using namespace System::Collections;

 using namespace System::Windows::Forms;

 using namespace System::Data;

 using namespace System::Drawing;

 

 double x0,x1,T,T0,p,fi,ksi,E,Mu,R,N;

 double X0=5,X1,Y0=5,Y1,K1,K2,K3,K4,L1,L2,L3,L4,H=0.1,XK,B,M,A0,K,A;

 double fx(double x,double y,double a,double xk) //задание функций

{

 return(a* ( x*( ( 1-(x/xk) )-x*y/(1.0+x*x)) ) );

}

 double fy(double x,double y,double b,double m)

{

 return(m/b*y*((x*x/(1.0+x*x))-b));

 }

 int IsInt(char* s) //проверка число ли вводится

 {

 if(s==0)

  return 0;

 for(;*s!='\0' && *s>='0' && *s<='9' ;s++);

 if (*s!='\0')

 {

  return 0;

 }

 return 1;

}

 /// <summary>

 /// Сводка для Form1

 ///

 /// Внимание! При изменении имени этого класса необходимо также изменить

 ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,

 ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,

 ///          конструкторы не смогут правильно работать с локализованными

 ///          ресурсами, сопоставленными данной форме.

 /// </summary>

 public ref class Form1 : public System::Windows::Forms::Form

 {

 public:

 Form1(void) //инициализация компонентов формы

 {

  InitializeComponent();

  //

  //TODO: добавьте код конструктора

  //

 }

 private: System::Windows::Forms::TextBox^  textBox2;

 private: System::Windows::Forms::TextBox^  textBox3;

 private: System::Windows::Forms::TextBox^  textBox4;

 private: System::Windows::Forms::TextBox^  textBox5;

 private: System::Windows::Forms::TextBox^  textBox6;

 private: System::Windows::Forms::TextBox^  textBox7;

 private: System::Windows::Forms::Label^  label1;

 private: System::Windows::Forms::Label^  label2;

 private: System::Windows::Forms::Label^  label3;

 private: System::Windows::Forms::Label^  label4;

 private: System::Windows::Forms::Label^  label5;

 private: System::Windows::Forms::Label^  label6;

 private: System::Windows::Forms::Label^  label7;

 public: System::Windows::Forms::DataVisualization::Charting::Chart^  chart1;

cli::array<TextBox^>^ m;

 protected:

 /// <summary>

 /// Освободить все используемые ресурсы.

 /// </summary>

 ~Form1() //удаление памяти

 {

  if (components)

  {

   delete components;

  }

 }

 private: System::Windows::Forms::TextBox^  textBox1;

 private: System::Windows::Forms::Button^  button1;

 protected:

 private:

 /// <summary>

 /// Требуется переменная конструктора.

 /// </summary>

 System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

 /// <summary>

 /// Обязательный метод для поддержки конструктора - не изменяйте

 /// содержимое данного метода при помощи редактора кода.

 /// </summary>

 void InitializeComponent(void) //создание компонентов на форме

 {

  System::Windows::Forms::DataVisualization::Charting::ChartArea^  chartArea4 = (gcnew System::Windows::Forms::DataVisualization::Charting::ChartArea());

  System::Windows::Forms::DataVisualization::Charting::Legend^  legend4 = (gcnew System::Windows::Forms::DataVisualization::Charting::Legend());

  this->textBox1 = (gcnew System::Windows::Forms::TextBox());

  this->button1 = (gcnew System::Windows::Forms::Button());

  this->textBox2 = (gcnew System::Windows::Forms::TextBox());

  this->textBox3 = (gcnew System::Windows::Forms::TextBox());

  this->textBox4 = (gcnew System::Windows::Forms::TextBox());

  this->textBox5 = (gcnew System::Windows::Forms::TextBox());

  this->textBox6 = (gcnew System::Windows::Forms::TextBox());

  this->textBox7 = (gcnew System::Windows::Forms::TextBox());

  this->label1 = (gcnew System::Windows::Forms::Label());

  this->label2 = (gcnew System::Windows::Forms::Label());

  this->label3 = (gcnew System::Windows::Forms::Label());

  this->label4 = (gcnew System::Windows::Forms::Label());

  this->label5 = (gcnew System::Windows::Forms::Label());

  this->label6 = (gcnew System::Windows::Forms::Label());

  this->label7 = (gcnew System::Windows::Forms::Label());

  this->chart1 = (gcnew System::Windows::Forms::DataVisualization::Charting::Chart());

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->chart1))->BeginInit();

  this->SuspendLayout();

  //описание работы компонентов

  //

  // textBox1

  //

  this->textBox1->Location = System::Drawing::Point(12, 33);

  this->textBox1->Name = L"textBox1";

  this->textBox1->Size = System::Drawing::Size(126, 20);

  this->textBox1->TabIndex = 0;

  this->textBox1->Text = L"1";

  //

  // button1

  //

  this->button1->Location = System::Drawing::Point(144, 186);

  this->button1->Name = L"button1";

  this->button1->Size = System::Drawing::Size(126, 20);

  this->button1->TabIndex = 11;

  this->button1->Text = L"Построить";

  this->button1->UseVisualStyleBackColor = true;

  this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

  //

  // textBox2

  //

  this->textBox2->Location = System::Drawing::Point(12, 82);

  this->textBox2->Name = L"textBox2";

  this->textBox2->Size = System::Drawing::Size(126, 20);

  this->textBox2->TabIndex = 1;

  this->textBox2->Tag = L"1";

  this->textBox2->Text = L"1";

  //

  // textBox3

  //

  this->textBox3->Location = System::Drawing::Point(12, 134);

  this->textBox3->Name = L"textBox3";

  this->textBox3->Size = System::Drawing::Size(126, 20);

  this->textBox3->TabIndex = 2;

  this->textBox3->Text = L"1";

  //

  // textBox4

  //

  this->textBox4->Location = System::Drawing::Point(12, 186);

  this->textBox4->Name = L"textBox4";

  this->textBox4->Size = System::Drawing::Size(126, 20);

  this->textBox4->TabIndex = 3;

  this->textBox4->Text = L"1";

  //

  // textBox5

  //

  this->textBox5->Location = System::Drawing::Point(144, 33);

  this->textBox5->Name = L"textBox5";

  this->textBox5->Size = System::Drawing::Size(126, 20);

  this->textBox5->TabIndex = 4;

  this->textBox5->Text = L"1";

  //

  // textBox6

  //

  this->textBox6->Location = System::Drawing::Point(144, 82);

  this->textBox6->Name = L"textBox6";

  this->textBox6->Size = System::Drawing::Size(126, 20);

  this->textBox6->TabIndex = 5;

  this->textBox6->Text = L"1";

  //

  // textBox7

  //

  this->textBox7->Location = System::Drawing::Point(144, 134);

  this->textBox7->Name = L"textBox7";

  this->textBox7->Size = System::Drawing::Size(126, 20);

  this->textBox7->TabIndex = 6;

  this->textBox7->Text = L"1";

  //

  // label1

  //

  this->label1->AutoSize = true;

  this->label1->Location = System::Drawing::Point(63, 17);

  this->label1->Name = L"label1";

  this->label1->Size = System::Drawing::Size(21, 13);

  this->label1->TabIndex = 2;

  this->label1->Text = L"XK";

  //

  // label2

  //

  this->label2->AutoSize = true;

  this->label2->Location = System::Drawing::Point(63, 66);

  this->label2->Name = L"label2";

  this->label2->Size = System::Drawing::Size(20, 13);

  this->label2->TabIndex = 2;

  this->label2->Text = L"A0";

  //

  // label3

  //

  this->label3->AutoSize = true;

  this->label3->Location = System::Drawing::Point(63, 118);

  this->label3->Name = L"label3";

  this->label3->Size = System::Drawing::Size(16, 13);

  this->label3->TabIndex = 2;

  this->label3->Text = L"M";

  //

  // label4

  //

  this->label4->AutoSize = true;

  this->label4->Location = System::Drawing::Point(63, 170);

  this->label4->Name = L"label4";

  this->label4->Size = System::Drawing::Size(14, 13);

  this->label4->TabIndex = 2;

  this->label4->Text = L"A";

  //

  // label5

  //

  this->label5->AutoSize = true;

  this->label5->Location = System::Drawing::Point(195, 17);

  this->label5->Name = L"label5";

  this->label5->Size = System::Drawing::Size(20, 13);

  this->label5->TabIndex = 2;

  this->label5->Text = L"X0";

  //

  // label6

  //

  this->label6->AutoSize = true;

  this->label6->Location = System::Drawing::Point(195, 66);

  this->label6->Name = L"label6";

  this->label6->Size = System::Drawing::Size(20, 13);

  this->label6->TabIndex = 2;

  this->label6->Text = L"Y0";

  //

  // label7

  //

  this->label7->AutoSize = true;

  this->label7->Location = System::Drawing::Point(195, 118);

  this->label7->Name = L"label7";

  this->label7->Size = System::Drawing::Size(14, 13);

  this->label7->TabIndex = 2;

  this->label7->Text = L"K";

  //

  // chart1

  // рисуем сетку

  this->chart1->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Bottom)| System::Windows::Forms::AnchorStyles::Left)| System::Windows::Forms::AnchorStyles::Right));

  chartArea4->AxisX->Interval = 1;

  chartArea4->AxisX->IsStartedFromZero = false;

  chartArea4->AxisX->Maximum = 20;

  chartArea4->AxisX->Minimum = 0;

  chartArea4->AxisX2->Interval = 1;

  chartArea4->AxisX2->IsStartedFromZero = false;

  chartArea4->AxisX2->Maximum = 20;

  chartArea4->AxisX2->Minimum = 0;

  chartArea4->AxisY->Interval = 1;

  chartArea4->AxisY->IsStartedFromZero = false;

  chartArea4->AxisY->Maximum = 20;

  chartArea4->AxisY->Minimum = 0;

  chartArea4->AxisY2->Interval = 1;

  chartArea4->AxisY2->IsStartedFromZero = false;

  chartArea4->AxisY2->Maximum = 20;

  chartArea4->AxisY2->Minimum = 0;

  chartArea4->Name = L"ChartArea1";

  this->chart1->ChartAreas->Add(chartArea4); //объекты в области графика

  legend4->BackColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(255)), static_cast<System::Int32>(static_cast<System::Byte>(255)),static_cast<System::Int32>(static_cast<System::Byte>(192)));

  legend4->Name = L"График";

  this->chart1->Legends->Add(legend4);

  this->chart1->Location = System::Drawing::Point(407, 12);

  this->chart1->Name = L"chart1";

  this->chart1->Palette = System::Windows::Forms::DataVisualization::Charting::ChartColorPalette::None;

  this->chart1->Size = System::Drawing::Size(545, 290);

  this->chart1->TabIndex = 12;

  this->chart1->Text = L"chart1";

  //

  // Form1

  // добавление компонентов на форму

  this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

  this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

  this->ClientSize = System::Drawing::Size(964, 314);

  this->Controls->Add(this->chart1);

  this->Controls->Add(this->label7);

  this->Controls->Add(this->label6);

  this->Controls->Add(this->label5);

  this->Controls->Add(this->label4);

  this->Controls->Add(this->label3);

  this->Controls->Add(this->label2);

  this->Controls->Add(this->label1);

  this->Controls->Add(this->button1);

  this->Controls->Add(this->textBox7);

  this->Controls->Add(this->textBox6);

  this->Controls->Add(this->textBox5);

  this->Controls->Add(this->textBox4);

  this->Controls->Add(this->textBox3);

  this->Controls->Add(this->textBox2);

  this->Controls->Add(this->textBox1);

  this->Name = L"Form1";

  this->Text = L"Построение графика";

  this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

  (cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->chart1))->EndInit();

  this->ResumeLayout(false);

  this->PerformLayout();

 }

 //работа с формой(считывание информации с полей)

#pragma endregion работа с формой

 private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)

   {

    m=gcnew  cli::array<TextBox^>(7);

    m[0]=textBox1;

    m[1]=textBox2;

    m[2]=textBox3;

    m[3]=textBox4;

    m[4]=textBox5;

    m[5]=textBox6;

    m[6]=textBox7;

   }

 public: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) //обработчик нажатия кнопки Построить

   {

    if(textBox1->TextLength==0||textBox2->TextLength==0||textBox3->TextLength==0||textBox4->TextLength==0||textBox5->TextLength==0||textBox6->TextLength==0||textBox7->TextLength==0)

    {

     MessageBox::Show("Вы забыли ввести один из коэффициентов!","Ошибка ввода");

     //exit(0);

    }

    else //строим графики

    {

     System::Windows::Forms::DataVisualization::Charting::Series^  Graphic = (gcnew System::Windows::Forms::DataVisualization::Charting::Series());

     System::Windows::Forms::DataVisualization::Charting::Series^  Graphic2 = (gcnew System::Windows::Forms::DataVisualization::Charting::Series());

     chart1->Series->Clear();

     chart1->Series->Add(Graphic2);

     Graphic2->ChartType = System::Windows::Forms::DataVisualization::Charting::SeriesChartType::Line;

     Graphic2->ChartArea = L"ChartArea1";

     Graphic2->Color = System::Drawing::Color::Blue;

     Graphic2->Legend = L"График";

     Graphic2->Name = L"Построение";

     Graphic2->BorderWidth = 3;

     chart1->Series->Add(Graphic);

     Graphic->ChartType = System::Windows::Forms::DataVisualization::Charting::SeriesChartType::Line;

     Graphic->ChartArea = L"ChartArea1";

     Graphic->Color = System::Drawing::Color::Red;

     Graphic->Legend = L"График";

     Graphic->Name = L"Уточнение";

     Graphic->BorderWidth = 3;

     XK  = Convert::ToDouble(m[0]->Text);

     A0  = Convert::ToDouble(m[1]->Text);

     M  = Convert::ToDouble(m[2]->Text);

     A  = Convert::ToDouble(m[3]->Text);

     X0  = Convert::ToDouble(m[4]->Text);

     Y0  = Convert::ToDouble(m[5]->Text);

     K  = Convert::ToDouble(m[6]->Text);

     B=M/K/A;

     //построение графика по точкам

     for(double i=0.1;i<20;i=i+0.1)

     {

      x0=i;

      x1=(1-x0/XK)*(1+x0*x0)/(x0);

      Graphic2->Points->AddXY(x1,x0);

     }

     for(int j=0;j<200;j++)

     {

      x0=X0;

      x1=Y0;

      Graphic->Points->AddXY(x1,x0);

      

      K1=H*fx(X0,Y0,A0,XK);

      L1=H*fy(X0,Y0,B,M);

      

      K2=H*fx((X0+K1/2.0),(Y0+L1/2.0),A0,XK);

      L2=H*fy((X0+K1/2.0),(Y0+L1/2.0),B,M);

      

      K3=H*fx((X0+K2/2.0),(Y0+L2/2.0),A0,XK);

      L3=H*fy((X0+K2/2.0),(Y0+L2/2.0),B,M);

      

      K4=H*fx((X0+K3),(Y0+L3),A0,XK);

      L4=H*fy((X0+K3),(Y0+L3),B,M);

      

      X0=X0+1.0/6.0*(K1+2.0*K2+2.0*K3+K4);

      Y0=Y0+1.0/6.0*(L1+2.0*L2+2.0*L3+L4);

     }

     

    }

   }

};

}

  1.  Заключение

  Мы видим, что поведение экологической системы «хищник - жертва» с учетом пространственных координат (с учетом диффузии) практически совпадает с локальным поведением системы (появляются предельные циклы и т.д.). Различия видны лишь в первые моменты, это зависит от начального распределения популяций (в исследуемом выше случае использовалось ступенчатое распределение популяции хищника, в то время как жертва распределена по ареалу равномерно). Как мы видим, начальное неравномерное распределение хищника по ареалу, в первые моменты времени уводит систему от траекторий состояния равновесия (от «нормального» сосуществования), но с течением времени система возвращается на равновесное многообразие Y=Y(x) и ведет себя так же, как и в локальном случае.

  При нашем исследовании мы получили особенность типа сборки, параметризовав мальтузианскую и трофическую функцию. В любой реальной ситуации мы никогда не знаем точно их вида, известны лишь качественные особенности (например, мальтузианская функция уменьшается с ростом численности и достигает нуля при её конечных значениях, а трофическая функция-это S-образная функция с насыщением). И неизвестно, сохранится ли эта особенность для функций, несколько отличающихся от используемых нами при анализе. Не возникнут ли другие особенности?

  Так вот, теория катастроф позволяет утверждать, что эта особенность сохранится, а другие особенности неустойчивы и разрушатся при вариациях мальтузианской и трофической функции, или же просто при возмущениях, действующих на систему. Другими словами, какими бы мы не выбрали мальтузианскую и трофическую функции (важно лишь, чтобы они были качественно похожими), поведение системы «хищник-жертва» качественно будет аналогичным описанному выше.

  1.  Список используемой литературы

1. Свирежнев Ю. М. «Нелинейные волны, диссипативные структуры и катастрофы в экологии» 1987г.

2. Свирежев Ю.М., Логофет Д.О. Устойчивость биологических сообществ (Наука, 1978)(ру)(Л).

3. Горяченко В. Д. Элементы теории колебаний. – Учебное пособие. Красноярск: Издательство Краснояр. 1995


 

А также другие работы, которые могут Вас заинтересовать

34279. Взаимное влияние аллельных генов 182.5 KB
  Этот вид взаимодействия генов заключается в том что при наличии двух доминантных аллелей разных генов появляется новый признак то есть для появления нового признака у организма должен быть генотип АВ. Если одна пара генов определяющих окраску будет рецессивной гомозиготой т. не будет синтезироваться нужный белок то даже если вторая пара генов будет нести доминантный аллель цветки окрашены не будут.
34281. Задачей медицинской генетики является выявление и профилактика наследственных заболеваний 60.16 KB
  При изучении генетики чаще всего используются такие методы: Генеалогический метод состоит в изучении родословных на основе менделевских законов наследования и пoмoгeт установить характер наследования признака доминантный или рецессивный. Этим методом выявлены вредные последствия близкородственных браков которые особенно проявляются при гомозиготности по одному и тому же неблагоприятному рецессивному аллелю. Близнецовый метод состоит в изучении различий между однояйцевыми близнецами. С помощью близнецового метода выявлена роль...
34282. Изменчивость 48.89 KB
  На основе изменчивости организмов появляется генетическое разнообразие форм которые в результате действия естественного отбора преобразуются в новые виды. Виды: Ненаследственная модификационная фенотипическая В результате изменение условий среды организм изменяется в пределах НОРМЫ РЕАКЦИИ это пределы рамки в которых возможно изменение признака у денного генотипа например норма реакции молочности у коров колеблется от 1000 до 2500 кг заданной генотипом. 2 Наследственная генотипическая а...
34283. Гипотезы происхождения эукариотических клеток 194 KB
  Согласно симбиотической гипотезе популярной в настоящее время корпускулярные органеллы эукариотической клетки имеющие собственный геном характеризуются независимым происхождением и ведут начало от прокариотических клетоксимбионтов. Первоначально объем информации и геномах клеткихозяина с одной стороны и симбионтов презумптивных митохондрий центриолей и хлоропластов с другой был повидимому сопоставим. В дальнейшем могла произойти утрата геномами симбионтов части генетических функций с перемещением блоков генов в геном...
34284. Медицинская экология. Предмет, содержание, задачи и методы. Появление нового типа заболеваний человека – экологически зависимых болезней 13.29 KB
  Появление нового типа заболеваний человека – экологически зависимых болезней. Медицинская экология пытается установить причину заболеваний в непосредственной связи с окружающей средой при этом учитывается большое разнообразие экологических факторов нозологических форм заболеваний и генетических особенностей человека. Появился новый тип заболеваний человека который можно назвать экологически обусловленными заболеваниями или как их иногда называют экологически зависимыми экологически связанными заболеваниями. Хронических...
34285. Мута́ция 22.01 KB
  Изменение числа генов: гаплоидия кратное уменьшение числа хромосом у потомства полиплоидия геном представлен 2 наборами хромосом различают аллополиплоидов имеются наборы хромосом полученные при гибридизации от разных видов и аутополиплоидов происходит увеличение числа наборов хромосом собственного генома кратное n. анеуплоидия гетероплоидия изменение числа хромосом не кратное гаплоидному набору 2. Изменение числа хромосом: моносомия отсутствие в хромосомном наборе диплоидного организма одной хромосомы полисомия...
34286. Общая периодизация и характеристика основных этапов постэмбрионального онтогенеза 56 KB
  Влияние генетических факторов условий и образа жизни на процесс старения. Влияние факторов Ряд наблюдений легли в основу достаточно распространенной точки зрения о наследуемости продолжительности жизни и следовательно наличии генетического контроля или даже особой генетической программы старения. Вопервых максимальная продолжительность жизни ведет себя как видовой признак.Описаны наследственные болезни с ранним проявлением признаков старости и одновременно резким сокращением продолжительности жизни.
34287. Онтогене́з 31 KB
  Постэмбриональное развитие Постэмбриональное развитие бывает прямым и непрямым. Прямое развитие развитие при котором появившийся организм идентичен по строению взрослому организму но имеет меньшие размеры и не обладает половой зрелостью. Дальнейшее развитие связано с увеличением размеров и приобретением половой зрелости.