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

Автор работы: Пользователь скрыл имя, 15 Декабря 2011 в 15:26, курсовая работа

Краткое описание

Целью данной курсовой работы является разработка программ на языках С, Pasсal и в среде Delphi для описания процессов развития динамики популяции. Данные процессы описываются моделью Ферхюльда, представляющей собой дифференциальное уравнение первого порядка. Решение данного уравнения будем искать с помощью метода Эйлера. В ходе курсового проектирования будет проведен обзор теоретических вопросов, разработан алгоритмы решения поставленной задачи.

Содержание работы

Введение 3
1 Аналитический обзор 4
1.1 Определение популяции 4
1.2 Модель Ферхюльста (рождаемость и смертность с учетом роста численности) 5
1.3. Решение дифференциальных уравнений 6
1.4 Метод Эйлера. 7
1.5 Улучшенный метод Эйлера 9
2Язык Pascal 11
3 Язык С 14
4Среда быстрой разработки Delphi 15
5 Алгоритм решения задачи 17
6 Тестирование программ 18
6.1. Тестирование на языке С 18
6.2 Тестирование на языке Pascal 19
6.3 Тестирование приложения в Delphi 19
7 Листинг программ на языке С 22
8 Листинг программ на языке Pascal 24
9 Листинг программы в Delphi 26
Выводы 30
Список использованной литературы 31

Содержимое работы - 1 файл

Записка.doc

— 660.50 Кб (Скачать файл)

Федеральное агентство по образованию Российской Федерации

___________________________________________________________

Санкт-Петербургский  Государственный Технологический  институт

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

Кафедра систем автоматизированного проектирования и управления

Направление подготовки  «Информатика и вычислительная техника» 
 
 
 
 

Курсовой  проект по дисциплине:

Программирование  на языках высокого уровня 
 
 
 
 

Пояснительная записка к курсовой работе 

Тема  работы:   
 

 Исполнитель

 студентка 885 гр.                    _____________________  Сергеева Е.В.

                         (подпись дата)

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

                            _____________________  И.В. Ананченко

               (подпись дата) 

              

                             

 

                                                   ______________________

                                (оценка) 
 
 
 
 
 
 
 

Санкт - Петербург

2009 год

Содержание 
 
 
 
 
 
 

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

           Целью данной курсовой работы  является разработка программ на языках С, Pasсal и в среде Delphi для описания процессов развития динамики популяции. Данные процессы описываются моделью Ферхюльда, представляющей собой дифференциальное уравнение первого порядка. Решение данного уравнения будем искать с помощью метода Эйлера. В ходе курсового проектирования будет проведен обзор теоретических вопросов, разработан алгоритмы решения поставленной задачи.

             
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

  • 1 Аналитический обзор
  • 1.1 Определение популяции
  •        Популяция - это совокупность особей одного вида, находящихся во взаимодействии между собой и совместно заселяющих общую территорию.

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

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

           Все живые организмы теоретически способны к очень быстрому увеличению численности. При неограниченных ресурсах и отсутствии гибели от болезней, хищников и т.п. даже при низкой исходной численности популяция любого вида за сравнительно короткий срок может так вырасти, что покроет весь земной шар сплошным слоем. Способность к увеличению численности за данный промежуток времени называют биотическим потенциалом вида. У разных видов биотический потенциал разный: у крупных млекопитающих численность может возрастать в год лишь в 1,05 - 1,1 раза, а у мелких насекомых (рачков, дафний) численность в год может возрасти в 1010-1030раз. А у бактерий и одноклеточных водорослей еще быстрее. Во всех этих случаях, при идеальных условиях численность будет расти в геометрической прогрессии и график изменения численности будет представлять собой экспоненту. Рост численности в геометрической прогрессии называется экспоненциальным ростом. В лабораторных условиях наблюдать экспоненциальный рост можно в популяциях дрожжей, водоросли хлореллы, бактерий на начальных стадиях роста. 
    В природе экспоненциальный рост наблюдается при вспышках саранчи, непарного шелкопряда и других насекомых. Экспоненциально может расти численность животных, заселенных в новую местность, где у них мало врагов и много пищи (классический пример - рост численности кроликов, завезенных в Австралию). Во всех этих случаях экспоненциальный рост наблюдается в течение коротких промежутков времени, после чего скорость роста численности снижается.

  • 1.2 Модель Ферхюльста (рождаемость  и смертность с  учетом роста численности) 
  •        Постановка  задачи.

           Как правило, численность популяции  зависит не только от рождаемости  и смертности, но и от ограниченности пищевых и других ресурсов. Вскоре за созданием модели Мальтуса, бельгийский математик Ферхюльст задался вопросом: будет ли население Бельгии расти неограниченно? Ответом на этот вопрос было создание новой модели динамики численности популяции при ограниченных ресурсах, описываемая следующим уравнением:

           dN/dt=r*N-m*N (1),

    где r - удельная скорость роста численности,

    N - численность популяции,

    m - число встреч членов популяции, при котором они могут конкурировать за какой-либо ресурс.

           Уравнение это отличается от уравнения экспоненциального роста (уравнения Мальтуса) выражением m*N2, которое как раз и отражает ограниченность ресурсов. Перепишем уравнение (1) так:

           dN/dt=N(r-m*N).(2)

           Выражение в скобках - это удельная скорость роста популяции. Причем чем больше численность популяции (N), тем меньше скорость роста. Если в правой части уравнения вынести за скобки выражение r

           dN/dt=N*r(1-N*m/r)

           и обозначить m/r за 1/K, то уравнение (1) можно  переписать так: 
    dN/dt=N*r(1-N/K) (3)

           При малых N значением N/K можно пренебречь, и тогда рост численности идет по экспоненциальному закону, при возрастании N и неизменном K рост численности будет замедляться, и при N близком к К рост остановится. 

           

           Рисунок 1 – Модель Ферхюльста

             Величину К называют емкостью среды. Она отражает возможности среды обитания предоставить популяции нужные для ее роста ресурсы.

           Уравнение (3) графически отображается в виде S- образной кривой. Эта кривая называется логистической кривой, а рост численности, соответствующий уравнению (3) - логистическим. Исследуя кривую, можно сказать, что максимальная скорость роста достигается, когда численность равна K/2. В некоторый момент численность стабилизируется и остается постоянной величиной. Популяции, существующие в условиях ограниченных ресурсов, часто хорошо подчиняются правилам логистического роста. Например, когда овцы были завезены в Тасманию, рост их стада описывался логистической кривой. Но правила логистического роста приложимы не ко всем случаям. Например, у размножающихся половым путем видов, при слишком малой численности мала вероятность встреч особей разного пола и размножение может вообще прекратиться. Для реализации модели в среде электронных таблиц уравнение (3) следует представить в дискретном виде:

           N(i+1)=N(i)*r*(1-N(i)/K) (4)

    где N(i) - численность популяции в i-й момент времени;

    r - удельная скорость роста популяции (рождаемость/смертность); 
    К - емкость среды.
     

                      A        B        C        D        E        F
      Коэффициент  
    рождаемости 
    14,5
    Коэффициент 
    смертности 
    10,2
    Начальная  
    численность 
    147000000
    Емкость среды 
    К (7350000000)
    Удельная скорость роста 
    =$A$1/$B$1
            
    22
    0
    =A2+1 
    1
    =B2+1 
    2
    =C2+1 
    3
    =D2+1 ...
    33 =c$1 
    1000
    =A3*$E$1*(1 - A3/$D$1)   Копировать  формулу из B3 ... ... ...
     

           Для этой модели нужно взять побольше временной диапазон ,т.к. она наглядна на длинном промежутке времени.

  • 1.3. Решение дифференциальных уравнений
  •        При решении научных и инженерно-технических  задач часто бывает необходимо математически  описать какую-либо динамическую систему. Лучше всего это делать в виде дифференциальных уравнений (ДУ) или  системы дифференциальных уравнений. Приведём примеры:

           1.Кинетика  химических реакций. 

           2.Явления  переноса. Наиболее часто такая  задача возникает при решении  проблем, связанных с моделированием  кинетики химических реакций  и различных явлений переноса (тепла, массы, импульса) – теплообмена, перемешивания, сушки, адсорбции, при описании движения макро- и микрочастиц.

           3.Динамика  популяций. Изменения численности  популяций хищников и их жертв  можно описать, например, двумя  несложными  дифференциальными уравнениями,  предполагая, что известна зависимость рождаемости и гибели отдельных видов животных от их количества.

           4.Распространение  «нового». Распространение эпидемий, слухов, опыта и мнений в определённых  условиях также можно описать  дифференциальными уравнениями.  Для эпидемий следует учитывать также различия  между «здоровыми», «инфицированными», «резистентными», и «изолированными» популяциями. Кинетические закономерности для каждой из этих популяций в соответствии с выбранной моделью могут различаться.

           При решении дифференциальных уравнений могут встретиться 3 типа задач:

             1. Дифференциальные уравнения с заданными начальными условиями, т.е необходимо найти такое частное решение дифференциального уравнения, которое удовлетворяет определенным начальными условиям, заданным в одной точке:  
     

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

             2. Краевая задача. (в этом случае известны значение функции или её производных в определённых точках, и необходимо найти  решение между этими точками.) Сами дополнительные условия в этом случае называются краевыми (граничными) условиями. Краевая задача может решаться для ДУ не ниже 2-го порядка. Ниже приведен пример ДУ второго порядка с граничными условиями-заданы значения функции в двух различных точках:   

             

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

           Рассмотрим  два метода, которые позволяют решать дифференциальные уравнения: метод Эйлера и улучшенный метод Эйлера. 

  •             1.4 Метод Эйлера.
  •        Исторически первым и наиболее простым способом численного решения задачи Коши для  ДУ первого порядка является метод  Эйлера.  В его основе лежит аппроксимация производной отношением конечных приращений зависимой (y) и независимой (x) переменных между узлами равномерной сетки.

    Информация о работе Технолгия разработки програмных продуктов