- •Оглавление
- •1. Введение в имитационное моделирование
- •1.2. Виды моделирования
- •1.3. Построение математических моделей
- •Основные понятия имитационного моделирования
- •2. Моделирование случайных величин
- •2.1. Распределение случайных событий
- •Генерация равномерно распределенных случайных чисел
- •2.3. Генерация случайных чисел, распределенных по заданному закону
- •2.4. Метод Монте-Карло
- •3. Методы моментов
- •3.1. Метод моментов аппроксимации экспериментальных распределений статистическими законами
- •3.2. Метод моментов для равномерного закона
- •3.3. Метод моментов для экспоненциального и нормального законов
- •4. Оценка пригодности модели и обработка результатов экспериментов
- •5. Основные понятия теории массового обслуживания
- •5.2. Одноканальная смо
- •Заключение список литературы
- •[7] Гмурман в.Е. 9-е изд., стер.—м.: Высшая школа, 2003.— 479 с. Книга (8 - е изд. - 2002 г.)
- •Приложение
- •{Ниже - нормировка распределений g и h}
- •{Ниже - расчет средних и дисперсий g и h}
- •Графики распределений:
{Ниже - нормировка распределений g и h}
for i:=1 to 11 do begin L1[i]:=L1[i]/n; L2[i]:=L2[i]/n end; s1:=s1/n; s2:=s2/n; Dg:=0; Dh:=0;
{Ниже - расчет средних и дисперсий g и h}
for i:=1 to n do begin Dg:=Dg+sqr(g[i]-s1); Dh:=Dh+sqr(h[i]-s2) end; Dg:=Dg/n; Dh:=Dh/n; for i:=1 to 11 do memo1.Lines.Add(floattostr(L1[i])); for i:=1 to 11 do memo2.Lines.Add(floattostr(L2[i])); memo1.Lines.Add('СРЕДНЕЕ G='+floattostr(s1)); memo2.Lines.Add('СРЕДНЕЕ H='+floattostr(s2)); memo1.Lines.Add('СР-КВАДР. G='+floattostr(Dg)); memo2.Lines.Add('СР-КВАДР. H='+floattostr(Dh)); end; procedure TForm1.Button2Click(Sender: TObject); begin memo1.Clear; memo2.Clear; button1.Click end; procedure TForm1.Button3Click(Sender: TObject); begin close end; procedure TForm1.Button4Click(Sender: TObject); begin form2.Show end; end.
Графики распределений:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) procedure Form2Paint(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} procedure TForm2.Form2Paint(Sender: TObject); var w,h,s,i1,i2:integer; begin with form2.Canvas do begin w:=width; h:=height; s:=w div 2; textout(20,50,'p'); textout(s+12,h-80,'p'); textout(200,50,'w1'); textout(s+200,h-80,'w2'); moveto(10,h-100);lineto(s,h-100); moveto(10,h-100);lineto(10,50); max:=L1[1]; for i1:=2 to 11 do if L1[i1]>max then max:=L1[i1]; for i1:=2 to 11 do v[i1]:=L1[i1]/max; for i1:=2 to 11 do begin i2:=round((h-110)*(1-v[i1]))+10; brush.Color:=rgb(random(105)+150,random(105)+150,random(105)+150); rectangle(50*i1-90,i2,50*i1-40,h-100) end; moveto(s+10,h-100);lineto(w-20,h-100);moveto(s+10,h-100);lineto(s+10,50); max:=L2[1]; for i1:=2 to 11 do if L2[i1]>max then max:=L2[i1]; for i1:=2 to 11 do v[i1]:=L2[i1]/max; for i1:=2 to 11 do begin i2:=round((h-110)*(1-v[i1]))+10; brush.Color:= rgb(random(105)+150,random(105)+150,random(105)+150); rectangle(s-90+50*i1,i2,s-40+50*i1,h-100) end; end; end; end.
Результаты работы программы представлены на рисунках 19-20:
Рисунок 19. Результат работы Unit1
Рисунок 20. График распределения величин g и h при w1=10 и w2=4.
Оценим адекватность полученной модели. Для оценки адекватности выполняются следующие действия:
Задаемся доверительной вероятностью β. Рекомендуемое значение β=0,95. По статистическим таблицам находим t, которое для рекомендуемого значения β=0,95 равно 1,96.
Задаемся количеством проводимых экспериментов N.
Вычисляем половину ширины доверительного интервала:
В качестве Sg
берется среднее квадратическое
отклонение, вычисленное при аналитическом
моделировании.
Подсчитываем количество попаданий оценок математических ожиданий в доверительный интервал по выполнению условия: Mg-ε≤Mg≤Mg+ε. В качестве Mg берется математическое ожидание, вычисленное при аналитическом моделировании.
Если количество попаданий оценок математических ожиданий в доверительный интервал не меньше β*N, то имитационную модель считаем пригодной по тесту адекватности.
Если N большое, то количество попаданий оценок математических ожиданий в доверительный интервал сравнивается с количеством серий испытаний.
В таблице 2 приведены результаты расчета средних значений величин g, h и соответствующих средних квадратических отклонений Sg, Sh, полученные при одинаковых значениях всех параметров в пяти разных сериях испытаний по 10000 событий в серии. w1=10, w2=4.
Испытание |
|
|
|
|
1 |
0,400 |
0,969 |
2,996 |
7,149 |
2 |
0,414 |
0,997 |
3,015 |
7,340 |
3 |
0,391 |
0,976 |
3,026 |
7,280 |
4 |
0,413 |
0,960 |
2,974 |
7,199 |
5 |
0,399 |
0,878 |
3,000 |
7,314 |
Таблица 2
Оценим доверительный интервал математических ожиданий величин g и h достоверности 0. По первой выборке получаем:
0,400–0,019<Mg<0,400+0,019 ⇒ 0,381<Mg<0,419 2,996–0,140<Mh<2,996+0,140 ⇒ 2,856<Mh<3,136
Таким образом, различия в выборочных средних вполне укладываются в указанные доверительные интервалы.
В
рассмотренной задаче может возникнуть
критическая ситуация, когда очередь
неограниченно растет со временем. В
самом деле, если люди заходят в магазин
очень часто (или продавец работает
слишком медленно), очередь начинает
нарастать, и в любой системе с конечным
временем обслуживания наступит кризис.
Приведем для иллюстрации динамики этого
процесса распределения величин
–
времени ожидания покупателем в очереди
и
–
времени простоя продавца в ожидании
покупателя, при трех наборах параметров
где
– максимальный интервал времени между
приходами покупателей,
– максимальная длительность обслуживания
покупателя (рис. 21-22):
Рисунок 21. Кризис наступает, w1=10; w2=9
Рисунок 22. Кризис наступил, w1=w2=10
