скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыУчебное пособие: Машинна імітація випадкових параметрів

4.Выполнить проверку правильности генерации случайных чисел по тесту "Перевірка на рівномірність за гистограмою". Создать две гистограммы распределения РВП: для мультипликативно - конгруэнтного метода и для смешанного генератора Томсона.

Перед построением диаграмм рекомендуется создать две таблицы следующего вида.

Мультипликативно - конгруэнтный метод Смешанный генератор Томсона
Карманы Частота Карманы Частота
0,05 0,05
0,10 0,10
0,15 0,15
0,20 0,20
0,25 0,25
0,30 0,30
0,35 0,35
0,40 0,40
0,45 0,45
0,50 0,50
0,55 0,55
0,60 0,60
0,65 0,65
0,70 0,70
0,75 0,75
0,80 0,80
0,85 0,85
0,90 0,90
0,95 0,95
1,00 1,00

Рекомендуется следующее оформление диаграммы.

5.Выполнить проверку правильности генерации случайных чисел также по гистограмме, используя программу на языке Паскаль (Смотри Приложение 1).

С помощью программы построить три гистограммы. Проанилизировать результаты. Сделать выводы.

В отчет скопировать гистограммы и текст программы.


Приклади використання методу Монте Карло в имитационном моделировании

Цель работы - ознакомление с возможностями практического применения метода Монте-Карло (1949) – численного метода моделирования случайных величин.

Для примера взяты две задачи: вычисление числа p и вычисление определённого интеграла.

 
Обчислення числа p

Расчёт числа p проводится путём набрасывания случайных чисел на квадрат со сторонами равными 1, в который вписана единичная окружность. Общее число случайных точек (на отрезке [0;1) принимается за N, а число точек, попавших в круг – за М.

Число p рассчитывается как:

Чем больше проводится экспериментов, тем точнее получается результат.

Практическое задание

Провести моделирование с целью исследования зависимости точности вычисляемого значения p от числа испытаний N.

Для моделирования разработать программное средство. Провести моделирование и результаты внести в таблицу. Проанализировать результат. Сделать выводы.

N 10 50 100 150 200
p

Для проведения моделирования студент должен создать программу на любом из алгоритмических языков или создать электроннную таблицу. Ниже предлагается один из возможных вариантов решения задачи в табличном процессоре. таблицу отформатировать. Снабдить комментариями.

X Y X^2+Y^2

Попадание в круг

(1 или 0)

Приближенное значение числа p
4*M/N

Вычисление

количества испытаний (N)

Вычисление суммы попаданий (M)
 
Обчислення визначенного інтегралу методом Монте-Карло

Вычисление определенного интеграла вида

производится по приближенной формуле:

,

где xi - случайная величина, xi =p/2×g, 0<=g<=1.

Точность результата также зависит от количества испытаний

Практическое задание

Провести моделирование с целью исследования зависимости точности вычисляемого значения интеграла от числа испытаний N.

Для моделирования разработать программное средство. Провести моделирование и результаты внести в таблицу. Проанализировать результат. Сделать выводы.

N 10 50 100 150 200
S

Для проведения моделирования студент должен создать программу на любом из алгоритмических языков или создать электронную таблицу. Ниже предлагается один из возможных вариантов решения задачи в табличном процессоре. Таблицу отформатировать. Снабдить комментариями.

гамма кси sin() Сумма Количество испытаний Интеграл
0,162 0,255 0,252 0,669 12 0,088

Литература

1.         Курицкий Б.Я. Поиск оптимальных решений средствами Ехсеl 7.0. - СПб.: ВНV, 1997. - 384 с.

2.         Методические рекомендации к выполнению практических заданий по курсу "Имитационное моделирование" для студентов специальности 7.050102 заочной формы обучения / Сост. О.Ю.Полякова. — Харьков: Изд. ХГЭУ, 2002. — 28с.

3.         Ситник В.Ф., Орленко Н.С. Імітаційне моделювання.- К.: КНЕУ, 1998.- 232c.

4.         Ж.-П. Ламуатье. Упражнения по программированию на Фортране IV. Пер. с франц., под ред. Ю.М.Баяковского. – М.: Мир. 1978. с. 167.

5.         Соболь И. М. Метод Монте-Карло. — 4-е изд. — М.: Наука. Главная редакция физико-математической литературы, 1985.— 80 с. — (Популярные лекции по математике).


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

1.         В чем сущность метода статистического моделирования?

2.         Предельные теоремы теории вероятностей.

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

4.         Почему генерируемые на компьютере последовательности чисел называются псевдослучайными?

5.         Что собой представляют конгруэнтные процедуры генерации последовательностей чисел?

6.         Какие существуют методы проверки качества генераторов случайных чисел?

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

8.         Моделирование дискретных случайных величин.

9.         Чем определяется эффективность компьютерного моделирования систем?

10.       Проблемы моделирования систем.

11.       Особенности непрерывно-детерминированного подхода к построению математических моделей систем.

12.       Особенности дискретно-детерминированного подхода к построению математических моделей систем.

13.       Особенности дискретно-стохастического подхода к построению математических моделей систем.

14.       Особенности непрерывно-стохастического подхода к построению математических моделей систем.

15.       Параметры Q-схемы имитационного моделирования.

16.       Определение однородного и неоднородного потоков событий.

17.       Определение одинарного и стационарного потоков событий.

18.       Определение многоканального и многофазного обслуживания.


Приложение 1

Анализ генератора случайных чисел

В системе Турбопаскаль имеется функция random, которая дает случайное число в интервале [0,1] в соответствии с равномерным законом распределения. Можно разделить этот интервал на р меньших интервалов одинаковой длины и найти, как случайные числа распределяются в этих р интервалах.

Рассмотрим конкретный пример. Пусть значения случайной величины находятся в интервале: А=0; В=1. Этот интервал будем делить на 20 интервалов: р=20. Генерируются N=10 000 чисел.

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

Ниже приведен пример гистограммы.

Histogram

1 502 **************************************************

2 456 **********************************************

3 470 ***********************************************

4 528 *****************************************************

5 468 ***********************************************

6 498 **************************************************

7 528 *****************************************************

8 534 *****************************************************

9 476 ************************************************

10 521 ****************************************************

11 503 **************************************************

12 503 **************************************************

13 491 *************************************************

14 498 **************************************************

15 451 *********************************************

16 508 ***************************************************

17 516 ****************************************************

18 529 *****************************************************

19 525 *****************************************************

20 495 **************************************************

Замечание

Кроме рассматриваемого здесь теста "по гистограмме" известны и другие, более совершенные статистические тесты для проверки качества генератора случайных чисел [*].

*) Кнут. искусство программирования. Т.2.


Пояснение к алгоритму

При составлении программы авторам [5, с. 103-107] предстояло преодолеть одно затруднение - определить, к какому интервалу относится получаемое случайное число.

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

Самый быстрый метод заключается в определении целой переменной J, соответствующей номеру интервала, к которому относится число. Например, для интервала [0,1], разделенного на 20 классов длиной 0.05, можно получить значение J следующим образом:

J= целое (20 х) +1

х=0.03®целое(0.6)+1

х=0.06®целое(1.2)+2

Чтобы подсчитать число элементов в каждом классе, можно действовать следующим образом:

1)         получить случайное число х,

2)         вычислить J,

3)         установить T(J)=T(J)+1, где Т – массив из р элементов и каждый элемент T(J) служит счетчиком для класса J.

Программа

uses Crt;

Var

 a,b,p,n,i,j: integer;

Var

 t: array [1..20] of integer;

Var

 h1,x:Real;

Var

 rp,y:Real;

Var

 aa: array [1..72] of string[1];

Var

 k: integer;

Begin

 clrscr;

 randomize;

{ writeln('a=0,b=20');

 readln(a,b);

 writeln('p=20');

 readln(p);

 writeln('n=10000');

 readln(n);}

 a:=0;b:=20;p:=20;n:=10000;

 for i:=1 to p do t[i]:=0;

 h1:=p/(b-a);

 for i:=1 to n do

 begin

 x:=random(b);

 j:=trunc((x-a)*h1)+1;

 t[j]:=t[j]+1

 end;

 clrscr;

 for i:=1 to p do

 writeln(i:3,t[i]:10);

 readln;

 rp:=p;

 for i:=1 to p do t[i]:=0;

 for i:=1 to n do

 begin

 y:=random;

 j:=trunc(rp*y)+1;

 t[j]:=t[j]+1;

 end;

Clrscr;

Writeln('*******');

 for i:=1 to p do writeln(i:3,t[i]:10);

 readln;

Clrscr;

writeln('Histogram');

for i:=1 to 72 do aa[i]:='*';

for i:=1 to p do

 begin

 k:=trunc((t[i]+5)/10);

 write(i:2,t[i]:4,' ');

 {writeln ('k=',k:3);}

 for j:=1 to k do write(aa[j]);writeln;

 end;

 readln

end.


Страницы: 1, 2


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

Обратная связь

Поиск
Обратная связь
Реклама и размещение статей на сайте
© 2010.