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


14159265359D0; S1 := 0.; X := DOUBLE(X1); IF(X <=3)THEN BEGIN Y := (X/3.)* (X/3.); FOR I := 0 TO 6 DO S1 := S1+A(I)*EXP (I *LN(Y)); YNX01 := S/X**N+2./PI*DLOG(X/2.)*JNX(N,X1,1E-8); EXIT; END; S2 := 0.; Y := 3./X; FOR I := 0 TO 6 DO BEGIN S1 := S1+B(I)* EXP (I *LN(Y)); S2 := S2+C(I)* EXP (I *LN(Y)); END; YNX01 := SIN(X+S1)*S2/SQRT(X); END. Процедура-функция YNX01 тестировалась на IBM PC/AT-386 при n = 0, 1; x = 2.9, 4, 10. Полученные при этом результаты представлены в табл. 5.13, значения пгрешности указаны в сравнении с табличными ве¬ли¬ч謬нами Y0(x) и Y1(x) [Справочник ..., 1979]. Таблица 5.13 x n = 0 n = 1 2.9 0.4079117580+1.12e-8 0.2959400312+2.34e-8 4 -0.0169407231-1.62e-8 0.3979257124-0.18e-8 10 0.0556711676+0.03e-8 0.2490154233+0.09e-8 Вычисление функций Ханкеля и (фунꬬций Бесселя III и IV рода) при z ? Re z = x и це¬лом зна¬че¬нии порядка v = n реализовано в процедуре HANX12, в ко¬трой на основании формул (5.25) ис¬поль¬зованы ра第ло-же¬ние (5.23) функции Бесселя I рода и ап¬прок-си¬мବция функ¬ции Неймана мно¬го¬чле¬ном вида (5.29). При вы¬чис¬лении Re[Hn (x)] ? Jn (x) в про¬цедуре применяется внеш¬няя функция JNX, а при вы¬числении Im[Hn(x)] ? Yn(x) - функ¬ция YNX. Формальные параметры процедуры. Входные: n (тип in¬¬¬¬teger) - порядок функции; x (тип double) - значение ар¬г󬬬¬мен¬¬та; k (тип integer) - задает знак мнимой части фун¬к¬¬¬¬ции Хан¬келя: при k = 1 вычисляется , при k = -1- ; eps (тип double) - задаваемая точность. Вы¬хо䬬¬ной: hanx12 (тип complex) - идентификатор вы¬чис¬лен¬¬ной функ¬ции Хан¬ке¬ля. В случае если значение ар¬гу¬мен¬та x = 0 (когда функ¬ция не определена), ос¬у¬щес¬твля¬ет¬ся выход к про¬грам¬ме об¬ра¬бот¬ки ошибки. FUNCTION HANX12 (N,K : INTEGER; X,EPS : DOUBLE):DOUBLE; VAR RE,IM,JNX,YNX : DOUBLE; BEGIN { *** ИСПОЛЬЗУЮТСЯ ВНЕШНИЕ ФУНКЦИИ JNX И YNX *** } IF (X =0.) THEN EXIT; RE := JNX(N,X,EPS); IM := K*YNX(N,X); HANX12 := COMPLEX(RE,IM); END
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz