Описание процедуры моделирования 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Описание процедуры моделирования



Обычно числа, полученные с помощью программного генератора случайных чисел, подчиняются равномерному закону распределения. На практике это означает, что вероятности появления любого из чисел из некоторого заданного интервала одинаковы.

Допустим, все случайные числа принадлежат интервалу [0,1). Тогда попадание сгенерированного числа в интервал [0, 0.1) будет соответствовать выходу из строя испытуемого прибора, если эта вероятность равна 0.1. Попадание числа в интервал [0.1, 1) будет соответствовать безотказной работе прибора (рис. 1).

Рисунок 1 - Моделирование работы прибора

В том случае, если вероятность отказа каждого прибора равна 0.2, отказ прибора имитируется попаданием случайного числа в интервал [0, 0.2). Если вероятность отказа каждого прибора равна 0.3, отказ прибора имитируется попаданием случайного числа в интервал [0, 0.3) и т.д.

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

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

Пример выполнения работы

Выполним расчеты для схемы соединения приборов, показанной на рис. 2 для P1=0.1.

Рисунок 2 - Схема соединения приборов в системе контроля качества

В этом случае испытание каждого прибора моделируется в соответствии с рис. 1. Анализ схемы соединения приборов (рис. 2) позволяет сделать вывод, что вся система выйдет из строя, если хотя бы один из приборов выйдет из строя. В условиях имитационной модели этот факт формулируется следующим образом: если хотя бы одно из трех случайных чисел, полученных в результате имитации испытания системы, попадает в интервал [0, 0.1), фиксируется отказ всей системы в данном испытании.

Задание 1. Выполним имитационное моделирование эксперимента средствами табличного процессора MS Excel.

Для генерации случайных чисел в электронной таблице MS Excel используется стандартная функция СЛЧИС(). Функция возвращает равномерно распределенное случайное число, большее либо равное 0 и меньшее 1.

Для имитации испытаний системы заполним таблицу, показанную на рис. 3. При заполнении столбца Номер испытания введем значения 1 и 2 в ячейки А2 и А3 соответственно. Затем выделим эти ячейки и «протянем» вниз до ячейки А1001, используя маркер заполнения. В ячейку В2 введем формулу =СЛЧИС() и «протянем» сначала вправо на ячейки С2 и D2, а затем вниз до ячеек В1001:D1001.

Рисунок 3 - Таблица с имитацией испытаний в режиме показа формул

В ячейку Е2 введем формулу =ЕСЛИ(ИЛИ(B2<0,1;C2<0,1;D2<0,1);0;1). Эта формула фиксирует состояние системы, полученное в испытании с номером 1. Если хотя бы один прибор выходит из строя (ИЛИ(B2<0,1;C2<0,1;D2 <0,1)), то фиксируется отказ всей системы (значение в ячейке Е2 равно 0), в противном случае система работоспособна (значение в ячейке Е2 равно 1). Используя маркер заполнения, распространим формулу на ячейки диапазона Е3:Е1001.

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

В ячейку F2 введем формулу для вычисления вероятности отказа системы по результатам 1000 испытаний. За вероятность принимается отношение числа зафиксированных отказов к общему числу испытаний: =СЧЁТЕСЛИ(E1:E1001;0)/1000.

С целью возможности управления экспериментом установим пересчет формул на рабочем листе в ручном режиме, выполнив в меню Формулы – Вычисление – Параметры вычислений – вручную (рис. 4). В этом случае для имитации серии испытаний (пересчета значений рабочего листа таблицы) потребуется нажимать на клавиатуре клавишу <F9>.

Рисунок 4 - Установка параметров пересчета формул рабочего листа таблицы

В ячейки диапазона G2:G11 введем номера экспериментов от 1 до 10 (рис. 5). В ячейки Н2:Н11 будем заносить вычисленные в каждом эксперименте значения из ячейки F2. В ячейку Н12 внесем формулу для вычисления среднего арифметического значения вероятности отказа системы по результатам 10 экспериментов: =СРЗНАЧ(H2:H11).

Рисунок 5 - Расчетная таблица, имитирующая испытания системы

Опишем последовательность действий, имитирующих один эксперимент:

P нажимаем на клавиатуре клавишу <F9>;

P выделив ячейку F2, Щелкните правой кнопкой мыши – Копировать;

P выделив ячейку столбца Н, соответствующую номеру эксперимента, выполняем Щелкните правой кнопкой мыши – Специальная вставка… – значения (в ячейку будет вставлено вычисленное значение вероятности).

Полученное в результате расчетов значение в ячейке Н12 даст нам приближенное значение вероятности отказа системы. Для оценки точности полученного с помощью имитационной модели значения вероятности можно сравнить его с точным значением вероятности отказа системы, вычисленным по формулам теории вероятностей, которое для рассматриваемого случая равно 0.271.

Задание 2. Выполним имитационное моделирование эксперимента средствами языка программирования Паскаль.

В программе на языке программирования Паскаль для включения генератора случайных чисел используется процедура Randomize. Функция Random возвращает случайное число типа Real из диапазона [ 0, 1).

Введем соответствие обозначений в программе и задаче (табл. 1).

Таблица 1 - Соответствие обозначений в задаче и в программе

В задаче В программе Тип переменной в программе
Количество экспериментов m word (целый)
Количество испытаний в каждом эксперименте n word (целый)
Текущий номер эксперимента j word (целый)
Текущий номер испытания в рамках эксперимента i word (целый)
Состояние прибора 1 в испытании с номером i k1 [ i ] массив типа real (вещественный)
Состояние прибора 2 в испытании с номером i k2 [ i ] массив типа real (вещественный)
Состояние прибора 3 в испытании с номером i k3 [ i ] массив типа real (вещественный)
Количество отказов системы в каждом эксперименте kol word (целый)
Вероятность отказа системы в каждом эксперименте p real (вещественный)
Сумма вероятностей отказа системы по всем экспериментам sum real (вещественный)
Среднее значение вероятности отказа системы по результатам всех экспериментов sred real (вещественный)

В окне редактора Turbo Pascal введем с клавиатуры текст программы (текст комментариев, заключенный в фигурные скобки, вводить не нужно):

Program MonteCarlo;                                                                                               {1}

Var i, j, n, m, kol: word;                                                                                             {2}

k1, k2, k3: array [ 1.. 2000 ] of real;                                                                     {3}

p, sred, sum: real;                                                                                                       {4}

begin                                                                                                                              {5}

Randomize; {Запуск генератора случайных чисел}                                          {6}

Repeat                                                                                                                           {7}

Writeln (' Введите число экспериментов >=1 и <=1000 ');                        {8}

Readln (m);                                                                                                            {9}

until (m >= 1) and (m <= 1000);                                                                         {10}

Repeat                                                                                                                           {11}

Writeln (' Введите число испытаний >=100 и <=2000 ');                                           {12}

Readln (n);                                                                                                                  {13}

until (n >= 100) and (n <= 2000);                                                                      {14}

sum:= 0;                                                                                                                       {15}

for j:= 1 to m do {Цикл по номеру эксперимента}                            {16}

begin                                                                                                                         {17}

kol:= 0;                                                                                                                        {18}

for i:= 1 to n do {Цикл по номеру испытания}                                                  {19}

begin                                                                                                                              {20}

k1 [ i ]:= random; k2 [ i ]:= random; k3 [ i ]:= random;                                {21}

if (k1 [ i ] < 0.1) or (k2 [ i ] < 0.1) or (k3 [ i ] < 0.1) then kol:= kol + 1;    {22}

end;                                                                                                                                {23}

p:= kol / n; writeln (' Вероятность отказа системы = ', p: 8: 4);           {24}

sum:= sum + p;                                                                                                           {25}

end;                                                                                                                                {26}

sred:= sum / m;                                                                                                           {27}

writeln (' Среднее значение вероятности отказа системы = ', sred: 8: 4);{28}

readln                                                                                                                            {29}

end.                                                                                                                                {30}

Комментарий к программе

Строка 1 – заголовок программы;

Строки 2, 3, 4 – описание переменных программы;

Строки 5, 30 – начало и конец исполнительной части программы;

Строка 6 – запуск генератора случайных чисел;

Строки 7, 8, 9, 10 – ввод числа экспериментов с контролем ввода данных;

Строки 11, 12, 13, 14 – ввод числа испытаний с контролем ввода данных;

Строка 15 – обнуление переменной для накопления суммы вероятностей;

Строки 16, 17, 26 – границы цикла (начало и конец) по номеру эксперимента;

Строка 18 – обнуление счетчика числа отказов системы в каждом эксперименте;

Строки 19, 20, 23 - границы цикла (начало и конец) по номеру испытания в рамках одного эксперимента;

Строка 21 – имитация одного испытания системы (присваивание элементам массивов k1 [ i ], k2 [ i ], k3 [ i ] случайных значений из интервала [0, 1), имитирующих состояние прибора в испытании с номером i);

Строка 22 – анализ состояния системы (отказ или исправное состояние) в зависимости от значений k1 [ i ], k2 [ i ], k3 [ i ] и изменение значения счетчика (переменная kol) в случае отказа системы в текущем испытании;

Строка 24 – вычисление и вывод значения вероятности отказа системы по результатам текущего эксперимента;

Строка 25 – вычисление суммы вероятностей отказа системы по результатам всех экспериментов;

Строки 27, 28 – вычисление и вывод среднего значения вероятности отказа системы по результатам всех экспериментов;

Строка 29 – задержка экрана вывода результатов работы программы.

Выполним расчеты по программе для разных значений m и n и зафиксируем эти результаты в таблице (табл. 2).

Таблица 2 - Результаты расчетов по методу Монте-Карло

Номер расчета Число экспериментов (m) Число испытаний в эксперименте (n) Вероятность отказа системы
1. 10 100 0.2670
2. 10 1000 0.2665
3. 10 2000 0.2720
4. 100 100 0.2744
5. 100 1000 0.2715
6. 100 2000 0.2709
7. 1000 100 0.2704
8. 1000 1000 0.2712
9. 1000 2000 0.2709

Анализ результатов расчетов позволяет принять за приближенное значение вероятности отказа значение P = 0.27. Сравним полученное значение с точным значением вероятности отказа системы, вычисленным по формулам теории вероятностей, которое равно 0.271. В рассмотренном случае относительное отклонение вычисленного по методу Монте-Карло значения вероятности от точного значения составляет менее 0.37% ((0.271 - 0.27) *100 / 0.271 = 0.369%).

Таблица 3 - Варианты заданий

№ варианта Вид схемы соединения приборов в системе контроля качества продукции Значение P1 Точное значение вероятности P отказа системы (используется для контроля правильности расчетов)
1, 19

0.1 0.109
2, 20 0.2 0.232
3, 21 0.3 0.363
4

0.3 0.027
5 0.4 0.064
6 0.5 0.125
7, 22

0.3 0.1719
8, 23 0.2 0.0719
9, 24 0.4 0.2944
10, 25

0.4 0.4384
11, 26 0.3 0.3189
12, 27 0.2 0.2064
13, 28

0.1 0.1981
14, 29 0.2 0.3856
15, 30 0.3 0.5541
16

0.1 0.3439
17 0.2 0.5904
18 0.05 0.1855

Контрольные вопросы

1. От каких условий зависит точность метода Монте-Карло?

2. Можно ли находить с помощью метода Монте-Карло площади фигур в многомерной области?

3. Назовите области применения метода Монте-Карло.

Практическая работа №3

Тема: Графическое изображение статистических данных и прогнозирование в Microsoft Excel

Цель: - изучение возможностей Microsoft Excel для графического представления данных и прогнозирования.

Вид работы: фронтальный

Время выполнения: 2 часа

Теоретические сведения



Поделиться:


Последнее изменение этой страницы: 2021-05-12; просмотров: 172; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.36.141 (0.035 с.)