Міністерство Освіти Республіки Таджикистан
Таджицький Технічний Університет
імені М.С. Осімі
Кафедра «АСОІ»
Лабораторна робота № 1
На тему: Моделювання датчиків випадкових чисел із заданим законом розподілу
Виконала:
ст-т. 3-го курсу гр. 2202 Б2
Прийняв: викладач кафедри
Лі І.Р.
Душанбе-2010
Лабораторна робота № 2
Моделювання датчиків випадкових чисел із заданим законом розподілу
I Мета роботи
Метою роботи є:
Практичне освоєння методів моделювання випадкових чисел із заданим законом розподілу
Розробка і моделювання на ПЕОМ датчика випадкових чисел з конкретним законом розподілу
Перевірка адекватності отриманого датчика
II Теоретичні відомості
1. Основні методи моделювання випадкових послідовностей із заданим законом розподілу
При дослідженні та моделюванні різних складних систем в умовах дії перешкод виникає необхідність у використанні датчиків випадкових чисел із заданим законом розподілу. Вихідним матеріалом для цього є послідовність x 1, x 2 .... Xn з рівномірним законом розподілу в інтервалі [0,1]. Позначимо випадкову величину, розподілену рівномірно через ζ (ксі).
Тоді рівномірно-розподілені випадкові числа будуть представляти собою незалежні реалізації випадкової величини ζ, які можна отримати за допомогою стандартної функції RND (Ζ) - програмно реалізованої на ПЕОМ у вигляді генератора випадкових чисел з рівномірним законом розподілу в інтервалі [0,1]. Потрібно забрати послідовність y 1, y 2, .. yn незалежних реалізацій випадкової величини η, розподілених по заданому закону розподілу. При цьому закон розподілу неперервної випадкової величини може бути заданий інтегральної функцією розподілу:
F (y) = P (ksi y) (1)
або щільністю ймовірності
f (y) = F '(y) (2)
Функції f (y) і F (y) можуть бути задані графічно або аналітично.
Для отримання випадкової величини η з функцією розподілу F (y) з випадкової величини ζ, рівномірно-розподіленого на інтервалі [0,1], використовуються різні методи. До основних методів моделювання випадкових чисел із заданим законом розподілу відносяться:
- Метод зворотної функції
- Метод відбору або виключення
- Метод композиції.
2. Метод зворотної функції
Якщо ζ-рівномірно-розподілена на інтервалі [0,1] випадкова величина, то шукана випадкова величина може бути отримана за допомогою перетворення:
η = F -1 (ζ) (3)
Де F -1 (ζ) - обернена функція по відношенню до функції розподілу F (ζ)
F (y)
1
ζ
0 η y
Рис 1 Функція розподілу F (ζ)
Дійсно, при такому визначенні випадкової величини η маємо:
P (η y) = P {F -1 (ζ) y} = P {ζ F (y)} = F (y) (4)
У даній ланцюжку рівностей перші рівність випливає з (3), друге з неспадними характеру функцій F (ζ) і F -1 (ζ) і третє з рівномірного в інтервалі [0,1] розподілу величин ζ.
Таким чином, якщо задана функція розподілу F (y), то для отримання випадкової послідовності з таким розподілом необхідно знайти її зворотну функцію.
Для знаходження оберненої функції можна використовувати два методи: аналітичний та графічний.
3.Метод відбору або виключення
Даний метод зручніше використовувати, якщо потрібний закон розподілу заданий щільністю ймовірності f (y). На відміну від методу зворотного функції метод відбору або виключення для отримання одного необхідного випадкового числа вимагає не одного рівномірно-розподіленого випадкового числа, а двох, чотирьох, шести чи більше випадкових чисел. У цьому випадку область можливих значень η представляє кінцевий відрізок (a, b), а щільність ймовірності f (y) обмежена зверху значенням fmax (Рис.7). Тоді область значень η * і ζ * можна обмежити ступінчастою кривої:
0, якщо y <a
g (y) = fmax, якщо a y b (25)
0, якщо y> b
Потім беруться за допомогою генератора випадкових чисел (RND (ζ)) два рівномірно-розподілених числа ζ 1 і ζ 2, за якими визначаються рівномірні на інтервалі [a, b] незалежні величини:
η '= A + (ba) * ζ 1
ζ '= fmax * ζ 2 (26)
Де a, b - межі можливих значень випадкової величини η,
fmax - максимальне значення функції f (y) (Рис.7)
f (y) g (y)
fmax
f (y)
ζ
a η 'b
Рис.7 Задана щільність ймовірності
Якщо ζ ' f (η '), то η' приймається як черговий реалізації випадкової величини η. В іншому випадку η 'відкидається і береться наступна пара рівномірно-розподілених випадкових чисел ζ 1 і ζ 2. Така процедура повторюється до тих пір, поки ми не отримаємо потрібної кількості випадкових чисел із заданою щільністю ймовірності.
4. Метод композиції
Метод композиції грунтується на поданні щільності ймовірності f η (x) за формулою повної ймовірності:
f η (x) = (27)
Де H (z) = P (ζ z) - інтегральна функція розподілу випадкової величини ζ;
P (x / z) - умовна щільність ймовірності.
Переходячи до дискретної формі, інтеграл замінюється на суму і тоді отримуємо
f η (x) = P j * f j (x) (28)
де P j = 1 (29)
f j (X)-умовна щільність ймовірності
Таким чином, для будь-якої заданої щільності ймовірності її фігура одиничної площі, обмеженої віссю x і кривою f η (x), розбивається на довільне число простих не пересічних частин g j (i = 1, k), з площами P j (j = 1 , k), (Рис.8)
Ріс.8Разбівка щільності ймовірності на окремій ділянці
f η (x)
g 1 (Р 1)
g 2 (Р 2) g 3 (Р 3)
x
g 1 (Р 1)
x
Рис. 9 Умовні щільності
ймовірності
g 2 (Р 2)
x
g 3 (Р 3)
x
Умовні щільності ймовірності мають вигляд (Рис.9)
Для отриманих умовних щільностей ймовірності одним з попередніх методів визначаються випадкові послідовності, які в сумі дадуть необхідну випадкову послідовність із заданою щільністю ймовірності.
5. Оцінка закону розподілу
Для отриманої випадкової послідовності y 1, y 2, ..., y n із заданим законом розподілу необхідно провести оцінку відповідності заданого закону розподілу, який реалізує змодельований датчик випадкових чисел. Тому для послідовності y 1, y 2, ..., y n будується статистична функція розподілу
F * (y) (Мал. 10). На цьому ж графіку будується інтегральна функція розподілу F (y) для заданого закону розподілу і виробляється зіставлення F * (y) і F (y). Згода закону перевіряється за критерієм Колмогорова. Для цього обчислюється статистика:
Ді = max F * (y) - F (y) (30)
Для кінцевих рішень і розподілу статистики Ді отримані порогові значення у формі таблиць (Таблиця 1.). З цієї таблиці для заданих обсягів послідовності і і значенням статистики Ді визначається рівень значимості .
Якщо гіпотеза вірна то статистика Ді * має в межі при n розподіл Колмогорова і квантів рівня P = (1-2) близькі до 1. Це означає, що отриманий генератор випадкових чисел виробляє послідовність із заданим законом розподілу. Якщо значення статистики Ді не потрапляють в порогові значення, то такий генератор не годиться для користування.
F (y)
F (y) 1
F * (y)
0.5 D n {
y
y 1 y 2 y 3 y 4 ... .... y n-1 y n
Ріс.10Оценка розподілу
III Зміст дослідження
Дослідження, яке проводиться в даній роботі, полягає в отриманні програмного датчика випадкових чисел, придатного для моделювання випадкової послідовності з заданим законом розподілу. При цьому необхідно розробити алгоритм і програму датчика, а потім досліджувати властивості виробленої ним послідовності. При проведенні досліджень необхідно:
1. За двадцяти числах (n = 20) виведеним на друк побудувати статистичну функцію розподілу F * (y) (рис.10) На цьому ж графіку побудувати інтегральну функцію розподілу F (y) для заданого викладачем закону розподілу. Зіставивши значення F * (y) і F (y), обчислити статистику Ді (30).
2. Скласти блок-схему і програму для ПЕОМ, в якій слід передбачити побудову статистичного ряду і обчислення статистики Ді за критерієм Колмогорова.
3. По таблиці порогових значень статистики Ді зробити оцінку розподілу.
4. Для отриманої послідовності зробити оцінку математичного сподівання, дисперсії, середньоквадратичного відхилення.
Блок-схема генератора
Інтерфейс програми:
Лістинг програми:
Private Sub Command1_Click ()
Dim n As Integer
Dim p1, p2 As Integer
Dim Y () As Variant, X As Double
p1 = 0: p2 = 0: m = 0: d = 0
List1.Clear
Randomize
X = 0.5
n = Val (Text1.Text)
ReDim Y (n) As Variant
For i = 1 To n
X = Rnd (X)
List1.AddItem ("x (" + Str (i) + ") =" + Str (X))
If X <0.7 Then
p1 = p1 + 1
Y (i) = 2
m = m + Y (i)
List1.AddItem ("y (" + Str (i) + ") =" + Str (Y (i)))
Else
p2 = p2 + 1
Y (i) = 10 * X - 5
m = m + Y (i)
List1.AddItem ("y (" + Str (i) + ") =" + Str (Y (i)))
End If
Next i
List1.AddItem ("кол. Точок з вер-ю 0.7: p1 =" + Str (p1))
List1.AddItem ("кол. Точок з вер-ю 0.3: p2 =" + Str (p2))
List1.AddItem ("ІМОВІРНОСТІ:")
List1.AddItem ("0.4 <= x <0.7 --- 0" + Str (p1 / n))
List1.AddItem ("0.7 <= x <= 1 --- 0" + Str (p2 / n))
m = m / n
List1.AddItem ("мат очікування =" + Str (m))
For i = 1 To n
d = d + (Y (i) - m) ^ 2
Next i
d = d / (n - 1)
b = Sqr (d)
List1.AddItem ("діссперсія =" + Str (d))
List1.AddItem ("сререднекв вимк =" + Str (b))
'Побудова інтегральної функції
Picture 1. Scale (-2, 11) - (11, -2)
Picture1.Line (0, -2) - (0, 11)
Picture1.Line (-2, 0) - (11, 0)
Picture1.PSet (-1, 11)
Picture1.Print ("f (x)")
Picture1.PSet (10.5, -0.3)
Picture1.Print ("x")
Picture1.PSet (-0.7, 4)
Picture1.Print ("0.4")
Picture1.PSet (-0.7, 7)
Picture1.Print ("0.7")
Picture1.PSet (-0.7, 10)
Picture1.Print ("1")
Picture1.PSet (2, -0.3)
Picture1.Print ("2")
Picture1.PSet (5, -0.3)
Picture1.Print ("5")
For i = 0 To 11 Step 0.001
If i <2 Then
l = 4
Else
If i <5 Then
l = (0.1 * i + 0.5) * 10
Else
l = 10
End If
End If
Picture1.PSet (i, l)
Next i
Picture1.Line (2, 4) - (2, 7)
'Побудова зворотної функції
Picture2.Scale (-2, 11) - (11, -2)
Picture2.Line (0, -2) - (0, 11)
Picture2.Line (-2, 0) - (11, 0)
Picture2.PSet (-1, 11)
Picture2.Print ("x")
Picture2.PSet (10.5, -0.3)
Picture2.Print ("f (x)")
Picture2.PSet (-0.7, 2)
Picture2.Print ("2")
Picture2.PSet (-0.7, 5)
Picture2.Print ("5")
Picture2.PSet (4, -0.3)
Picture2.Print ("0.4")
Picture2.PSet (7, -0.3)
Picture2.Print ("0.7")
Picture2.PSet (10, -0.3)
Picture2.Print ("1")
For i = 4 To 10 Step 0.001
If i <7 Then
l = 2
Else
l = i - 5
End If
Picture2.PSet (i, l), vbRed
Next i
Picture2.Line (4, 0) - (4, 2), vbRed
Picture2.Line (10, 5) - (10, 11), vbRed
End Sub