Вторая пачка часть 143
(1988), сходимость его очень мед¬ленная для |z| < 0.05 и в области |y| < 2, x < 0. Ал¬го¬ритм ре¬а¬ли¬зо¬ван в процедуре WKZ, полученной путем пе¬ре¬ра¬бот¬¬ки и пе¬ревода вначале на язык FORTRAN [Бе¬лашов, 1997], а за¬тем на язык PASCAL ALGOL-про¬гра쬬мы вычисления [Библиотека ..., 1975].
Формальные параметры процедуры. Входные: k (тип re¬al) - показатель k в формуле (5.11); x, y (тип real) - де¬йс¬т¬вительная и мнимая части аргумента z = x + iy; eps (тип re¬al) - задаваемая точность. Выходной: wkz (тип comp) - функция
FUNCTION WKZ(K:INTEGER; X,Y,EPS:REAL) : COMPEX;
VAR A,B,C,D,W,M,P,Q: REAL; R,N : INTEGER;
BEGIN
EPS:=EPS*EPS;
A:=1.;
C:=1.;
U:=1;
V:=0.0;
D:=0.0;
B:=0;
N:=1;
W:=K-1;
REPEAT
N:=N+1;
R:=INT(N/2);
M:=R;
IF R*2=N THEN M:=R+W;
P:=X+M*C;
Q:=Y+M*D;
M:=P*P+Q*Q;
C:=(X*P+Y*Q)/M;
D:=(Y*P-X*Q)/M;
P:=C-1;
Q:=A;
A:=A*P-B*D;
B:=Q*D+P*B;
U:=U+A;
V:=V+B;
UNTIL (A*A+B*B)/(U*U+V*V) <= EPS;
END {****WKS****}.
Процедура WKZ была протестирована на машине IBM PC/AT-386 для k = 1, z = 1 + i и k = 2, z = 4; eps = 1e-7. Полученные при этом результаты
0.673321227 + i 0.147863858,
0.698469604
с точностью до шести десятичных цифр совпали с таб¬лич¬ными [Библиотека ..., 1975].
Вещественная интегральная показательная функция E1(x), являющаяся частным случаем Ek (z) при k =1, x = z ? ? Re z, определяется интегралом [Корн, Корн, 1984]
и может быть аппроксимирована степенными рядами следующим образом [Библиотека ..., 1975]:
а) при 0 < x < 1
; (5.12)
б) при x ? 1
, (5.13)
где |?1| < 2?10-7, |?2| < 2?10-8, а значения коэффициентов пред¬ставлены в табл. 5.3.
Таблица 5.3
i ai bi ci
0 0.2677737343 3.9584969228 0.57721566
1 8.6347608925 21.0996530827 0.99999193
2 18.0590169730 25.6329561486 -0.24991055
3 8.5733287401 9.5733223454 0.05519968
4 -9.76004e-3
5 1.07857e-3
С помощью процедуры-функции E1X вы¬чис¬л¬яются значения вещественной интегральной функции E1(x) в соответствии с формулами (5
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа