Файл: Лабораторная работа 1 Построение компьютерной модели.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.10.2023
Просмотров: 193
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
c:=0.55; S1:=pi*r1*r1; // при раскрытии парашюта меняются k1:=6*pi*mu*r1; // форма тела, его радиус,
площадь k2:=0.5*S1*c*ro; // и коэффициенты силы сопротивления
//
цикл построения графика с момента раскрытия парашюта до приземления repeat h:=h-v*dt;v:=v+(m*g-k1+v-k2*v*v)/m*dt; t:=t+dt ;
X:=trunc(t*Mx)+X0;y:=trunc(-v*My)+Y0;
LineTo(x,y); until h<0 ; end; end;
На рис.4 результат – график изменения скорости парашютиста для исходных данных, введенных на первой форме (рис.3)
Рис 3. Ввод исходных данных на первой форме
23
Рис 4. График зависимости скорости от времени на второй форме
Задание к лабораторной работе
1. Построить графическую модель движения тела согласно варианту лабораторной работы №2.
2. Определить значения исследуемых параметров модели.
Варианты заданий
Варианты 1-6. Зависимость скорости движущегося тела от времени
Варианты 7-12. Траектория движения тела
24
Лабораторная работа №4
Имитация движения в среде Lazarus.
Краткие теоретические сведения
Имитация движения в среде Lazarus.
Движение некоторого объекта
(геометрической фигуры ) в приложении на Lazarus, реализуется по следующему алгоритму:
1. Объект рисуется так, чтобы он был невидим (цветом фона)
2. Изменяются координаты объекта
3. Объект рисуется видимым цветом в новом месте
4. По истечении некоторого времени процесс повторяется
Интерфейс и функциональность приложения. Для реализации 1-3 пунктов алгоритма необходимы свойство Canvas (канва) формы или компонента Image, а также методы канвы, позволяющие установить цвет пера и кисти и прорисовку объекта.
Для выдерживания паузы между изображениями объекта на старом и новом месте служит компонент Timer (страница System палитры компонентов). Основные свойства таймера:
-
Enabled (true- включен, false- выключен);
-
Interval (промежуток времени между срабатываниями таймера, измеряется в миллисекундах).
Как правило, при проектировании приложения таймер следует выключить, а включить программно при наступлении какого-либо события, например, щелчка на кнопке «Начать движение».
Для движения объекта по горизонтали вправо через каждый интервал срабатывания таймера координата x увеличивается на некоторый шаг, координата y не меняется. Если движение происходит по вертикали- наоборот, меняется только y. Если надо двигать объект по некоторой сложной траектории, следует x изменять на шаг, а y вычислять как функцию от x.
25
Итак, для программирования движения необходимо выполнить следующие действия:
1. Разместить на форме компонент Timer. Установить его свойство
Enabled в значение False. Задать интервал срабатывания таймера, например, 500 (пол-секунды). Поместить на форму кнопку «Начать движение».
2. Задать начальные установки, например, в обработчике события
«прорисовка формы». Этими установками могут быть: начальные координаты объекта, шаг изменения координаты, интервал таймера и др.
3. Написать процедуру risovanie, которая реализует вышеописанный алгоритм движения объекта
4. Описать реакцию на событие «Щелчок на кнопке». Единственное, что происходит при наступлении этого события- это включение таймера.
5. Описать реакцию на событие «срабатывание таймера» (Timer1Timer).
Обработчик этого события вызывает процедуру risovanie.
Вид формы при проектировании
Вид работающего приложения
(окружность движется вправо)
Пример выполнения задания
Задача. Имитировать движение планеты вокруг Солнца. Определить вид орбиты и период обращения планеты.
Запишем обезразмеренные уравнения, описывающие движение
«малого» тела вокруг неподвижного «большого». В качестве характерных величин примем расстояние от Земли до Солнца ρ = 1,496∙10 11
м, (так
26 называемая, астрономическая единица), период круговой орбиты T,
соответствующий этому расстоянию, скорость движения по ней . Примем
T
t
v
v
V
v
v
V
y
Y
x
X
y
y
x
x
,
,
,
,
Соответствующие уравнения имеют вид:
)
(
2
)
(
2
,
2 2
3 2
2
,
3 2
2
,
Y
X
Y
d
dV
Y
X
X
d
dV
V
d
dY
V
d
dX
y
x
y
x
Интерфейс приложения: на первой форме вводятся исходные данные
Функциональность приложения:
//процедура, реализующая один цикл движения объекта procedure risovanie; begin with Form2.Canvas do begin
Pen.Color:=clRed
;// красный «след» ellipse(XS,YS,XS+5,YS+5);
//
пересчет координат
X:=X+2*pi*Vx*dt;
Y:=Y+2*pi*Vy*dt;
Vx:=Vx-2*pi*X*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y));
27
Vy:=Vy-2*pi*Y*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y)); t:=t+dt;
XS:=trunc(X*Mx)+X0;
YS:=trunc(-Y*My)+Y0;
Pen.Color:=clBlack;//
черная «планета» ellipse(XS,YS,XS+5,YS+5); if (abs(X-1)<=0.01) and (abs(Y)<=0.09) and (t>dt) then begin //
при возвращении в исходную точку таймер выключается
Form2.Timer1.Enabled:=false;
Form2.Canvas.Pen.Color:=clBlack;
// выводится значение периода
Form3.Canvas.textout(Hor+5,Ver+5,'T='+floattostrf(t,ffge neral,4,1)); end; end; end;
//при прорисовке второй формы на ней строится система координат procedure TForm2.FormPaint(Sender: TObject); begin
Hor:=10;Ver:=10; x0:=Form2.Width div 2; y0:=Form2.Height div 2;
Mx:=Form2.Width div 3;
My:=Form2.Height div 3; t:=0; with Canvas do begin
Pen.Color:=clBlack;
Pen.Width:=2;
MoveTo(Hor,Y0);LineTo(Form2.Width-Hor,Y0);
MoveTo(X0,Ver);LineTo(X0,Form2.Height-Ver);
TextOut(Form2.Width-Hor,Y0+2,'X');
TextOut(X0-7,Ver,'Y'); end;
28 end;
//при щелчке на кнопке «Начать движение» включается таймер procedure TForm2.Button2Click(Sender: TObject); begin
Timer1.Enabled:=true; end;
//при каждом срабатывании таймера вызывается процедура risovanie procedure TForm2.Timer1Timer(Sender: TObject); begin risovanie; end;
Результат : на второй форме – траектория движения «планеты» и значение периода (в земных годах)
Задание к лабораторной работе
4. В среде Lazarus имитировать движение тела согласно варианту лабораторной работы №2.
5. Исследовать зависимость характера движения от параметров модели.
6. Создать текстовый отчет по лабораторным работам №2-4, включающий:
постановку задачи и описание модели;
результаты тестирования программы;
29
результаты, полученные в ходе выполнения заданий (в различных формах);
качественный анализ результатов.
30
Лабораторная работа №5
Компьютерное моделирование в экологии
Краткие теоретические сведения
В данной работе рассматриваются лишь модели классической экологии
(взаимодействие популяций).
Популяция совокупность особей одного вида, существующих в одно и то же время и занимающих определенную территорию.
Взаимодействие особей внутри популяции определяется внутривидовой конкуренцией, взаимодействие между популяциями межвидовой конкуренцией.
Внутривидовая
конкуренция
в
популяции
с
дискретным
размножением. Для популяций с дискретным размножением (некоторые виды растений, насекомых и т.д.) поколения четко разнесены во времени и особи разных поколений не сосуществуют. Численность такой популяции можно характеризовать числом N
t и считать t величиной дискретной номером популяции.
Одна из моделей межвидовой конкуренции в этом случае выражается уравнением
N
N R
a N
t
t
t
b
1 1 (
)
(1)
Здесь R
скорость воспроизводства популяции в отсутствии внутривидовой конкуренции (математически это соответствует случаю a = 0).
Тогда уравнение определяет просто изменение численности популяции по закону геометрической прогрессии:
N
N R
t
t
0
, где N
0
начальная численность популяции.
Знаменатель в уравнении (1) отражает наличие конкуренции, делающей скорость роста тем меньше, чем больше численность популяции; a и b параметры модели.
Исходные параметры модели:
R скорость воспроизводства;
N
0
начальная численность популяции;
31
a
параметр, характеризующий интенсивность внутривидовой конкуренции.
Характерная черта эволюции при b=1 выход численности популяции на стационарное значение при любых значениях других параметров. Однако, в природе так бывает не всегда, и более общая модель при b
1 отражает другие, более сложные, но реально существующие, виды эволюции. Данная модель позволяет получить четыре таких вида:
1) монотонное установление стационарной численности популяции;
2) затухающие колебания и установление стационарной численности популяции;
3) устойчивые предельные циклы изменения численности популяции;
4) случайные изменения численности популяции без наличия явных закономерностей (динамический хаос).
Внутривидовая конкуренция в популяции с непрерывным
размножением. Математическая модель в данном случае строится на основе дифференциальных уравнений. Наиболее известна так называемая логистическая модель:
dN
dt
r N
K
N
K
(2)
Исходные параметры модели:
r
скорость роста численности популяции в отсутствие конкуренции;
K
предельное значение численности популяции, при котором скорость роста становится равной нулю;
N
0
начальная численность популяции.
Межвидовая конкуренция. В этом случае исследуется конкуренция популяций, потребляющих общий ресурс. Пусть N
1 и N
2
численности конкурирующих популяций. Модель (называемая также моделью Лотки-
Вольтерры) выражается уравнениями
32
)
(
)
(
1 1
2 2
2 2
2 2
2 1
1 1
1 1
N
N
r
N
dt
dN
N
N
r
N
dt
dN
(3)
Содержательный смысл параметров: r
1 и r
2
– скорости роста численности первой и второй популяций соответственно в отсутствие конкуренции; β
1
и β
2
– коэффициенты, учитывающие внутривидовую конкуренцию;
1
и
2 отражают интенсивность межвидовой конкуренции.
Главный вопрос, который интересует исследователя межвидовой конкуренции при каких условиях увеличивается или уменьшается численность каждого вида? Данная модель предсказывает следующие режимы эволюции взаимодействующих популяций: устойчивое сосуществование или полное вытеснение одной из них.
Система «хищник-жертва». В этой системе ситуация значительно отличается от предыдущей. В частности, если в случае конкурирующих популяций исчезновение одной означает выигрыш для другой
(дополнительные ресурсы), то исчезновение «жертвы» влечет за собой и исчезновение «хищника», для которого в простейшей модели «жертва» является единственным кормом.
Обозначим через С численность популяции хищника и через N популяции жертвы. Одна из известных моделей выражается следующими уравнениями:
(4)
В первое уравнение заложен следующий смысл. В отсутствии хищников
(т.е. при С=0) численность жертв растет экспоненциально со скоростью α, т.к. модель не учитывает внутривидовой конкуренции. Число жертв уменьшается тем больше, чем чаще происходят встречи представителей видов; γ
коэффициент эффективности поиска.
Второе уравнение говорит о следующем. В отсутствии жертв численность хищников экспоненциально убывает со скоростью β; положительное
33 слагаемое в правой части уравнения компенсирует эту убыль; δ коэффициент эффективности перехода пищи в потомство хищников.
Пример выполнения задания
Задача. Реализовать моделирование межвидовой конкуренции при фиксированных значениях начальной численности популяций
N N
1 0
2 0
,
Проанализировать зависимость судьбы популяций от соотношения значений параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
.Выяснить, при каких условиях обе популяции выживают.
В качестве математической модели межвидовой конкуренции примем формулы (3). Исследуем модель путем нахождения особых точек на фазовой плоскости (N
1
ON
2
) ([6]). Как известно, судьбы популяций зависят от соотношения параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
,
а именно, обе популяции выживают, если на фазовой плоскости существует особая точка- устойчивый узел- c координатами
2 1
2 1
1 2
1 1
2 2
1 2
1 2
1 2
2 1
r
r
N
r
r
N
При этом выполняются следующие соотношения:
. Выберем значения параметров r
1
, r
2
,
α
1
, α
2
произвольно (имея в виду, что r
1
, r
2
– это числа, означающие скорость роста популяции в отсутствие конкуренции и должны иметь значения, большие единицы, а α
1
, α
2
характеризуют конкуренцию, т.е. вероятность гибели особи при встрече с другой особью и должны быть меньше единицы), а параметры β
1
, β
2 получим из соотношений
. Начальные значения численности популяций
N N
1 0
2 0
,
возьмем, например, больше, чем координаты особой точки. Для построения таблицы значений N
1
и N
2
воспользуемся методом Эйлера решения дифференциальных уравнений (3).
Из таблицы и диаграммы видно, что численности популяций уменьшаются, стремятся к особой точке и обе популяции выживают (Рис.1).
34
Рис.1 При заданных значения входных параметров обе популяции выживают
Задание к лабораторной работе
1. Выписать математическую модель, определить состав набора входных параметров и их конкретные числовые значения.
2. Спроектировать таблицу для представления результатов моделирования, предусмотрев в ней области ввода исходных данных, параметров модели и вывода результатов.
3. Выбрать метод интегрирования дифференциальных уравнений модели, разработать самостоятельно табличный алгоритм интегрирования с заданной точностью.
4. Произвести отладку и тестирование алгоритма в среде табличного процессора.
5. Выполнить конкретное задание из своего варианта работы.
6. Качественно проанализировать результаты моделирования.
7. Создать текстовый отчет по лабораторной работе, включающий:
постановку задачи и описание модели;
результаты тестирования программы;
результаты, полученные в ходе выполнения задания (в различных формах);
35
качественный анализ результатов.
Варианты заданий.
Вариант 1.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров b, R, N
0
в зависимости от значения параметра а. Подобрать значения а, дающие качественные различия в характере эволюции.
Вариант 2.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров a, R, N
0 в зависимости от значения параметра b в диапазоне. Подобрать значения b , дающие качественные различия в характере эволюции.
Вариант 3.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров a, b, N
0 в зависимости от значения параметра R . Подобрать значения R , дающие качественные различия в характере эволюции.
Вариант 4.
Для модели (1) найти сочетания значений параметров b и R, дающих режимы монотонного и колебательного установления стационарной численности популяции изучаемой системы. Прочие параметры модели фиксированы.
Вариант 5.
Для модели (1) сочетания значений параметров b и R, дающих режим колебательного установления стационарной численности популяции изучаемой системы и режим устойчивых предельных циклов. Прочие параметры модели фиксированы.
Вариант 6.
Реализовать моделирование межвидовой конкуренции по формулам (3) при фиксированных значениях параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
. Проанализировать
36 зависимость судьбы популяций от соотношения значений их начальной численности
N N
1 0
2 0
,
Вариант 7.
Реализовать моделирование межвидовой конкуренции по формулам (3) при значениях параметров r
1
, r
2
, β
1
, β
2
,
,
0 2
0 1
N
N
. Проанализировать зависимость судьбы популяций от соотношения значений коэффициентов конкуренции
1
и
2
Вариант 8.
Подобрать значения
N
N
1 0
2 0
( )
( )
,
обеспечивающие какие-либо два режима эволюции конкурирующих популяций (в соответствии с моделью (3)).
Остальные параметры модели выбрать произвольно.
0>
1 2 3
23
Рис 4. График зависимости скорости от времени на второй форме
Задание к лабораторной работе
1. Построить графическую модель движения тела согласно варианту лабораторной работы №2.
2. Определить значения исследуемых параметров модели.
Варианты заданий
Варианты 1-6. Зависимость скорости движущегося тела от времени
Варианты 7-12. Траектория движения тела
24
Лабораторная работа №4
Имитация движения в среде Lazarus.
Краткие теоретические сведения
Имитация движения в среде Lazarus.
Движение некоторого объекта
(геометрической фигуры ) в приложении на Lazarus, реализуется по следующему алгоритму:
1. Объект рисуется так, чтобы он был невидим (цветом фона)
2. Изменяются координаты объекта
3. Объект рисуется видимым цветом в новом месте
4. По истечении некоторого времени процесс повторяется
Интерфейс и функциональность приложения. Для реализации 1-3 пунктов алгоритма необходимы свойство Canvas (канва) формы или компонента Image, а также методы канвы, позволяющие установить цвет пера и кисти и прорисовку объекта.
Для выдерживания паузы между изображениями объекта на старом и новом месте служит компонент Timer (страница System палитры компонентов). Основные свойства таймера:
-
Enabled (true- включен, false- выключен);
-
Interval (промежуток времени между срабатываниями таймера, измеряется в миллисекундах).
Как правило, при проектировании приложения таймер следует выключить, а включить программно при наступлении какого-либо события, например, щелчка на кнопке «Начать движение».
Для движения объекта по горизонтали вправо через каждый интервал срабатывания таймера координата x увеличивается на некоторый шаг, координата y не меняется. Если движение происходит по вертикали- наоборот, меняется только y. Если надо двигать объект по некоторой сложной траектории, следует x изменять на шаг, а y вычислять как функцию от x.
25
Итак, для программирования движения необходимо выполнить следующие действия:
1. Разместить на форме компонент Timer. Установить его свойство
Enabled в значение False. Задать интервал срабатывания таймера, например, 500 (пол-секунды). Поместить на форму кнопку «Начать движение».
2. Задать начальные установки, например, в обработчике события
«прорисовка формы». Этими установками могут быть: начальные координаты объекта, шаг изменения координаты, интервал таймера и др.
3. Написать процедуру risovanie, которая реализует вышеописанный алгоритм движения объекта
4. Описать реакцию на событие «Щелчок на кнопке». Единственное, что происходит при наступлении этого события- это включение таймера.
5. Описать реакцию на событие «срабатывание таймера» (Timer1Timer).
Обработчик этого события вызывает процедуру risovanie.
Вид формы при проектировании
Вид работающего приложения
(окружность движется вправо)
Пример выполнения задания
Задача. Имитировать движение планеты вокруг Солнца. Определить вид орбиты и период обращения планеты.
Запишем обезразмеренные уравнения, описывающие движение
«малого» тела вокруг неподвижного «большого». В качестве характерных величин примем расстояние от Земли до Солнца ρ = 1,496∙10 11
м, (так
26 называемая, астрономическая единица), период круговой орбиты T,
соответствующий этому расстоянию, скорость движения по ней . Примем
T
t
v
v
V
v
v
V
y
Y
x
X
y
y
x
x
,
,
,
,
Соответствующие уравнения имеют вид:
)
(
2
)
(
2
,
2 2
3 2
2
,
3 2
2
,
Y
X
Y
d
dV
Y
X
X
d
dV
V
d
dY
V
d
dX
y
x
y
x
Интерфейс приложения: на первой форме вводятся исходные данные
Функциональность приложения:
//процедура, реализующая один цикл движения объекта procedure risovanie; begin with Form2.Canvas do begin
Pen.Color:=clRed
;// красный «след» ellipse(XS,YS,XS+5,YS+5);
//
пересчет координат
X:=X+2*pi*Vx*dt;
Y:=Y+2*pi*Vy*dt;
Vx:=Vx-2*pi*X*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y));
27
Vy:=Vy-2*pi*Y*dt/sqrt((X*X+Y*Y)*(X*X+Y*Y)*(X*X+Y*Y)); t:=t+dt;
XS:=trunc(X*Mx)+X0;
YS:=trunc(-Y*My)+Y0;
Pen.Color:=clBlack;//
черная «планета» ellipse(XS,YS,XS+5,YS+5); if (abs(X-1)<=0.01) and (abs(Y)<=0.09) and (t>dt) then begin //
при возвращении в исходную точку таймер выключается
Form2.Timer1.Enabled:=false;
Form2.Canvas.Pen.Color:=clBlack;
// выводится значение периода
Form3.Canvas.textout(Hor+5,Ver+5,'T='+floattostrf(t,ffge neral,4,1)); end; end; end;
//при прорисовке второй формы на ней строится система координат procedure TForm2.FormPaint(Sender: TObject); begin
Hor:=10;Ver:=10; x0:=Form2.Width div 2; y0:=Form2.Height div 2;
Mx:=Form2.Width div 3;
My:=Form2.Height div 3; t:=0; with Canvas do begin
Pen.Color:=clBlack;
Pen.Width:=2;
MoveTo(Hor,Y0);LineTo(Form2.Width-Hor,Y0);
MoveTo(X0,Ver);LineTo(X0,Form2.Height-Ver);
TextOut(Form2.Width-Hor,Y0+2,'X');
TextOut(X0-7,Ver,'Y'); end;
28 end;
//при щелчке на кнопке «Начать движение» включается таймер procedure TForm2.Button2Click(Sender: TObject); begin
Timer1.Enabled:=true; end;
//при каждом срабатывании таймера вызывается процедура risovanie procedure TForm2.Timer1Timer(Sender: TObject); begin risovanie; end;
Результат : на второй форме – траектория движения «планеты» и значение периода (в земных годах)
Задание к лабораторной работе
4. В среде Lazarus имитировать движение тела согласно варианту лабораторной работы №2.
5. Исследовать зависимость характера движения от параметров модели.
6. Создать текстовый отчет по лабораторным работам №2-4, включающий:
постановку задачи и описание модели;
результаты тестирования программы;
29
результаты, полученные в ходе выполнения заданий (в различных формах);
качественный анализ результатов.
30
Лабораторная работа №5
Компьютерное моделирование в экологии
Краткие теоретические сведения
В данной работе рассматриваются лишь модели классической экологии
(взаимодействие популяций).
Популяция совокупность особей одного вида, существующих в одно и то же время и занимающих определенную территорию.
Взаимодействие особей внутри популяции определяется внутривидовой конкуренцией, взаимодействие между популяциями межвидовой конкуренцией.
Внутривидовая
конкуренция
в
популяции
с
дискретным
размножением. Для популяций с дискретным размножением (некоторые виды растений, насекомых и т.д.) поколения четко разнесены во времени и особи разных поколений не сосуществуют. Численность такой популяции можно характеризовать числом N
t и считать t величиной дискретной номером популяции.
Одна из моделей межвидовой конкуренции в этом случае выражается уравнением
N
N R
a N
t
t
t
b
1 1 (
)
(1)
Здесь R
скорость воспроизводства популяции в отсутствии внутривидовой конкуренции (математически это соответствует случаю a = 0).
Тогда уравнение определяет просто изменение численности популяции по закону геометрической прогрессии:
N
N R
t
t
0
, где N
0
начальная численность популяции.
Знаменатель в уравнении (1) отражает наличие конкуренции, делающей скорость роста тем меньше, чем больше численность популяции; a и b параметры модели.
Исходные параметры модели:
R скорость воспроизводства;
N
0
начальная численность популяции;
31
a
параметр, характеризующий интенсивность внутривидовой конкуренции.
Характерная черта эволюции при b=1 выход численности популяции на стационарное значение при любых значениях других параметров. Однако, в природе так бывает не всегда, и более общая модель при b
1 отражает другие, более сложные, но реально существующие, виды эволюции. Данная модель позволяет получить четыре таких вида:
1) монотонное установление стационарной численности популяции;
2) затухающие колебания и установление стационарной численности популяции;
3) устойчивые предельные циклы изменения численности популяции;
4) случайные изменения численности популяции без наличия явных закономерностей (динамический хаос).
Внутривидовая конкуренция в популяции с непрерывным
размножением. Математическая модель в данном случае строится на основе дифференциальных уравнений. Наиболее известна так называемая логистическая модель:
dN
dt
r N
K
N
K
(2)
Исходные параметры модели:
r
скорость роста численности популяции в отсутствие конкуренции;
K
предельное значение численности популяции, при котором скорость роста становится равной нулю;
N
0
начальная численность популяции.
Межвидовая конкуренция. В этом случае исследуется конкуренция популяций, потребляющих общий ресурс. Пусть N
1 и N
2
численности конкурирующих популяций. Модель (называемая также моделью Лотки-
Вольтерры) выражается уравнениями
32
)
(
)
(
1 1
2 2
2 2
2 2
2 1
1 1
1 1
N
N
r
N
dt
dN
N
N
r
N
dt
dN
(3)
Содержательный смысл параметров: r
1 и r
2
– скорости роста численности первой и второй популяций соответственно в отсутствие конкуренции; β
1
и β
2
– коэффициенты, учитывающие внутривидовую конкуренцию;
1
и
2 отражают интенсивность межвидовой конкуренции.
Главный вопрос, который интересует исследователя межвидовой конкуренции при каких условиях увеличивается или уменьшается численность каждого вида? Данная модель предсказывает следующие режимы эволюции взаимодействующих популяций: устойчивое сосуществование или полное вытеснение одной из них.
Система «хищник-жертва». В этой системе ситуация значительно отличается от предыдущей. В частности, если в случае конкурирующих популяций исчезновение одной означает выигрыш для другой
(дополнительные ресурсы), то исчезновение «жертвы» влечет за собой и исчезновение «хищника», для которого в простейшей модели «жертва» является единственным кормом.
Обозначим через С численность популяции хищника и через N популяции жертвы. Одна из известных моделей выражается следующими уравнениями:
(4)
В первое уравнение заложен следующий смысл. В отсутствии хищников
(т.е. при С=0) численность жертв растет экспоненциально со скоростью α, т.к. модель не учитывает внутривидовой конкуренции. Число жертв уменьшается тем больше, чем чаще происходят встречи представителей видов; γ
коэффициент эффективности поиска.
Второе уравнение говорит о следующем. В отсутствии жертв численность хищников экспоненциально убывает со скоростью β; положительное
33 слагаемое в правой части уравнения компенсирует эту убыль; δ коэффициент эффективности перехода пищи в потомство хищников.
Пример выполнения задания
Задача. Реализовать моделирование межвидовой конкуренции при фиксированных значениях начальной численности популяций
N N
1 0
2 0
,
Проанализировать зависимость судьбы популяций от соотношения значений параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
.Выяснить, при каких условиях обе популяции выживают.
В качестве математической модели межвидовой конкуренции примем формулы (3). Исследуем модель путем нахождения особых точек на фазовой плоскости (N
1
ON
2
) ([6]). Как известно, судьбы популяций зависят от соотношения параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
,
а именно, обе популяции выживают, если на фазовой плоскости существует особая точка- устойчивый узел- c координатами
2 1
2 1
1 2
1 1
2 2
1 2
1 2
1 2
2 1
r
r
N
r
r
N
При этом выполняются следующие соотношения:
. Выберем значения параметров r
1
, r
2
,
α
1
, α
2
произвольно (имея в виду, что r
1
, r
2
– это числа, означающие скорость роста популяции в отсутствие конкуренции и должны иметь значения, большие единицы, а α
1
, α
2
характеризуют конкуренцию, т.е. вероятность гибели особи при встрече с другой особью и должны быть меньше единицы), а параметры β
1
, β
2 получим из соотношений
. Начальные значения численности популяций
N N
1 0
2 0
,
возьмем, например, больше, чем координаты особой точки. Для построения таблицы значений N
1
и N
2
воспользуемся методом Эйлера решения дифференциальных уравнений (3).
Из таблицы и диаграммы видно, что численности популяций уменьшаются, стремятся к особой точке и обе популяции выживают (Рис.1).
34
Рис.1 При заданных значения входных параметров обе популяции выживают
Задание к лабораторной работе
1. Выписать математическую модель, определить состав набора входных параметров и их конкретные числовые значения.
2. Спроектировать таблицу для представления результатов моделирования, предусмотрев в ней области ввода исходных данных, параметров модели и вывода результатов.
3. Выбрать метод интегрирования дифференциальных уравнений модели, разработать самостоятельно табличный алгоритм интегрирования с заданной точностью.
4. Произвести отладку и тестирование алгоритма в среде табличного процессора.
5. Выполнить конкретное задание из своего варианта работы.
6. Качественно проанализировать результаты моделирования.
7. Создать текстовый отчет по лабораторной работе, включающий:
постановку задачи и описание модели;
результаты тестирования программы;
результаты, полученные в ходе выполнения задания (в различных формах);
35
качественный анализ результатов.
Варианты заданий.
Вариант 1.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров b, R, N
0
в зависимости от значения параметра а. Подобрать значения а, дающие качественные различия в характере эволюции.
Вариант 2.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров a, R, N
0 в зависимости от значения параметра b в диапазоне. Подобрать значения b , дающие качественные различия в характере эволюции.
Вариант 3.
Изучить характер эволюции популяции, описываемый моделью (1), при фиксированных значениях параметров a, b, N
0 в зависимости от значения параметра R . Подобрать значения R , дающие качественные различия в характере эволюции.
Вариант 4.
Для модели (1) найти сочетания значений параметров b и R, дающих режимы монотонного и колебательного установления стационарной численности популяции изучаемой системы. Прочие параметры модели фиксированы.
Вариант 5.
Для модели (1) сочетания значений параметров b и R, дающих режим колебательного установления стационарной численности популяции изучаемой системы и режим устойчивых предельных циклов. Прочие параметры модели фиксированы.
Вариант 6.
Реализовать моделирование межвидовой конкуренции по формулам (3) при фиксированных значениях параметров r
1
, r
2
, β
1
, β
2
, α
1
, α
2
. Проанализировать
36 зависимость судьбы популяций от соотношения значений их начальной численности
N N
1 0
2 0
,
Вариант 7.
Реализовать моделирование межвидовой конкуренции по формулам (3) при значениях параметров r
1
, r
2
, β
1
, β
2
,
,
0 2
0 1
N
N
. Проанализировать зависимость судьбы популяций от соотношения значений коэффициентов конкуренции
1
и
2
Вариант 8.
Подобрать значения
N
N
1 0
2 0
( )
( )
,
обеспечивающие какие-либо два режима эволюции конкурирующих популяций (в соответствии с моделью (3)).
Остальные параметры модели выбрать произвольно.
0>
1 2 3
Вариант 9.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α, β,
γ, δ. Проанализировать зависимость исхода эволюции от соотношения значений параметров N
0 и C
0
Вариант 10.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α, β,
γ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра δ.
Вариант 11.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α,
β, δ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра γ .
Вариант 12.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров β, γ,
δ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра α.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α, β,
γ, δ. Проанализировать зависимость исхода эволюции от соотношения значений параметров N
0 и C
0
Вариант 10.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α, β,
γ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра δ.
Вариант 11.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров α,
β, δ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра γ .
Вариант 12.
Провести моделирование динамики численности популяций в системе
«хищник-жертва» (модель (4)) при фиксированных значенияхпараметров β, γ,
δ, N
0
, C
0
. Проанализировать зависимость результатов моделирования от значения параметра α.
37
Лабораторная работа №6
Компьютерное моделирование случайных процессов.
Краткие теоретические сведения.
Стохастические математические модели. Математическая модель – это связь между исходными данными и результатами, выраженная в математическими формулами, уравнениями и т.п.
Символически математическая модель может быть записана так:
Y=F(x
1
,x
2
,…,x n
)
Если все x j
, входящие в правую часть, т.е. все исходные данные модели являются однозначно определенными, то модель называется
детерминированной, если среди них есть случайные величины, то –
стохастической. При этом меняются цели построения моделей. Вместо вопросов типа «Чему равно значение выходного параметра» задают вопросы типа «С какой вероятностью выходной параметр принимает то или иное значение?», «Каково математическое ожидание данного параметра?» и т.п.
Проводя численный эксперимент, выполняют очень большое число испытаний и статистическую обработку их результатов. Напрмер, можно не вычислять численность популяций, а изо дня в день, из года в год вести наблюдение за этой численностью и проведя их статистическую обработку, получить некоторый аналитический вид зависимости.
Генерирование случайных чисел на компьютере. При компьютерном математическом моделировани случайных процессов нельзя обойтись без наборов случайных чисел, удовлетворяющих заданному закону распределения. Стандартная функция random() языка Pascal генерирует дробные случайные числа, равномерно распределенные на отрезке (0,1) .Это значит, что если разбить отрезок (0,1) на несколько равных промежутков, то вероятность попадания случайного числа в один из промежутков примерно одинаковая. Функция random(N) дает также равномерно распределенные целые случайные числа от 0 до N-1 включительно. Аналогичные результаты можно получить в табличном процессоре Excel с помощью функций СЛЧИС()
38 и СЛУЧМЕЖДУ(A,B) соответственно. Однако равномерное распределение не всегда хорошо отражает реальность. Если игральная кость может упасть одной из своих граней с одинаковой вероятностью, то интервалы времени между приходами покупателей в магазин подчиняются другому закону распределения ( какой-то интервал встречается с максимальной частотой, чем дальше от этого значения, тем частоты ближе к 0). Например, семейство функций Пуассона хорошо отражают характер такого распределения:
t
n
n
e
n
t
t
p
!
)
(
)
(
Такие функции имеют максимум при t=n/ и нормированны. В Excel такое распределение можно получить с помощью надстройки
«Анализ данных», выбрав
«Генерацию случайных чисел», «распределение
Пуассона» и введя необходимые
Рис.1 График функции P
n
(t)
значения параметров.
Некоторые случайные процессы.
Процессы массового обслуживания. К числу случайных процессов, изучаемых методом имитационного моделирования относятся, в частности, процессы, связанные с формированием и обслуживанием очередей.
Простейшая задача данного класса такова. Имеется система массового обслуживания с одним узлом обслуживания (магазин с одним продавцом, ремонтная зона в автохозяйстве, травмпункт с одним врачом, телефонная станция с одним входом, сервер с одним входным каналом и т.д.). К услугам системы клиенты прибегают случайным образом (с заданной функцией распределения отрезков времени между приходами). Если система свободна, то начинает обслуживать клиента сразу, иначе ставит его в очередь.
Длительность обслуживания каждого клиента — случайная величина с известным законом распределения.
В ходе решения данной задачи требуется дать ответ на вопросы типа: какова функция распределения вероятностей времени ожидания клиента в
39 очереди? Времени простоя системы в ожидании клиентов? Если сами эти функции определять сложно, то каковы их наиболее важные характеристики
(т.е. математическое ожидание, дисперсия и т.д.)?
Задача
Бюффона.
Французский натуралист, биолог, математик, естествоиспытатель и писатель XVIII века Жорж-Луи Леклерк де Бюффон аналитически нашел, что если на поле, разграфленное параллельными прямыми, расстояние между которыми L, бросается наугад игла длиной l, то вероятность того, что игла пересечет хотя бы одну прямую, определяется формулой
p
l
L
2
. Эта задача дала способ имитационному определению числа
. Действительно, если L=2l, то
p
1
«Бросок иглы» моделируется генерированием трех случайных чисел – координат одного из концов иглы X,Y и угла наклона иглы к положительному направлению оси абсцисс α. Координаты второго конца иглы вычисляются из прямоугольного треугольника с гипотенузой l и острым углом α (или π-α).
Для простоты можно считать, что прямые проведены через точки 0, 1, 2, …
Тогда условием пересечения иглой какой-либо прямой будет неравенство целых частей ординат концов иглы.
Процесс случайного одномерного блуждания (модель «пьяницы»). В начальный момент времени точка находится на нулевой отметке числовой прямой. Блуждание задается по правилу: если случайное число из отрезка [0,1] меньше 0,5, то делается шаг вправо на расстояние h, в противном случае влево. Распределение случайных чисел принимается равновероятным. Обычно ставятся следующий вопрос: какова вероятность удаления точки на расстояние k от начального положения через n шагов. Обобщение данной модели на плоскость и на большое количество точек позволяет моделировать процессы, происходящие в жидкостях и газах.
Пример выполнения задания
Задача. На междугородней телефонной станции две телефонистки обслуживают общую очередь заказов. Очередной заказ обслуживает та телефонистка, которая первой освободилась. Если обе в момент поступления
40 заказа заняты, то звонок аннулируется. Смоделировать процесс, считая входной поток пуассоновским, а длительность обслуживания постоянной.
Решение. В задаче требуется смоделировать систему массового обслуживания с двумя каналами, с отказами. Время будем измерять в минутах. Длительность обслуживания заявки каждой из телефонисток примем равным 0,2 и поместим это значение в ячейку I2 (Рис.2). В качестве случайной величины возьмем интервал времени между поступлением заявок.
В диапазоне B2:B101 получены целые случайные числа, распределенные по пуассоновскому закону (Данные-Анализ данных- Генерация случайных чисел-
Число переменных=1, Число случайных чисел=100, Распределение= Пуассона,
Лямбда=10, Выходной интервал=$B$2- OK). В диапазоне С2-С101 –те же числа, поделенные на 100 с тем, чтобы сделать интервалы времени дробными.
В ячейке D3 – формула =D2+C3 для вычисления момента поступления очередного звонка. В ячейку E3 введем условие, при котором звонок обслуживается первой телефонисткой:
=ЕСЛИ(МАКС($E$2:E2)
=ЕСЛИ(И(E4=0;F4=0);1;0) соответственно. Введенные формулы копируются на весь диапазон.
Рис.2 Начало таблицы, моделирующей работу системы с отказами
Пронаблюдав за системой в течение примерно 10 минут (ячейка D101 на рис.3), делаем вывод: при выбранных значениях входных параметров система обслуживает 77% поступающих заявок.
41
Рис.3 Конец таблицы. В ячейках G102 и H102 получены выходные параметры модели: количество обслуженных заявок и количество отказов.
Задание к лабораторной работе
1. Произвести моделирование указанного случайного процесса в среде
Excel
2. Оценить значения указанных в варианте выходных параметров модели
3. Создать текстовый отчет по лабораторной работе, включающий:
постановку задачи и описание модели;
результаты, полученные в ходе выполнения задания (в различных формах);
качественный анализ результатов.
Вариант 1.
Провести моделирование очереди в магазине с одним продавцом при равновероятных законах распределения описанных выше случайных величин: приход покупателей и длительность обслуживания (при некотором фиксированном наборе параметров). Получить устойчивые характеристики: средние значения ожидания в очереди покупателем и простой продавца в ожидании прихода покупателей, оценить их достоверность. Оценить характер функции распределения величин g и h.
Вариант 2.
Провести то же моделирование при пуассоновских законах распределения вероятностей входных событий: приход покупателей и длительность обслуживания (при некотором фиксированном наборе параметров).
42
Вариант 3.
Провести то же моделирование при нормальном законе распределении вероятностей входных событий: приход покупателей и длительность обслуживания (при некотором фиксированном наборе параметров).
Вариант 4.
В рассмотренной выше системе может возникнуть критическая ситуация, когда очередь неограниченно растет со временем. В самом деле, если покупатели заходят в магазин очень часто (или продавец работает слишком медленно), то очередь начинает нарастать, и в рассматриваемой системе с конечным временем обслуживания наступит кризис.
Найти величины a
max и b vax
), отражающие указанную критическую ситуацию, при равновероятном распределении входных событий.
Вариант 5.
На травмопункте работает один врач. Длительность лечения больного и промежутки времени между поступлениями больных — случайные величины, распределенные по пуассоновскому закону. По тяжести травм больные делятся на три категории, поступление больного любой категории — случайное событие с равновероятным распределением. Врач вначале занимается больными с максимально тяжелыми травмами, затем, если таковых нет, — больными с травмами средней тяжести и лишь затем — больными с легкими травмами. Смоделировать процесс и оценить средние времена ожидания в очереди больных каждой из категорий.
Вариант 6.
Реализовать имитационную модель статистического моделирования для решения задачи Бюффона. В ходе моделирования выполнить расчет приближенного значения числа π.
Вариант 7.
Разработать модель случайного одномерного блуждания (модель «пьяницы»).
Ответить на вопрос: какова вероятность при таком блуждании удалиться от начальной точки на n шагов?
Вариант 8.
43
В условиях задачи из предыдущего варианта получить ответ на вопрос: какова вероятность «пьянице» вернуться через n шагов в начальную точку?
Вариант 9.
В игре участвуют игрок и маклер. У игрока имеется начальный капитал K монет. Он желает в ходе игры удвоить свой капитал. Маклер бросает монету.
Если выпал герб, то маклер выплачивает игроку сумму, равную ставке, назначаемой игроком. При выпадении цифры та же сумма выплачивается маклеру игроком. Игра прекращается, если у игрока не осталось монет или он смог удвоить свой капитал. Смоделировать описанную игру. Ответить на вопрос: какова оптимальная ставка при фиксированном значении K?
Вариант 10.
Смоделировать игру, описанную в варианте 9. Ответить на вопрос:
Вероятность какого события больше: разорения игрока или его выигрыша?
Вариант 11.
Двое играют в следующую игру: каждый игрок по очереди бросает 2 игральные кости, суммируя выпавшие очки. Выигрывает тот, кто первым наберет более 100 очков. Смоделировать описанную игру, ответить на вопрос: есть ли преимущество у того, кто ходит первым?
Вариант 12.
Смоделируйте известную игру «Спортлото» 6 из 49. В качестве исходных данных введите сведения о 100 заполненных билетах. Проведите розыгрыш одного тиража. Подсчитайте количество билетов, в которых угадано 3, 4, 5, 6 номеров и соответствующие вероятности.