# Вторая пачка часть 135

Вы¬ход¬ной: knx (идентификатор про¬це¬ду¬ры-функции, тип do¬ub-le) - значение . FUNCTION KNX(N : INTEGER; X1,EPS : REAL) : DOUBLE; VAR X,H,G,S,Z,U,ZN,F : DOUBLR; BEGIN X := DOUBLE(X1); KNX := 0.; H := 1.; REPEAT G := KNX; S := 0.; Z := EXP(H/2.); U := Z*Z; REPEAT ZN := EXP (N * LN(Z)); F := 0.5*DEXP(X*(1.-0.5*(Z+1./Z)))*(ZN+1./ZN); S := S+F; Z := Z*U; UNTIL (F <=EPS); KNX := H*S; H := H/2.; UNTIL (ABS(KNX-G) <=KNX*EPS); END. Процедура-функция KNX была получена путем не¬ко¬¬то¬¬рой модификации и перевода вначале на язык FOR¬T¬¬RAN [Белашов, 1997], а затем на язык PASCAL Бей¬¬сик-про¬грам¬мы вычисления , приведенной в ра¬¬¬бо¬те Грин-чишина и др. (1988), и проверена при тех же зна¬-че¬ни¬ях порядка n и ар¬гумента x на машине IBM PC/AT-386. Полученные при этом для ? = 1e-8 ре¬зуль¬та¬ты 1325.16874, 0.310561234 сов¬пали с контрольными [Гринчишин и др., 1988] с точ¬нос¬¬¬тью до девяти десятичных знаков. В процедуре-функции BENX в зависимости от спо¬со¬ба об¬¬ращения реализовано вычисление функций или bein(x) на основании их разложений в ряды (5.43), (5.44), при этом вычисления прекращаются, когда сов¬па¬дут зна-че¬ния сумм слагаемых 2i и 2i + 2 в раз¬ло¬же¬ни¬ях. При отрицательном n вычисления вначале ведутся для |n|, а затем используется соотношение (5.48). Формальные параметры процедуры. Входные: x (тип re¬al) - значение аргумента; n (тип integer) - значение по¬ряд¬ка; k (тип integer) - параметр, по значению которого вы¬¬бирается вычисляемая функция: при k = -1 вы¬¬чис¬ля¬ет¬ся функ¬ция , при k = 1 - bein (x). Вы¬ход¬ной: benx (иден¬ти¬фикатор процедуры-функции, тип do¬u¬b¬le) - вы¬чис¬ленное зна¬чение функции. FUNCTION BENX(X : REAL;N,K : INTEGER) : DOUBLE; VAR X0,X1,F,F1,F2 : DOUBLE; BEGIN X0 := DOUBLE(X); X1 := X0*X0/4.; NA := IABS(N); N1 := NA; WHILE (N1 > 8) DO N1 := N1-8 IF (K =-1) THEN BEGIN F1 := DCOS(N1*2.35619449019D0); F2 := X1*DSIN(N1*2.35619449019D0); END ELSE BEGIN F2 := X1*DCOS(N1*2

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа