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


..). Процедура AIRYX реализует вычисление значения функ¬ций Ai(x) и Bi(x) для x = z ? Re z с помощью раз¬ло¬ж嬬ния (5.52). Вычисления прекращаются, когда для двух последовательных сумм в разложении (5.52) вы¬пол¬няется ра¬вен¬ство . Формальные параметры процедуры. Входной: x (тип re¬al) - аргумент функции. Выходные: a, b (тип double) - вы¬численные значения функций Эйри Ai(x), Bi(x). В про¬цедуре помимо C1 и C2 используется константа 1.732050807568877. PROCEDURE AIRYX(X0 : DOUBLE; VAR A,B : DOUBLE) : DOUBLE; VAR A,B,X,F,S1,S2,G,C1,C2,F1,G1 : DOUBLE; I, J : INTEGER; BEGIN X := DOUBLE(X0); F := 1.; I := 1; S1 := 1.; S2 := X; G := X; X := X*X*X; C1 := 0.355028053887817D0; C2 := 0.258819403792807D0; REPEAT S1 := S1*X/(3*I*(3*I-1)); S2 := S2*X/((3*I+1)*3*I); F1 := F+S1; G1 := G+S2; F := F1; G := G1; I := I+1; UNTIL (F1 <> F) OR (G1<>G); A := C1*F-C2*G; B := (C1*F+C2*G)*1.732050807568877D0; END. Процедура AIRYX получена путем переработки и пе¬ре¬вода вначале на язык FORTRAN [Белашов, 1997], а за¬тем на язык PASCAL Бейсик-программы вычисления функ¬ций Эй¬ри, приведенной в работе Гринчишина и др. (1988). Тес¬тирование процедуры проводилось на IBM PC/AT-286 для значений аргумента x = -3, 0.8. По¬лу¬ченные при этом результаты Ai(-3)=-0.378814293677658, Bi(-3) =-0.198289626374926; Ai(0.8)=0.169846315284426, Bi(0.8) =1.042422180129392 совпадают с контрольными с точностью до девяти - де¬ся¬¬ти десятичных знаков. На практике в предположении малости ?2 для ei изу¬ча¬ют корреляционную матрицу ? для исходных ве¬личин Х. Как уже отмечалось, матрицу ? можно связать с мат¬ри¬цей факторных нагрузок: ? = W .W '. Учитывая, что ? - симметричная положительно оп¬ре¬деленная матрица, представим ее в виде ? = U?U', где U - ортогональная матрица собственных векторов мат¬рицы ?, а ??- диагональная матрица собственных чи¬сел матрицы ?. Тогда, сравнивая два последних ра¬вен¬ства, имеем W = =U? ???/2
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz