Гамма-функция точно определяется по формуле
, х>0. Для гамма-функции справедливы соотношения Г(х+1)=х Г(х); (*) Г(1) = 1; Г(0,5)= ; Г(n+1)= n!, n= 0,1,2,...; Г(х) Г(-х) = -p /(х sin p x). (**) Рассчитывают с использованием формулы Стирлинга или на основе аппроксимации. Для x > -18 с погрешностью порядка 1Е-05 гамма-функция может быть вычислена на основе 20-кратного преобразования следующим образом: z=21 + x; применения формулы Стирлинга . последовательного уменьшения значения z на единицу до значения х и вычислений соответствующих значений гамма-функции по формуле Г(z) =Г(z+1)/ z. Преобразование обеспечивает вычисления для отрицательных чисел x и с высокой точностью при их малых значениях. Пример программной реализации метода: 20 CLS: INPUT "ВВЕДИТЕ x= "; Z: x = Z 30 FOR I = 1 TO 20 40 Z = Z*(x+I): NEXT I 50 B = x + 21 60 G=EXP(B*(LOG(B)-1)+1/12/B)*SQR(2*3.141519/B)/Z 70 PRINT "ЗНАЧЕНИЕ Г(x)="G 80 END
Гамма-функция на основе коррекции формулы Стирлинга определяется по формуле , где x > 1.0; , где a1= 12; a2= 288; a3= -139/51840; a4= 571/2488320. При 0<x<1 значение Г(x) с целью повышения точности находится с использованием формулы (*) Г(x) = Г(x+1)/x. Если x<0, то гамма-функция вычисляется на основе формулы (**) как Г(x) =-p/(z Г(z)sin pz), где z=abs(x). Ниже приведен пример программы на основе коррекции формулы Стирлинга: input "x";x if x>1 then z=x:gosub pp:goto kon if x>0 then z=x+1:gosub pp:g3=g3/x:goto kon if x<=-1 then z=abs(x):gosub pp:goto 10 if x<0 then z=abs(x)+1:gosub pp:z=z-1:g3=g3/z 10 g3=-3.141592/z/sin(3.141592*z)/g3 goto kon pp: hk=1+1/12/z+1/(288*z^2)-139/(51840*z^3)+571/(2488320*z^4) g3= SQR(2*3.141592/z)*EXP(-z)*z^z*hk return kon: print "Γ("x")= "g3 end На основе аппроксимации определение Г(z+1) для значений z от 0 до 1 может производится с использованием степенного полинома , где b1= -57719165, b2= 98820589, b3= -89705694, b4= 91820688, b5= -75670408, b6= 48219934, b7= -19352782, b8=3586835. Для расчета гамма-функции по аппроксимации необходимо вычислить гамма-функцию от абсолютной величины дробной части заданного аргумента и затем на основе использования выражения (*) и, при необходимости, выражения (**) найти значение гамма-функции исходного числа. 7.Методы сортировки чисел. Сортировка по индексам При обработке числовой или символьной информации может требоваться или быть эффективна ее предварительная сортировка. Наиболее часто используются следующие методы сортировки: по индексам, BUBBLE ("пузырька") и SHELL (Шелла). Наиболее простой из них – первый, наиболее эффективный в общем случае – третий и высокоэффективный для сортировки незначительно измененных ранее сортированных массивов – второй. Ниже приводятся алгоритмы и программная реализация этих методов. Для данных, заданных в строке 95 программ (22 числа), число сравнений, необходимых для выполнения сортировки чисел, составляет при применении метода по индексам – 231, метода BUBBLE – 169 и метода SHELL – 105. Алгоритм и программа метода сортировки по индексам приведена на рисунке 2.5. 1 Пуск
Ввод M, M – число чисел A(i),
5 Да A(i)<= A(k)
Нет B = A(i): A(i)= A(k) A(k)=B
Вывод A(i), Рисунок 2.5 –Алгоритм программы метода сортировки по индексам
Останов
|