Скачиваний:
8
Добавлен:
28.03.2019
Размер:
1.08 Mб
Скачать

3.Используя программный ГПСЧ, созданный на лабораторном занятии №3, создать второй файл ПСЧ.

4.Применяя систему ANALYZE.EXE, проанализировать качество аппаратного и программного генераторов ПСЧ (по двум файлам чисел).

5.Проанализировав результаты исследований, сделать вывод о качестве созданных Вами аппаратного и программного ГПСЧ, отобрать лучший из них для дальнейшего применения в статистическом моделировании.

6.Удалить созданные Вами в процессе работы файлы данных.

7.Результаты исследований по двум файлам оформить в отчет по лабораторной

работе.

Замечание. Формируемые в п.2,3 файлы должны содержать не менее 5000-10000 чисел. Файлы рекомендуется создавать на диске b: и сопровождать расширением *.dat.

Лабораторная работа №5

Формирование чисел, имеющих заданное распределение

Цель работы: изучение основных способов формирования последовательностей случайных чисел с заданным законом распределения и создание соответствующих файлов чисел.

При реализации статистического моделирования на ЭВМ возникает потребность не только в последовательностях случайных чисел, имеющих равномерный закон распределения, но и в последовательностях с иными законами распределения. Будем называть закон распределения «стандартным», если вид его функции распределения или функции плотности распределения и параметры распределения известны (нормальный, экспоненциальный, пуассоновский, рэлеевский, гамма-распределение, эрланговский, гиперэрланговский и т.д.). Для таких законов распределения, имея соответствующую процедуру формирования чисел по стандартному закону, необходимо в каждом конкретном случае привести случайные числа в соответствие заданным параметрам (математическому ожиданию и дисперсии; интенсивности для экспоненциального закона и т.д.).

Будем называть закон распределения «законом пользователя», если вид функции распределения известен только пользователю и задан либо в табличном виде (заданы значения абсцисс и соответствующие им значения ординат кривой распределения), либо в виде гистограммы, либо в аналитическом виде.

29

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

Суть табличного способа не отличается от изложенного в описании к лабораторной работе №2.

Программный способ

Основные методы программного способа следующие:

1.Метод, основанный на аналитическом преобразовании зависимости между заданной функцией распределения F(x) случайной величины X и случайной равномерно распределенной в интервале (0,1) переменной Z. Этот метод называется методом обратной функции.

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

3.Метод ступенчатой аппроксимации.

1.Метод обратной функции

Метод основан на следующих свойствах функции распределения. По определению функции распределения F(x)=P(X<x), причем для х1<x2 F(x1)<F(x2); F( )=0; F(+ )=1. Для непрерывной функции распределения F(x) существует обратная ей функция F-1(y), т.е., если

y=F(x), то x=F-1(y), F(

случайная величина z

x)

 

x

 

 

 

f (x)

 

 

 

x

 

 

 

f (x)dx

0

 

 

dx, где f(x) – функция плотности распределения. Доказано, что

имеет равномерное в интервале (0,1) распределение. Поэтому

для получения значения х необходимо решить относительно х уравнения:

X=F-1(z).

Эта зависимость приводит к следующему алгоритму:

1)получить равномерно распределенное число zi.

2)получить число хi, имеющее функцию распределения F(x) по формуле xi=F-1(zi) .

Пример. Пусть F(x) – экспоненциальная функция распределения с параметром

F(x)=1-eλx. Тогда

z x e xdx 1 e x ,

xi ( 1/ ) ln(1 zi ) .

0

 

, т.е.

30

Аналогично строятся и алгоритмы для дискретных распределений, для которых дифференциальное распределение вероятностей имеет вид:

xk

x1

x2

xj

p(X=xk)

p1

p2

pj

 

 

 

 

 

Тогда алгоритм вычисления значений случайных величин следующий:

1)получить равномерно распределенное число zi;

2)получить число хi по правилу:

если zi<p1, то хi1, иначе,

если zi<p1+p2, то хi2, иначе,

если zi<p1+p2+…+pj, то хij.

Основной недостаток метода обратных функций тот, что не всегда удается определить обратную функцию F-1(y).

2. Метод Неймана

Пусть функция плотности распределения ограничена интервалом (А,В) (рис. 8).

Обозначим через М максимальное значение функции f(x). Алгоритм получения случайной величины, основанный на методе Неймана, следующий:

1)получить два равномерно распределенных в интервале (0,1) числа z1 и z2;

2)вычислить хi=А+(В-А)z1;

3)проверить условие z2 ≤ f(x)/M. Если условие выполняется, то хi принимается в качестве реализации хi, если нет, то отвергается.

31

Этот метод достаточно универсален, однако он обладает низким быстродействием из-за сложности вычисления f(xi). Кроме того, выходные последовательности являются асинхронными.

3. Метод ступенчатой аппроксимации

Согласно этому методу функцию плотности распределения, заданную на отрезке (А,В),

разбивают на N интервалов, полагая в пределах каждого интервала значения х равновероятными (рис. 9).

С учетом принятого допущения случайную величину х можно представить в виде:

х=аkk, уk – равномерно распределенная в интервале (аk, аk+1) величина.

Алгоритм, основанный на методе ступенчатой аппроксимации, следующий:

1)получить равномерно распределенное в интервале (0,1) число z1;

2)с помощью этого числа выбрать интервал (аkk+1);

3)получить z2;

4)получить xi=( аk+1- аk)z2k.

Данный метод является приближенным.

Кроме описанных методов, обладающих достаточной универсальностью, для ряда стандартных законов существуют методы, основанные на свойствах конкретного закона; их алгоритмы приведены в приложениях 1, 2.

Пример. Создать процедуру формирования случайных чисел, распределенных по нормальному закону с параметрами m=6, D=2. Числа, имеющие данный закон, можно формировать на основе равномерных чисел по следующей формуле:

32

x

 

 

2ln z

cos2 z

2

 

i

 

 

1

 

 

 

x

1

 

2ln z

sin 2 z

2

i

 

 

1

 

 

где z1 и z2 – равномерно распределенные в интервале (0,1) числа; хi и хi+1 – числа, имеющие нормальное распределение с m=0, D=1.

Для получения нормально распределенных чисел уi с заданным математическим ожиданием с и дисперсией b следует осуществить следующее преобразование над числами х:

y

 

bx c

i

 

i

Процедура написана на языке Turbo Pascal и возвращает два требуемых числа за одно обращение.

PROCEDURE NORM (var x1, x2: real); var

z1, z2: real; begin

z1:= random;

z2:= random; {x1 и x2 с параметрами m=0, D=1} x1:= sqrt(-2*ln(z))*cos(2*pi*z2);

x2:= sqrt(-2*ln(z))*sin(2*pi*z2); {преобразование к нужным параметрам} x1:= sqrt(2)*x1+6;

x2:= sqrt(2)*x2+6;

end;

Обращение к процедуре имеет вид: NORM(y1,y2);

Здесь у1 и у2 – искомые числа.

Аппаратный способ

При аппаратном способе один из алгоритмов формирования чисел с заданным законом распределения реализуется в специализированном устройстве, называемом генератором случайных чисел (ГСЧ), подключаемом к ЭВМ. При этом ЭВМ содержит программный комплекс, поддерживающий работу этого устройства. Укрупненная блок-схема ГСЧ приведена на рис. 10.

33

ЗУ

ОПУ

ГРСЧ

УУ

Рис. 10. Блок-схема ГСЧ

ГСЧ содержит запоминающее устройство ЗУ для хранения информации о законе распределения, операционное устройство ОПУ для выполнения преобразований над равномерно распределенными числами в соответствии с алгоритмом преобразования, реализованным в устройстве управления УУ, генератор равномерно распределенных чисел ГРСЧ.

В данной лабораторной работе для создания файлов ПСЧ с требуемым законом распределения наряду с процедурами пользователей предлагается использовать интерактивный программный комплекс «Автоматизированная система формирования случайных чисел с произвольным законом распределения» IMITATOR.EXE. Этот комплекс в интерактивном режиме позволяет создавать файлы псевдослучайных чисел требуемого объема, причем исходная информация о виде распределения может задаваться следующим образом: в виде гистограммы, выбираться из предложенной библиотеки, вводиться с экрана в аналитическом виде.

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

1.Изучить теоретический материал по данной теме.

2.Создать наборы данных с требуемыми законами распределения (вид законов распределения см. в задании к лабораторной работе №1) одним из двух способов по указанию преподавателя.

Первый способ предполагает написание соответствующей процедуры формирования

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

34

Второй способ создания требуемой последовательности заключается в использовании автоматизированной системы IMITATOR.EXE.

3.Пользуясь автоматизированной системой обработки статистической информации ANALYZE.EXE, построить гистограмму статистического распределения для чисел из каждого созданного в п.2 файла.

4.Визуально сравнив гистограмму с теоретическим видом функции распределения (см. приложения 1, 2), дать первичную оценку качества полученных в п.2 последовательностей.

5.Оформить и защитить отчет по лабораторной работе.

Лабораторная работа №6

Проверка качества произвольно распределенных псевдослучайных чисел

Цель работы: изучение основных методов статистического тестирования последовательностей случайных чисел; анализ качества полученных в лабораторной работе №5 последовательностей случайных чисел.

Анализ чисел с заданным законом распределения проводится с помощью системы ANALYZE.EXE, в основе функционирования которой заложены методы исследования случайных и псевдослучайных чисел, описанные в лабораторной работе №4.

Эта система позволяет:

-проверить соответствие числовых характеристик последовательности ее теоретическим параметрам (значения теоретических параметров приведены в приложениях 1, 2);

-аппроксимировать статистическое распределение теоретическим;

-проверить соответствие чисел последовательности требуемому закону распределения по критериям согласия хи-квадрат и Колмогорова;

-исследовать независимость чисел последовательности друг от друга, т.е. корреляционные характеристики последовательности.

Пример. Исследование последовательности нормально распределенных ПСЧ, созданной

сприменением процедуры из лабораторной работы №5.

1.Определение числовых характеристик (табл.1).

№ п/п

Характеристика

Теоретическое

Статистическое

 

 

значение

значение

 

 

 

 

1

Наименьшее значение среди

m-3σ=1.77

1.889115

 

 

 

 

35

совокупности

2Наибольшее значение среди совокупности

3Начальный момент 1-го порядка

(математическое ожидание)

4Центральный момент 2-го порядка

(дисперсия)

5Среднее квадратическое отклонение

6Коэффициент асимметрии

7Эксцесс

m+3σ=10.23

m=6

D=2

D 1.41

0

0

10.365674

6.281302

1.990851

1.410975

-0.007720

-0.008965

2. Аппроксимация статистического распределения теоретической функцией.

Плотность распределения для нормального закона имеет вид:

 

 

1

 

(x m)

2

f (x)

 

 

 

2

2

 

 

2

e

 

 

 

 

 

 

 

 

 

 

Область значений случайной величины ( , ) . С помощью системы ANALIZE.EXE

получают совмещенные графики статистической (гистограмма) и теоретической функций распределения.

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

Критерий хи-квадрат: значение χ2=2.316844.

С доверительной вероятностью 0.72 можно говорить о согласованности теоретических и статистических данных.

Критерий Колмагорова.

Максимальная разность max|F(x)-F*(x)|=0.017.

С доверительной вероятностью 0.93 можно говорить о согласованности теоретических и статистических данных.

4. Определение характеристик корреляции.

График зависимости коэффициента корреляции от корреляционного расстояния τ приведен на рис. 11.

36

Рис. 11. График изменения коэффициента корреляции Вывод. Полученная по алгоритму, описанному в лабораторной работе №5,

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

-числовые характеристики имеют незначительное отклонение от теоретических значений;

-по критериям согласия получены удовлетворительные значения доверительных вероятностей;

-числа последовательности достаточно независимы, о чем свидетельствует график ρ(τ).

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

1.Оценить качество полученных в лабораторной работе №5 последовательностей ПСЧ, пользуясь автоматизированной системой ANALYZE.EXE.

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

3.Оформить и защитить отчет по лабораторной работе.

Лабораторная работа №7

Стохастическое моделирование вычислительной системы. Статистическая

обработка результатов моделирования

37

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

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

Пример. Преобразовать детерминированную модель вычислительной системы (результат лабораторной работы №1) в стохастическую модель. При решении задачи будем использовать:

-программный генератор РРПСЧ – встроенную функцию random(), возвращающую РРПСЧ в интервале (0,1);

-файл NORM.DAT ПСЧ, имеющий нормальный закон распределения с m=6, D=2,

созданный в лабораторной работе №5;

- файл EXP.DAT ПСЧ, имеющий экспоненциальный закон распределения с m=7,

созданный в лабораторной работе №5.

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

program model(input,output);

uses crt;

 

var

 

tps,

{время между приходом заявок}

tm1,

{время обработки задания на ЭВМ1}

tm2: real;

{время обработки задания на ЭВМ2}

ns,

{наличие заявки на входе системы}

sm1,

{состояние ЭВМ1

 

( ЭВМ1 = false, если Эвм1 свободна;

 

ЭВМ1 = true, если ЭВМ1 занята)}

sm2: boolean; {состояние ЭВМ2}

kr1,

{количество заявок, выполненных на ЭВМ1}

kr2,

{количество заявок, выполненных на ЭВМ2}

kot: integer; {количество отказов в обслуживании пользователей}

t,

{текущее время работы системы}

tektm1,

{текущее

время

обработки

задания на ЭВМ1}

tektm2,

{текущее

время

обработки

задания на ЭВМ2}

tektps: integer; {текущее время между поступлениями заявок}

proz: real;

{процент заявок, выполненных на ЭВМ1}

f1,f2: file of real;

{файловые переменные}

begin

 

 

{подготовка работы с файлами norm.dat и exp.dat}

assign(f1,’norm.dat’);

assign(f2,’exp.dat’);

reset(f1);

 

reset(f2);

randomize; {инициализация ГРРПСЧ}

{установка начальных условий}

38