Вторая пачка часть 138


; IF (X =0) AND (N=0) THEN EXIT; NA:=ABS(N); XA:=ABS(X); IF (XA > 3) THEN JANX:=JNX01(NA,XA,A,B,C) ELSE IF (X =0) THEN BEGIN JANX:=0.; EXIT; END ELSE JANX:=JNX(NA,XA,EPS) END; IF(N=0) THEN EXIT; IF(N < 0) THEN IF (NA MOD 2 = 1) THEN JANX := -JANX; IF(X < 0.) THEN IF (NA MOD 2 = 1) THEN JANX := -JANX; END. Тестирование процедуры-функции JANX на IBM PC/AT-386 при тех же значениях n и x, что и для про¬це¬дур JNX и JNX01, дало аналогичные значения ; ре¬зуль¬та¬ты при отрицательных значениях порядка и ар¬гу¬мента пред¬ставлены в табл. 5.11 (ср. с табл. 5.10). Таблица 5.11 x n = -1 n = 1 2.9 -0.3754275162-3.44e-8 0.3754275162+3.44e-8 -2.9 0.3754275162+3.44e-8 -0.3754275162-3.44e-8 4 0.0660433224+0.56e-8 -0.0660433224-0.56e-8 -4 -0.0660433224-0.56e-8 0.0660433224+0.56e-8 15 -0.2051040490+1.04e-8 0.2051040490-1.04e-8 -15 0.2051040490-1.04e-8 -0.2051040490+1.04e-8 Вычисление функции Бесселя II рода для любого це¬ло¬го v= = n и вещественного аргумента x может быть вы¬пол¬нено на основании ее разложения [Справочник ..., 1979] (5.29) где C = 0.57721566490153 - постоянная Эйлера. Такой алгоритм реализован в приведенной далее процедуре-функции ynx, использующей константы 2C= =1.1544... и 1/? = 0.318... . При этом, если n < 0, вначале вы-числяется функция , а затем используется соотношение . Формальные параметры процедуры. Входные: n (тип in¬¬teger) - порядок n функции; x (тип real) - значение ар¬г󬬬мен¬та. Выходной: ynx (идентификатор процедуры-фунꬬции, тип double) - значение . При x = 0, ког¬да функ-ция Неймана (Вебера) не определена, осу¬щес¬тв-ля¬¬¬ет¬ся вы¬ход к программе обработки соответствующей ошиб¬ки. FUNCTION YNX (N : INTEGER; X : DOUBLE) : DOUBLE; VAR X1,X2,A,R,B,S,D,P,T : DOUBLE; BEGIN IF(X = 0.) THEN EXIT; YNX := 0.; NA := IABS(N); X1 := DOUBLE(X/2.); X2 := X1*X1; A := 1.; R := 1.; B := 0.; S := 0.; IF(N <>0)THEN FOR I : := 1 TO NA DO BEGIN R := R*I; S := S+1
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz