Паскаль. Основы программирования

       

Нормальное распределение


Случайная величина X распределена по нормальному закону, если ее плотность вероятности равна

                                

                                 (1)

Для нормального закона распределения:

                     

Функция распределения нормально распределенной случайной величины

                                

                         (2)

Функция F(x) связана с функцией Лапласа

 равенством

Следует вспомнить из предыдущего раздела рекуррентную функцию вычисления функции Лапласа и используя ее составить функцию вычисления нормально распределенной случайной величины:

{    Рекуррентная функция вычисления интеграла вероятностей   }

{ Пределы интегрирования от 0 до x. Функция Муавра-Лапласа }

Function FF(x : real) : real;

     var

        n : integer;



        u, I : real;

     begin

        if

x > 5

          then FF := 1

          else if x < -5

                    then

FF := -1

                    else

                       begin

                          u := x; n := 0; I := 0;

                          repeat

                              I := I + u; n := n + 1;

                             u := -u*(x*x*(2*n - 1)/(2*n*(2*n + 1)))

                          until

abs(u) < 0.00001;

                          FF := 2*I/sqrt(2*Pi)

                       end

     end;

                               

                            (3)

Для нормальной распределенной случайной величины X верны формулы

                     

 -              (4)

вероятность того, что X примет значения от

 до
;

                                     

-                              (5)

вероятность отклонения X от a

по модулю меньше, чем на

;

                                

-                     (6)

правило "трех сигм".

Примеры

1. Автомат штампует детали. Контролируется длина детали X, которая распределена нормально с математическим ожиданием (проектная длина), равным 50 мм. Известно, что средняя квадратическая ошибка равна 3.6 мм.
Найти вероятность того, что длина наудачу взятой детали находится в границах а) от 55 мм до 68 мм; б) от 32 мм до 40 мм.

Математическое решение задачи

По условию

 По формуле (4) получаем:

а)


.

б)


Для составления программы достаточно использовать функцию Муавра-Лапласа.

Программа

Program Normal1;

   uses WinCrt;

   var

     a, a1, b, c, PP : real;

{----------------------------------------------------------------------------------------}

{ Функция Муавра-Лапласа }

   Function FF(x : real) : real;

      var

        n : integer;  u, I : real;

      begin

        if x >= 5

          then FF := 1

          else if x <= -5

                    then FF := -1

                    else

                       begin

                          u := x; n := 0; I := 0;

                          repeat

                              I := I + u; n := n + 1;

                             u := -u*(x*x*(2*n - 1)/(2*n*(2*n + 1)))

                          until abs(u) < 0.00001;

                          FF := 2*I/sqrt(2*Pi)

                       end

      end;

{----------------------------------------------------------------------------------------}

   begin

       write('Введите математическое ожидание (проектную длину) a ');

       readln(a);

       write('Введите левую границу интервала '); readln(a1);

       write('Введите правую границу интервала '); readln(b);

       write('Введите среднюю квадратическую ошибку '); readln(c);

       pp := 0.5*(FF((b - a)/c)-FF((a1 - a)/c));

       write('Вероятность того, что деталь находится в ');

       writeln('заданных границах равна ', pp:1:6)

   end.

2. Автомат изготовляет шарики для подшипников. Шарик считаем принятым, если отклонение X диаметра шарика от заданного размера по абсолютной величине меньше 0.7 мм. Считается, что X распределена нормально со средним квадратическим отклонением
= 0.4 мм. Найти, сколько будет годных шариков среди 50 изготовленных.

Решение

По условию задачи отклонение X шарика от заданного размера a есть случайная величина.


Следовательно, M(X) = 0. Допустимая ошибка отклонения
мм, а средняя квадратическая ошибка 0. 4 мм. Найдем вероятность того, что наугад рассмотренный шарик будет принят, т.е. для него X не превзойдет по абсолютной величине
, по формуле (5).



Тогда из 50 шариков в среднем будет принято 50
P(|X| < 0.7).

Программа

Program Normal2;

   uses WinCrt;

   var

     e, c : real;

     n    : integer;

{----------------------------------------------------------------------------------------}

{ Функция Муавра-Лапласа }

   Function FF(x : real) : real;

      var

         n     : integer;

         u, I : real;

      begin

          if x >= 5

          then FF := 1

             else if x <= -5

                      then FF := -1

                      else

                         begin

                             u := x; n := 0; I := 0;

                             repeat

                                I := I + u;

                              n := n + 1;

                               u := -u*(x*x*(2*n - 1)/(2*n*(2*n + 1)))

                           until abs(u) < 0.00001;

                           FF := 2*I/sqrt(2*Pi)

                         end

      end;

{----------------------------------------------------------------------------------------}

   begin

      writeln('Введите отклонение X диаметра шарика');

      write('от заданного размера по абсолютной величине '); readln(e);

      write('Введите среднее квадратическое отклонение '); readln(c);

      write('Введите число изготовленных шариков '); readln(n);

      n := Round(FF(e/c)*n);

      writeln('Число годных шариков равно ', n)

   end.

3. Случайная величина X распределена нормально со средним квадратическим отклонением
= 5 мм. Найти длину интервала, симметричного относительно M(X), в который с вероятностью 0.990 попадает X  в результате испытания.

Решение

В условии задачи дано, что
= 5 мм, а P(|X - a| <
) = 0.990. Необходимо найти
. Тогда
 - длина интервала.


По формуле (5) получаем


Теперь остается найти аргумент функции Муавра-Лапласа. Для этого достаточно составить следующую небольшую процедуру:

{ Процедура нахождения аргумента функции Муавра-Лапласа }

      Procedure

Argument(PP : real; var x : real);

           begin

              x := 0;

              repeat

                 x := x + 0.0001

              until FF(x) >= PP

           end;

Процедуре организована с помощью цикла с последующим условием repeat

... until ... , в котором заведомо установлен шаг - 0.0001 для поиска аргумента. Однако этот шаг можно изменить или вводить в процедуру по усмотрению пользователя.

Тогда процедуру можно построить так:

              { Процедура нахождения аргумента функции Муавра-Лапласа }

      Procedure

Argument(PP, eps : real; var x : real);

           begin

              x := 0;

              repeat

                 x := x + eps

              until FF(x) >= PP

           end;


Содержание раздела