Лабораторные работы / Лб2 / Лаб №2
.docМинистерство Образования
Республики Таджикистан
Таджикский Технический Университет
Кафедра «АСОИ и У»
Лабораторная работа № 2
на тему: «Моделирование датчиков случайных чисел с заданным законом распределения»
Выполнила: ст-ка 3-го курса
гр. 2202 Б1 ИКТ Химухина М.А.
Принял: преп-ль кафедры
Ли И. Р.
Душанбе – 2007
Моделирование датчиков случайных чисел с заданным законом распределения.
Цель работы:
-
Практическое освоение методов получения случайных чисел с требуемым законом распределения.
-
Разработка и моделирование на ПВМ датчиков случайных величин с конкретным законом распределения.
-
Исследование характеристик полученного датчика.
Теоретические сведения:
Основные методы моделирования случайных последовательностей с заданным законом распределения.
При исследовании и моделировании различных сложных систем в условиях действия помех, очень часто возникает необходимость в использовании датчиков случайных чисел с определенным законом распределения. Исходным материалом для этого служит базовая последовательность X1, X2, … , Xn с равномерным законом распределения в интервале [0,1]. Обозначим случайную величину, распределенную равномерно через ξ (кси). Тогда равномерно распределенные случайные числа будут представлять собой независимые реализации случайной величины ξ, которые можно получить с помощью стандартной функции RND (ξ), - генератора случайных чисел с равномерным законом распределения в интервале [0,1]. Требуется получить последовательность У1, У2, … , Уn независимых реализаций случайной величины η распределенных по заданному закону. Требуемый закон распределения непрерывной случайной величины может быть задан интегральной функцией распределения
F(y) = P (η <= y) (1)
или плотностью вероятности f(y)= F`(y). Функции F(y1, y2, … , yn) могут быть заданы графически или аналитически. Для получения случайной величины η с функцией распределения F(y) из случайной величины ξ равномерно распределенной на интервале [0,1], используют различные методы, основными из которых являются:
- метод обратной функции
- метод отбора или исключения
- метод композиции и другие
Метод обратной функции.
Если ξ – равномерна распределена на [0,1] случайная величина. Искомая величина η может быть получена с помощью преобразования:
η = F`( ξ ) (2)
Где F` - обратная функция по отношению к функции F.
Действие при таком определении случайной величины η имеем:
P(< η <= y) = P <= ( ξ) <= y = P | ξ <= F(y)| = F (y)
В данной цепочки равенства первое равенство следует из (2), второе из неубывающего характера функции F и F’, третье из равномерного распределения величины ξ.
Для некоторых законов распределения, в том числе для нормального закона, обратная функция F не выражается через известные функции. В этом случае ее можно аппроксимировать с любой нужной точностью, какими-либо известными функциями. Если не удается подобрать единой функции для всего промежутка [0,1], то можно аппроксимировать простыми полиномами по отдельным участкам.
Метод отбора.
Данный метод удобней использовать, если требуемый закон распределения задан плотностью вероятности F(y). В отличие от метода обратной функции метод отбора для получения одного требуемого случайного числа требует не одного равномерного случайного числа, а двух, четырех и более. В этом случае область возможных значений η представляет конечный отрезок (a,b), а плотность вероятности F(y) ограничена ступенчатой кривой:
g1 (y) = fm , a <= y <= b (4)
g1 (y) = 0 , y > b ; y < a
Равномерные на интервале (a,b) и (0, fm) независимые величины можно получить по формулам:
η` = a + ( b - a)* ξ1
ξ` = fm * ξ2
ξ1, ξ2 – равномерно распределенные числа на интервале [0,1];
a,b – границы возможных значений случайной величины η;
fm – максимальное значение функции f(y)
Если ξ` < f(η`) , то η` - принимается в качестве очередной реализации случайной величины η. В противном случае η` отбрасывается и берется следующая пара равномерных случайных чисел. Так процедура повторяется n раз до получения всей последовательности.
Метод композиции.
Метод композиции основывается на представлении плотности вероятности fη(x) по формуле полной вероятности
fη(x) = ∫(x/z) dH(z) (6)
где H(z) = P (η ≤ z) – интегральная функция распределения случайной величины η;
P (x,z) – условная плотность вероятности.
Переходя к дискретной форме, интеграл заменим на сумму, тогда получим
fη(x) = Σ pi* fi(x) (7)
где Σ pi = 1;
f(x) – условная плотность вероятности.
Таким образом, для любой заданной плотности вероятности ее фигура единичной площади, ограниченной осью х и кривой fη(x), разбивается на произвольное число не пересекающихся частей η, с площадями Pi.
Координаты условных плотностей fi(x) получаются формирование (деление на Pi) отрезков вертикальных прямых x = const лежащих в области g1. Имитация случайной последовательности η сводится к имитации случайной величины ξ с плотностями вероятности fi(x) одним из методов рассмотренных ранее.
Содержание исследования.
Исследование производится с целью получения программного датчика случайных чисел, пригодного для моделирования случайной последовательности с заданным законом. Необходимо разработать алгоритм и программу датчика, а затем исследовать свойства выработанной им последовательности. При проведении исследований необходимо:
-
По 20 числам, выведенным на печать, строится статистическая функция распределения F*(y). На этом же графике строится интегральная функция распределения F(y) для заданного закона и приводится сопоставление F*(y) и F(y). Согласие проверяется по критерию Колмогорова
Вычисляется статистика:
Dn = max | F*(y) - F(y) | ,
если гипотеза верна, то статистика Dn . √n имеет и пределы при n – распределении Колмогорова. Для конечных значений n распределения статистика D – получена численными методами и имеется в виде таблиц. Правила принятия и отклонения гипотезы аналогично указанным для критерия X2 Пирсона.
-
Составляется блок схема и программа на ПВМ, в которой предусматривается построение статистического ряда и наличие статистики по критерию Колмогорова, а также оценка математического ожидания и дисперсии.
Порядок проведения работы.
-
Получить у преподавателя задание на моделирование программного датчика случайных чисел с требуемым законом распределения.
-
Разработать алгоритм получения случайных чисел с заданным законом распределения, составить блок – схему и программу исследования.
-
Отладить и решить задачу на ПВМ.
-
Оформить отчет.
Код программы:
Private Sub Command1_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Form1.Cls
List1.Clear
End Sub
Private Sub Command2_Click()
Dim i As Integer, p1 As Integer, p2 As Integer
Dim x As Double, p3 As Integer
Dim Y_1 As Single, Y_2 As Integer, Y_3 As Integer
x = 0.5
For i = 1 To 20
x = Rnd(x)
If x >= 0 And x <= 0.4 Then
p1 = p1 + 1
Y_1 = 2.5 * x
End If
If x >= 0.4 And x <= 0.8 Then
p2 = p2 + 1
Y_2 = 2
End If
If x >= 0.8 And x <= 1 Then
p3 = p3 + 1
Y_3 = 4
End If
Next i
Form1.ScaleLeft = -700
Form1.ScaleTop = -3350
Form1.Line (0.1 * 2000, 0)-(0.2 * 2000, -0.4 * 2000)
Form1.Line (0.2 * 2000, -0.4 * 2000)-(0.2 * 2000, -0.8 * 2000)
Form1.Line (0.2 * 2000, -0.8 * 2000)-(0.4 * 2000, -0.8 * 2000)
Form1.Line (0.4 * 2000, -0.8 * 2000)-(0.4 * 2000, -1 * 2000)
Form1.Line (0.4 * 2000, -1 * 2000)-(2800, -2000)
Form1.Line (0, -0.1 * 2000)-(0.4 * 2000, -0.2 * 2000), RGB(0, 0, 255)
Form1.Line (0.4 * 2000, -0.2 * 2000)-(0.8 * 2000, -0.2 * 2000), RGB(0, 0, 255)
Form1.Line (0.8 * 2000, -0.2 * 2000)-(0.8 * 2000, -0.4 * 2000), RGB(0, 0, 255)
Form1.Line (0.8 * 2000, -0.4 * 2000)-(1 * 2000, -0.4 * 2000), RGB(0, 0, 255)
Form1.Line (1 * 2000, -0.4 * 2000)-(2000, -2800), RGB(0, 0, 255)
Text1 = p1 / 20
Text2 = p2 / 20
Text3 = p3 / 20
List1.AddItem p1 & " " & "точки с вероятностью 0,2"
List1.AddItem p2 & " " & "точки с вероятностью 0,3"
List1.AddItem p3 & " " & "точки с вероятностью 0,5"
Form1.Line (10, -2600)-(10, 400)
Form1.Line (-440, 0)-(3000, 0)
End Sub
Private Sub Command3_Click()
End
End Sub