Задание 1. Проверка выполнимости теоремы Бернулли на примере вероятности прохождения тока по цепи

 

Теорема утверждает, что при большом числе опытов частота события приближается (точнее - сходится по вероятности) к вероятности этого события. Она устанавливает факт сходимости по вероятности тех или иных случайных величин к постоянным, не случайным величинам.

Краткая теория:

Теорема Я. Бернулли: при увеличении количества опытов, частота появлений событий сходится по вероятности к вероятности этого события.

 

 

где , - сколь угодно малые положительные числа.

Вероятность того, что в n независимых испытаний, в которых вероятность появления события равна р(0<р<1), событие наступит ровно к раз(безразлично, в какой последовательности), равна

 

, или

 

где q=1-p

Вероятность того, что в n испытаниях событие наступит:

a) менее к раз;

b) более к раз;

c) не менее к раз;

d) не более к раз; - находятся по формулам:

 

a) ;

b) ;

c) ;

d) .

 

Теорема Я. Бернулли утверждает устойчивость частоты при постоянных условиях опыта. Но при изменяющихся условиях опыта аналогичная устойчивость также существует. Теорема, устанавливающая свойство устойчивости частот при переменных условиях опыта, называется теоремой Пуассона.

 

Схема цепи:

 

         
   

 

 


Вычисление вероятности:

 

Пусть вероятности безотказной работы элементов выглядят следующим образом:

P1 = 0.5

P2 = 0.45

P3 = 0.6

P4 = 0.9

P5 = 0.39

P6 = 0.42

P7 = 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].P-R[1].P*R[2].P+R[3].P-R[3].P*

(R[1].P+R[2].P-R[1].P*R[2].P))*R[4].P*

(R[5].P +R[6].P-R[5].P*R[6].P+R[7].P-R[7].P*

(R[5].P+R[6].P-R[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('   n        p*'); WriteLn; m:= 0; w:= 0;

For j:= 1 To 18 Do Begin

     For i:= 1 To 1000 Do 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.

Результаты программы:

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: