Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л р 1-Датчики випадкових чисел.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
443.9 Кб
Скачать

Лабораторна робота №1

Тема: Дослідження статистичних характеристик датчиків випадкових величин з різними законами розподілу.

Мета роботи: набуття початкових навичок збору, групування, попередньої обробки та графічного представлення статистичних даних.

Теоретичні відомості

У даній лабораторній роботі наводяться довідникова інформація відносно алгоритмів моделювання деяких неперервних та дискретних випадкових величин. При відборі алгоритмів переваги віддавалась їх простоті програмної реалізації.

Моделюванням випадкової величини називають процес одержання на ЕОМ послідовності її вибіркових значень. Випадкові величини звичайно моделюють за допомогою перетворень одного чи декількох незалежних значень випадкових величин, рівномірно розподілених в інтервалі (0; 1), позначених через  з різними індексами 1, 2, …,к,… У системі математичного забезпечення практично будь-якої ЕОМ є стандартна підпрограма моделювання ( - << датчик >> реалізації псевдовипадкової величини з рівномірним розподілом на інтервалі (0; 1).

Наведемо одну з найпростіших реалізацій алгоритму формування псевдо випадкової послідовності чисел, яка широко використовується в технічних засобах обробки сигналів [ ]. Цей алгоритм має наступні властивості:

  1. Алгоритм реалізується на будь-якїй ЕОМ, яка дозволяє зі словами довжиною до 32 біт, тобто з позитивними цілими числами від 0 до 231- 1.

  2. Алгоритм легко запускається, починаючи з будь-якої позиції послідовності.

  3. Відліки послідовності та її сегментів досить великої довжини мають приблизно рівномірний розподіл в інтервалі від нуля до одиниці.

  4. Відліки є практично незалежними, а спектр послідовності – рівномірним.

  5. Період послідовності (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 аргумент (К), природньо, не повинний змінюватися при її виконанні. Переваги іншого варіанта в порівнянні з першим полягають у тому, що:

  1. немає необхідності приймати припущення про ті, що проміжні перемінні між звертаннями до підпрограми залишаються незмінними;

  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

  1. R (J) =RANDOM (K)

PRINT 2, R

  1. 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. Алгоритм віднімання

Нижче, у завданнях для виконань, наводяться алгоритми моделювання найбільш поширених неперервних та дискретних розподілів.