Московський Державний Авіаційний
Інститут
(Технічний Університет)
Філія "Зліт"
Курсова робота
«Теорема Бернуллі. Закон розподілу Пуассона. Критерій Колмогорова »
Завдання 1. Перевірка здійсненності теореми Бернуллі на прикладі ймовірності проходження струму по ланцюгу
Теорема стверджує, що при великому числі дослідів частота події наближається (точніше - сходиться по ймовірності) до ймовірності цієї події. Вона встановлює факт збіжності за ймовірністю тих чи інших випадкових величин до постійних, не випадковим величинам.
Коротка теорія:
Теорема Я. Бернуллі: при збільшенні кількості дослідів, частота появ подій сходиться за ймовірністю до ймовірності цієї події.
де , - Як завгодно малі позитивні числа.
Ймовірність того, що в n незалежних випробувань, в яких імовірність появи події дорівнює р (0 <р <1), подія наступить рівно до раз (байдуже, в якій послідовності), дорівнює
, Або
де q = 1 - p
Ймовірність того, що в n випробуваннях подія настане:
Проте до разів;
більше до разів;
Проте до разів;
не більше до раз; - знаходяться за формулами:
;
;
;
.
Теорема Я. Бернуллі стверджує стійкість частоти при постійних умовах досвіду. Але при змінних умовах досвіду аналогічна стійкість також існує. Теорема, що встановлює властивість стійкості частот при змінних умовах досвіду, називається теоремою Пуассона.
Схема ланцюга:
Обчислення ймовірності:
Нехай імовірності безвідмовної роботи елементів виглядають наступним чином:
P 1 = 0.5
P 2 = 0.45
P 3 = 0.6
P 4 = 0.9
P 5 = 0.39
P 6 = 0.42
P 7 = 0.6
Текст програми:
Program Shiva;
Uses CRT;
Label Start;
Const
k = 7; n = 100000;
Top = 60; Left = 55; Width = 360; Height = 380;
Type Real = Extended;
Var
GrDriver, GrMode: Integer;
R: Array [1 .. k] Of Record P: Real; Works: Boolean; End;
Fr: Real; j: Byte;
m, i, w: LongInt; Gone: Boolean;
Function Calc: Real;
Var P1, P2, P3, P4: Real;
Begin
Calc: = (R [1]. P + R [2]. PR [1]. P * R [2]. P + R [3]. PR [3]. P *
(R [1]. P + R [2]. PR [1]. P * R [2]. P)) * R [4]. P *
(R [5]. P + R [6]. PR [5]. P * R [6]. P + R [7]. PR [7]. P *
(R [5]. P + R [6]. PR [5]. P * R [6]. P));
End;
Procedure Init_Condit;
Var i: Byte;
Begin
For i: = 1 To k Do Begin
R [i]. Works: = False;
If Random <= R [i]. P Then R [i]. Works: = True;
End;
Gone: = (R [1]. Works Or R [2]. Works Or R [3]. Works)
And R [4]. Works And (R [5]. Works Or R [6]. Works Or R [7]. Works);
End;
Begin
ClrScr; Randomize;
R [1]. P: = 0.5; R [2]. P: = 0.45; R [3]. P: = 0.6; R [4]. P: = 0.9;
R [5]. P: = 0.39; R [6]. P: = 0.42; R [7]. P: = 0.6;
WriteLn; WriteLn ('Розрахункова ймовірність: ', Calc: 0:3); WriteLn;
WriteLn ('np *'); WriteLn; m: = 0; w: = 0;
For j: = 1 To Do 18 Begin
For i: = 1 To Do 1000 Begin
Inc (w);
Init_Condit;
If Gone Then Inc (m);
End; Fr: = m / w;
WriteLn (w: 10, Fr: 15:3);
End;
Repeat Until KeyPressed;
End.
Результати програми:
Розрахункова ймовірність: 0.688
N, чіслоопитов
| p *, частота
|
1000 | 0.675 |
2000 | 0.678 |
3000 | 0.676 |
4000 | 0.680 |
5000 | 0.681 |
6000 | 0.682 |
7000 | 0.684 |
8000 | 0.683 |
9000 | 0.683 |
10000 | 0.684 |
11000 | 0.685 |
12000 | 0.685 |
13000 | 0.685 |
14000 | 0.686 |
15000 | 0.687 |
16000 | 0.687 |
17000 | 0.687 |
18000 | 0.688 |
Перевірка в ручну:
Перший спосіб:
Висновок: при великому числі дослідів частота події наближається (точніше - сходиться по ймовірності) до ймовірності цієї події. Отже, можна зробити висновок, що теорема Бернуллі вірна.
Завдання 2,3. Моделювання дискретної випадкової величини, що має закон розподілу Пуассона. Підтвердження гіпотези про те, що отримана випадкова величина має даний закон розподілу за допомогою критерію Колмогорова.
Закон Пуассона
Розглянемо випадкову величину X, яка може приймати цілі, невід'ємні значення: 0,1,2, ... , M, ...
Кажуть, що ця СВ X розподілена за законом Пуассона, якщо ймовірність того, що вона прийме певне значення т, виражається формулою:
(M = 0,1,2 ...), а - деяка позитивна величина звана параметром закону Пуассона. Ряд розподілу СВ X, розподілений за законом Пуассона, має вигляд:
| 0 | 1 | 2 | ... | m |
| ... |
| | (A / 1!) | (А 2 / 2!) | ... | (A m / m!) | ... |
Цей розподіл залежить від одного параметра а, на малюнку 1 показаний вид розподілу Пуассона при різних а.
Математичне сподівання даного розподілу випадкової величини дорівнює параметру закону Пуассона а: ; Дисперсія також дорівнює цьому параметру: D x = a. Таким чином дисперсія випадкової величини, розподіленої за законом Пуассона дорівнює її математичного сподівання і дорівнює параметру а.
Це властивість застосовується на практиці для вирішення питання, правдоподібна гіпотеза про те, що випадкова величина X, розподілена за законом Пуассона, для цього визначають з досвіду статистичні характеристики: математичне сподівання і дисперсію. Якщо їх значення близькі, то гіпотеза є правдоподібною.
Діскетной називається випадкова величина можливі значення якої є окремі ізольовані числа (тобто між двома можливими сусідніми значеннями немає можливих значень), які ця величина приймає з певними ймовірностями. Іншими словами, можливі значення випадкової величини можна перенумерувати. Число можливих значень дискретної випадкової величини може бути кінцевим або нескінченним (в останньому випадку безліч всіх можливих значень називають рахунковим).
Законом розподілу називають перелік її можливих значень і відповідних їм імовірностей. Текст програми:
Program Puasson_Kolmagor;
Uses CRT, Graph;
Const a = 2.0; d = 8; n = 500; k = d +1; Lkr = 1.2;
Top = 68; Left = 45; Width = 550; Height = 340; Ny = 14;
Type Real = Extended;
Var GrDriver, GrMode, X1, Y1, X2, Y2: Integer;
i, j, w: Word; SumS, SumA, Ran, Dk, Kol: Real;
Xmin, Xmax, Ry, Mx, Dx, Rx, Sx, Ex, Sk, h: Real;
HZoom, VZoom, Lx, Ly: Real; Txt: String [20];
S, AL, AY, Y: Array [0 .. d] Of Real;
X: Array [1 .. n] Of Byte;
Procedure Bue; Far;
Begin
AssignCrt (Output); Rewrite (Output); CloseGraph;
Window (1, 1, 80, 25); ClrScr;
WriteLn ('Programed by Yuri Melnikov RD-2');
WriteLn ('All rights reserved. (C) 2004.');
WriteLn ('Thanks for attention.');
End;
Procedure Pause;
Var TextAtt, i: Byte;
Begin
Delay (1000); While KeyPressed Do ReadKey;
TextAtt: = TextAttr; TextColor (7);
GoToXY (1, 25); For i: = 1 To 5 Do WriteLn;
Write ('Press any key to continue or <ESC> to exit ...');
Repeat Until KeyPressed; If ReadKey = # 27 Then Halt;
TextAttr: = TextAtt; GoToXY (1, 1); ClearDevice;
End;
Function Pwr (x, p: Real): Real; {Зведення в ступінь}
Begin
If x> 0 Then Pwr: = exp (p * ln (x))
Else Pwr: = 0;
End;
Function Fact (x: Word): Real;
{Довідка для Єгорової Т.П. Вважає до 1000!}
Var i: Word; F: Real;
Begin
F: = 1;
If x> 0 Then For i: = 1 To x Do F: = F * i;
Fact: = F;
End;
Function f (m: Word): Real;
Begin
If m> = 0 Then f: = Pwr (a, m) * exp (-a) / Fact (m)
Else f: = 0;
End;
Begin
Assign (Output,''); Rewrite (Output); Randomize; ExitProc: = @ Bue;
DetectGraph (GrDriver, GrMode); InitGraph (GrDriver, GrMode, 'BGI');
SumS: = 0;
For i: = 0 To d Do Begin
S [i]: = f (i); SumS: = SumS + S [i];
End;
For i: = 0 To d Do Begin al [i]: = 0;
For j: = 0 To i Do al [i]: = al [i] + S [j] / SumS;
End;
For w: = 1 To n Do Begin
Ran: = Random;
For i: = 0 To d Do Begin
If al [i]> Ran Then Begin
x [w]: = i; Break;
End;
End;
End; WriteLn; Write ('змодельована');
WriteLn ('послідовність випадкових чисел (з. Пуассона ):');
WriteLn; Mx: = 0;
For i: = 1 To n Do Begin
Write (X [i]: 2, '');
Mx: = Mx + X [i] / n;
End; Pause; Dx: = 0; Sk: = 0;
Xmin: = X [1]; Xmax: = Xmin;
For i: = 1 To n Do Begin
Dx: = Dx + Sqr (x [i]-Mx) / (n - 1);
If Xmin> X [i] Then Xmin: = X [i];
If Xmax <X [i] Then Xmax: = X [i];
End;
Sx: = Sqrt (Dx); WriteLn;
Rx: = d; h: = Rx / k; Ex: = -3;
For i: = 1 To n Do Begin
Sk: = Sk + Sqr (x [i]-Mx) * (x [i]-Mx) / (Dx * Sx * k);
Ex: = Ex + Sqr (x [i]-Mx) * Sqr (x [i]-Mx) / (k * Sqr (Dx));
End;
WriteLn ('Діапазон значень: ', Xmin: 0:3,' - ', Xmax: 0:3);
WriteLn ('Мат. Очікування:', Mx: 0:3);
WriteLn ('Дисперсія:', Dx: 0:3);
WriteLn ('СР кв. Відхилення:', Sx: 0:3);
WriteLn ('Коефіцієнт скошеності:', Sk: 0:3);
WriteLn ('Ексцес:', Ex: 0:3); Pause;
For i: = 1 To n Do Begin
j: = Trunc ((x [i]-Xmin) / h); If j> d Then j: = d;
y [j]: = y [j] + 1 / n;
End; Dk: = 0;
For i: = 0 To d Do Begin ay [i]: = 0; al [i]: = 0;
For j: = 0 To i Do Begin
ay [i]: = ay [i] + y [j];
al [i]: = al [i] + f (j);
End;
If Dk <Abs (ay [i]-al [i]) Then Dk: = Abs (ay [i]-al [i]);
End; Ry: = 0;
For i: = 0 To d Do Begin
If Ry <y [i] Then Ry: = y [i];
End;
HZoom: = Width / Rx; VZoom: = Height / Ry;
WriteLn; WriteLn ('Гістограма змодельованої СВ:');
Lx: = Rx / k; Ly: = Ry / Ny; SetTextStyle (0,1,0);
SetViewPort (Left, Top, Left + Width, Top + Height, False);
For i: = 0 To k Do Begin
X1: = Round (Lx * i * HZoom);
SetColor (7); Line (X1, 0, X1, Height + 5);
Str ((Lx * i + Xmin): 0:2, Txt);
OutTextXY (X1 +4, Height +10, Txt);
SetColor (DarkGray); Line (X1, 0, X1, Height);
End; SetTextStyle (0, 0,0);
For i: = 0 To Ny Do Begin
Y1: = Round (Height-Ly * i * VZoom);
SetColor (7); Line (-5, Y1, Width, Y1); Str (Ly * i: 0:2, Txt);
OutTextXY (-40, Y1-4, Txt);
SetColor (DarkGray); Line (0, Y1, Width, Y1);
Y1: = Round (Height-Ly * (i-0.5) * VZoom);
If i> 0 Then Line (0, Y1, Width, Y1);
End;
SetColor (White); SetFillStyle (8, 7);
For i: = 1 To k Do Begin
X1: = Round ((i-1) * Lx * HZoom-Lx * HZoom * 0.05);
X2: = Round (i * Lx * HZoom-Lx * HZoom * 0.95);
Y1: = Round (Height - y [i-1] * VZoom); Y2: = Height;
Bar3D (X1, Y1, X2, Y2, 0, False);
End;
MoveTo (0, Round (Height-f (0) * VZoom));
For i: = 1 To d Do
LineTo (Round (i * HZoom), Round (Height-f (i) * VZoom));
Line (0, -30, 0, Height +5); Line (0, -28, 2, -15); Line (0, -28, -2, -15);
Line (-5, Height, Width + 30, Height);
OutTextXY (-36, -30, 'f (x)');
OutTextXY (Width +20, Height +5, 'x');
Line (Width + 28, Height, Width + 15, Height-2);
Line (Width + 28, Height, Width + 15, Height +2);
Pause; WriteLn;
Kol: = Dk * Sqrt (n);
WriteLn ('Критерій Колмогорова:'); WriteLn;
WriteLn ('F (x) F ~ (x)'); WriteLn;
For i: = 0 To d Do WriteLn (al [i]: 10:2, ay [i]: 14:2);
WriteLn; WriteLn ('Максимум модуля різниці:', Dk: 0:2);
WriteLn ('Значення лямбда:', Kol: 2:2);
WriteLn ('Лямбда критичне (а = 0.1):', Lkr: 2:2);
Write ('Так як', Kol: 0:2, '');
If Kol <Lkr Then Begin
WriteLn ('<', Lkr: 0:2, 'то розбіжності можна вважати випадковими.');
WriteLn ('Немає підстав відкинути гіпотезу про розподіл');
Write ('даної сукупності за законом Пуассона.');
End;
If Kol> Lkr Then Begin
WriteLn ('>', Lkr: 0:2, 'то розбіжності слід вважати невипадковими.');
WriteLn ('Немає підстав прийняти гіпотезу про розподіл');
Write ('даної сукупності за законом Пуассона.');
End;
Pause;
End.
Результати роботи програми
Змодельована послідовність випадкових чисел (з.Пуассона)
F (x) F ~ (x)
0.14 0.15
0.41 0.45
0.68 0.71
0.86 0.88
0.95 0.95
0.98 0.98
1.00 0.99
1.00 1.00
1.00 1.00
Скористаємося критерієм Колмогорова. В якості міри розбіжності між теоретичним і статистичним розподілами розглядається максимальне значення модуля різниці між статистичної функцією розподілу F * (x) і відповідної теоретичної функцією розподілу F (x).
D = max | F * (x) - F (x) |
D = 0.04
Далі визначаємо величину l за формулою:
,
де n - число незалежних спостережень.
Підставою для вибору в якості міри розбіжності величини D є виняткова простота її закону розподілу. А.Н. Колмогоров довів, що, якою б не була функція розподілу F (x) випадкової велечіни X, при необмеженому зростанні числа незалежних спостереженні n ймовірність нерівності
прагне до межі
Значення ймовірності , Підраховані за формулою наведеною вище занесені в таблицю, по даній таблиці знаходимо ймовірність
P (l) = 0,711.
Це є ймовірність того, що (якщо величина х дійсно розподілена за законом F (x)) за рахунок чисто випадкових причин максимальне розбіжність між F * (x) і F (x) буде не менше, ніж спостерігається.
Немає підстав відкидати гіпотезу про те, що наш закон розподілу є геометричним законом розподілу.
Критерій Колмогорова:
F (x) F ~ (x)
0.14 0.15
0.41 0.46
0.68 0.71
0.86 0.88
0.95 0.95
0.98 0.98
1.00 0.99
1.00 1.00
1.00 1.00
Список використаної літератури
«Теорія ймовірностей» В.С. Вентцель
«Теорія ймовірностей (Завдання і Вправи)» В.С. Вентцель, Л.А. Овчаров
«Довідник з імовірнісним розрахунками».
«Теорія ймовірностей і математична статистика» В.Є. Гмурман
«Керівництво до вирішення завдань з теорії ймовірностей і математичної статистики» В.Є. Гмурман.