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


           

отсюда вытекает, что наше произведение




отсюда вытекает, что наше произведение (абсолютно) сходится.

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

Используя формулу
 составим функцию вычисления
 Для этого найдем, что n-й член бесконечного произведения

  будет равен
, а первый член должен быть равен
 тогда, при увеличении n можно получать соответствующие значения гамма-функции.

Теперь надо оставить функцию для вычисления степени действительного положительного аргумента a с любым действительным показателем x. Для этого достаточно воспользоваться соотношением:
 где a > 0.

Function

Extent_real(a, x : real) : real;

      begin

         Extent_real := exp(x*ln(a))

      end;

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

     Function G(x, eps : real) : real;

           var

               n      : longint;

               g1, gg : real;

           begin

               n := 1; gg := Extent_real((n + 1)/n, x)/(x*(x + n));

               repeat

                   n := n + 1;

                   gg := gg*n*Extent_real((n + 1)/n, x)/(x + n);

                   n := n + 1;

                   g1 := gg*n*Extent_real((n + 1)/n, x)/(x + n)

               until abs(g1 - gg) < eps;

               G := gg

           end;





Программа

Program

Gamma_function;

     uses WinCrt;

     var

         x, eps : real;

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

{ Функция вычисления порядка - количества знаков после запятой }

     Function t(eps : real) : integer;

           var

               k : integer;

           begin

               k := -1;

               repeat

                   eps := eps*10;

                   k := k + 1

               until eps > 1;

               t := k

           end;

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

     Function Extent_real(a, x : real) : real;


Содержание  Назад  Вперед