99042

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

Курсовая

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

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

Русский

2016-07-29

2.43 MB

13 чел.

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

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

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

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

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

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

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

   

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

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

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

студентка 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


 

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

7793. Педагогическая деятельность и теория Яна Амоса Коменского 36 KB
  Педагогическая деятельность и теория Яна Амоса Коменского О роли воспитания, его целях и задачах Взгляды Коменского на ребенка, его развитие и воспитание коренным образом отличались от средневековых представлений. Вслед за гуманистами эпохи Возрожде...
7794. Педагогическая мысль и школа в период Французской буржуазной революции XVIII века 43 KB
  Педагогическая мысль и школа в период Французской буржуазной революции XVIII века В 70-х годах XVIII века во Франции создалась революционная ситуация. В недрах феодального общества выросли и созрели формы нового, капиталистического уклада. О...
7795. Педагогическая мысль эпохи Возрождения 37.5 KB
  Педагогическая мысль эпохи Возрождения Наиболее ярко педагогическая мысль эпохи Возрождения представлена трудами итальянских, немецких и французских ученых-гуманистов. Среди итальянских гуманистов эпохи Возрождения особенно выделяется Витторино да Ф...
7796. Педагогическое сознание Гербарта (цели, средства) 43 KB
  Педагогическое сознание Гербарта (цели, средства) Педагогическое сознание Гербарта впитало и переработало многие передовые идеи той эпохи французских мыслителей 18 века, немецкой классической философии, филантропистов, Песталоцци, что и позволило ем...
7797. Послереформенные изменения в России (вторая половина 19 века) 27.5 KB
  Послереформенные изменения в России (вторая половина 19 века) Новые условия хозяйственной и общественной жизни пореформенной России настоятельно требовали подготовлённых и грамотных людей. Необходимо было значительно расширить базу народного образов...
7798. Просвещение абсолютизма 41 KB
  Просвещение абсолютизма Просвещённый абсолютизм - политика, проводимая во второй половине XVIII века рядом монархических стран Европы и направленная на устранение остатков средневекового строя в пользу капиталистических отношений. Основы просве...
7799. Развитие системы образования в России в начале 20 века 32 KB
  Развитие системы образования в России в начале 20 века Основным типом школы в России к началу ХХ века, как и раньше, была начальная школа, отличавшаяся пестротой не только по ведомственной принадлежности, но и по срокам и содержанию обучения. Самыми...
7800. Реформы Петра 1 29.5 KB
  Реформы Петра 1. Преобразования в сфере культуры Пётр I изменил начало летосчисления с так называемой византийской эры (от сотворения Адама) на от Рождества Христова. 7208 год по византийской эре стал 1700 годом от Рождества Христова. Однако...
7801. Советская школа в годы ВОВ и послевоенные годы(1941-58гг.) 25 KB
  Советская школа в годы ВОВ и послевоенные годы(1941-58гг.). Война затормозила осуществление всеобщего обязательного семилетнего обучения. Развертыванию всеобщего обучения препятствовали перемещения населения из западных районов в восточные, уход учи...