
- •Алгоритм
- •Завдання для виконання
- •1.Нормальний розподіл
- •Алгоритм а2
- •2.Логнормальний розподіл
- •Експоненційний розподіл
- •Рівномірний розподіл
- •Розподіл хі-квадрат
- •Гамма-розподіл
- •Бета-розподіл
- •Дискретний рівномірний розподіл
- •Розподіл Пуассона
- •Зміст та порядок виконання роботи
- •Визначення закону розподілу
- •1.1.Побудова статистичних розподілів.
- •1.2. Побудова гістограми
- •1.3.Числові характеристики статистичного розподілу
- •Обчислення теоретичних частот
Лабораторна робота №1
Тема: Дослідження статистичних характеристик датчиків випадкових величин з різними законами розподілу.
Мета роботи: набуття початкових навичок збору, групування, попередньої обробки та графічного представлення статистичних даних.
Теоретичні відомості
У даній лабораторній роботі наводяться довідникова інформація відносно алгоритмів моделювання деяких неперервних та дискретних випадкових величин. При відборі алгоритмів переваги віддавалась їх простоті програмної реалізації.
Моделюванням випадкової величини називають процес одержання на ЕОМ послідовності її вибіркових значень. Випадкові величини звичайно моделюють за допомогою перетворень одного чи декількох незалежних значень випадкових величин, рівномірно розподілених в інтервалі (0; 1), позначених через з різними індексами 1, 2, …,к,… У системі математичного забезпечення практично будь-якої ЕОМ є стандартна підпрограма моделювання ( - << датчик >> реалізації псевдовипадкової величини з рівномірним розподілом на інтервалі (0; 1).
Наведемо одну з найпростіших реалізацій алгоритму формування псевдо випадкової послідовності чисел, яка широко використовується в технічних засобах обробки сигналів [ ]. Цей алгоритм має наступні властивості:
Алгоритм реалізується на будь-якїй ЕОМ, яка дозволяє зі словами довжиною до 32 біт, тобто з позитивними цілими числами від 0 до 231- 1.
Алгоритм легко запускається, починаючи з будь-якої позиції послідовності.
Відліки послідовності та її сегментів досить великої довжини мають приблизно рівномірний розподіл в інтервалі від нуля до одиниці.
Відліки є практично незалежними, а спектр послідовності – рівномірним.
Період послідовності (106 відліків) є достатнім для більшості технічних застосувань.
Алгоритм
Даний алгоритм належить до множин алгоритмів послідовностей на основі обчислення класів відрахувань. Властивості таких послідовностей описані в [1]. У розглянутому тут окремому випадку цілі числа формуються за рекурентною формулою
In+1=(J In+1)mod M, n=1, 2, … , M-1..... (A.1)
Потім послідовність цілих чисел нормується для одержання значень в інтервалі від 0 до 1. Нижче розглядається початкове значення I0.
Очевидно, що період послідовності (А.1) не може бути більше М. Відповідно до [1] період дорівнює М, зокрема тоді, коли
J=4K+1 і M=2L, (А. 2)
де К и L – такі цілі числа, що М>J. Найбільше значення In у (А. 1) дорівнює М-1, тому для формування по (А. 1) чисел, тільки менших 231, необхідно, щоб
J(M-1)+1<231, чи (4K+231)/(4K+1)>2L, (A. 3)
Таким чином, (А. 3) установлює співвідношення між J і M у (А. 1). Відзначимо, що при малому початковому значенні I0 (А. 1) сегмент, що починається з нього, є послідовністю монотонно зростаючих чисел доти, поки J In+1 не стані більше М. Наприклад, у найпростішому випадку при J=1 і I0=0 послідовність має вид 0, 1, 2, … , М-1. Таким чином, послідовність стає випадково. при великих значеннях J.
Нехай мінімальний період послідовності дорівнює 106, тоді L=20 і з (А. 3) найбільше можливе значення K=511. Звідси для (А. 1) маємо
M=220=1048576, J=4(511)+1=2045 (A. 4)
Крім цього, виберемо (довільно) I0=12357, (A. 5)
тоді перші 70 цілих чисел
104242 209405 128452 899255 143046 894113 620216 95291 73242 160261
|
313963 414218 540341 822748 1024943 793118 613337 883536 882099 578034
|
325824 874979 846818 603777 953588 827815 177270 134673 341736 334379 |
464321 461400 543835 509114 784677 480012 758431 679374 498505 133504 |
464321 461400 543835 509114 784677 480012 758431 679374 498505 133504 |
760775 976150 632625 201352 318027 1028970 679829 439356 445839 679294 |
746668 786623 823918 723049 248096 800195 887106 901965 528212 841607
|
Відзначимо, що всі цілі числа лежати в інтервалі від 0 до 1048576 і виявляється, що ця коротка послідовність, принаймні, не має небажаних властивостей. Оскільки в звичайній програмі побудова випадкових чисел числа формуються в інтервалі від 0 до 1, можна задати n-й відлік формулою
Rn=(In+1)/(M+1) (A. 6)
так, щоб усі випадкові числа знаходилися в цьому інтервалі.
На основі співвідношень (А. 1), (А. 4) – (А. 6) можна написати підпрограму формування I1, I2, … , In..... При практичній реалізації цієї програми виникає проблема забезпечення автоматичної ініціалізації. Схема ініціалізації обов'язково залежить від типу ЕОМ. Однак для більшості ЕОМ працездатною є версія 1:
FUNCTION RANDOM (X)
IF (INIT.EQ.12357) GO TO 1
INIT= 12357
I=INIT
1 I=2045*I+1
I=I-(I/1048576)*1048576
RANDOM=FLOAT(I+1)/1048577.0
RETURN
END
Відзначимо, що під час завантаження даної програми внутрішня змінна INIT не винна дорівнювати 12357, а в інтервалах між викликами програми як INIT, так і I не повинні змінюватися. Початкова установа I=INIT забезпечує, як було описано вище, початок випадкової послідовності. У даному варіанті алгоритму Х – фіктивна змінна.
Якщо не потрібна автоматична ініціалізація чи вона винна бути змінною, те становить інтерес версія 2:
FUNCTION RANDOM (I)
I=2045*I+1
I=I-(I/1048576)*1048576
RANDOM=FLOAT(I+1)/1048577.0
RETURN
END
У цій версії І змінюється тільки при ініціалізації, коли встановлюється її початкове значення. Наприклад, для установи початкового значення I=12357 і формування перших двох випадкових чисел R1 і R2 можна використовувати припущення
K=12357
R1=RANDOM (K).
R2=RANDOM (K).
При звертанні до підпрограми RANDOM у версії 2 аргумент (К), природньо, не повинний змінюватися при її виконанні. Переваги іншого варіанта в порівнянні з першим полягають у тому, що:
немає необхідності приймати припущення про ті, що проміжні перемінні між звертаннями до підпрограми залишаються незмінними;
ініціалізацію програм можна здійснювати в основній програмі довільним числом в інтервалі від 0 до 1048575.
До недоліків відноситься те, що користувачу необхідно пам'ятати про правильну ініціалізацію I (чи еквівалента I в основній програмі) в інтервалі від 0 до 1048575 і про те, що між послідовними викликами програм I не повинно змінюватися.
У прикладі програми, що приводитися нижче, версії 2 розраховані перші 70 випадкових чисел відповідно з визначеними вище даними. Оскільки в даному прикладі початкове значення I=12357, у результаті отримані ті ж числа, що й у приведеному вище прикладі версії 1:
PROGRAM VERS2(INPUT, OUTPUT)
C – PRINT 70 RANDOM NUMBERS.
DIMENSION R(70)
K=12357
DO 1 J=1, 70
R (J) =RANDOM (K)
PRINT 2, R
FORMAT(7F8.6)
STOP
END
C
FUNCTION RANDOM (I)
I=2045*I+1
I=I-(I/1048576) *1048576
RANDOM=FLOAT(I+1)/1048577.0
RETURN
END
/LGO
.099414 .199705 .122502 .857597 .136420 .852693 .591484 .090877 .069850 .152838
|
.299419 .395030 .515310 .784634 .977466 .756376 .584924 .842606 .841235 .551257
|
.310731 .834445 .807589 .575788 .909412 .789466 .169059 .128435 .325905 .318828
|
.442812 .440026 .518642 .485529 .748327 .457776 .723296 .647902 .475414 .127320 |
.548520 .851800 .621811 .906695 .327288 .150114 .140660 .958640 .216346 .368044
|
.725532 .930929 .603319 .192025 .303295 .981302 .648336 .419003 .425186 .647826 |
.712078 .750182 .758750 .689554 .236604 .763126 .846010 .860181 .503743 .802619 |
Відзначимо ще раз, що в іншому варіанті незалежно від початкового значення I період випадкової послідовності дорівнює 1048576.
Щодо інших датчиків випадкових величин, те стандартним методом моделювання непрерервної випадкової величини з функцією розподілу F(x), коли існує зворотна до неї F-1(x), є використання алгоритму виду
=F-1(). (1.2.1)
Цей алгоритм можна використовувати в тих випадках, коли існує аналітичне вираз для F-1(x) або в математичному забезпеченні є стандартна процедура, що обчислює цю функцію.
Для дискретної випадкової величини із законом розподілу pk=P{=xk}, k=0,1, 2,…,універсальний алгоритм реалізує <<метод віднімання>> (рис. 1.8). Реалізація цього алгоритму припускає наявність у пам'яті ЕОМ усього набору чисел pk, k=0,1, 2,…
Рис.1.8. Алгоритм віднімання
Нижче, у завданнях для виконань, наводяться алгоритми моделювання найбільш поширених неперервних та дискретних розподілів.