Главная Промышленная автоматика.

в .процедуре иопользоваио разложение -

(где е<7г4о-) и рекуррентное соотношение

. W(x)==W{xl)-ll(x-}-l), где X наращивается до величины а. Для -х<-1 используется соот-

ношение

ij-(-) = Xctg(X4+(-i)-

При этом получается погрешность, меньшая чем 1/(240а). Процедура-использует константу зх=3.14... Если х - целое отрицательное, то выход к глобальной метке signalXAT. Более подробно см., например, в работе Е. Янке и др. [8, с. 49, 58].

procedure psif (х,а) result: (psi);

value x,a; real x,a,psi; begin real pi,y; integer xl;

psi:=0; xl:=x;

if x = 0 then

begin psi:=-0.5772156649; go to final end;

if x>-] then go to pos; - -

if xl=x then go to signall47;

x:=-X-1; pi:=3.141592654;

psi: = piXcos(piXx)/sin(piXx); " ;

pos: if x<a then

begin x:=x+l; p3i:i=psi-1/x; go to pos end; y:==l/xt2;

psi:=psi + ln(x) +0.5/x-((y/252-0.00833333333) Xy+ 0.0833333333) Xy; final: end psif;

Свидетельство к алгоритму 1476

Алгоритм 1476 получен из алгоритма 147а в результате внесения в него исправлений, предложенных Р. Парсонсом в его «Подтверждении к алгоритму 147» (см. [23], прил. 1).

Таблица 22

Ф(+1)

Результат трансляции

Контрольные значения

-0.5

3 5 10

-1.9635101 - 1.9665100 -1.9635100

-1.9635101 -1.9635100 -1.9635100

-1.0

3, 5, 10

Выход на signal 147

-1.5

3 5 10

0.03648982 0.03648998 0.03648998

0.03648979 0.03648995 0.03648996

Алгоритм 1476 был транслирован в системе ТА-1М на машине-М-220 и вновь дал те же результаты, которые указаны в табл. 23.



Кроме того, была вычислена функция 4f{x) для отрицательных значений аргумента x=-0.5, -1, -1.5 и а=3, 5, 10. Результаты приведены в табл. 22, где контрольные значения были получены по формуле

xif(-x)=.nXctg{nXx)+W{x-l).

Свидетельство к алгоритму 147а

Алгоритм 147а получен в результате исправления, оптимизации и ординарной переработки алгоритма 147 (Amit D. «САСМ», 1962, № 12).

Кроме ошибок, указанных Г. Тачером в его «Подтверждении к алгоритму 147» («САСМ», 1963, № 4), была исправлена ошибка, заключаюшаяся в том, что параметры х и а, вызываемые по значению, в алгоритме 147 не были специфицированы.

Алгоритм 147а транслирован для х=0, 0.5, 1 и а=3, 5, 10. Результаты приведены в табл. 23.

Таблица 23

W (Ж)=ф (А-+1)

x

Результат трансляции

По таблицам из [S]

-0.577215665

-0.5772

-0.577215665

-0.5772

-0.577215665

-0.5772

0.0364898115

0.0365

0.0364899690

0.0365

0.0364899738

0.0365

0.422783799

0.4228

0.422784325

0.4228

0.422784334

0.4228

Подтверждение к алгоритму 147

Г. Тачер (Th acher Н. С. «САСМ», 1963, № 4)

В алгоритме были замечены следуюшие небольшие ошибки... * С этими изменениями процедура была транслирована и прошла на машине LGP 30, использующей процессор Dartmouth SCALP. Программа была использована для табулирования функции W{x) при х--1, -0.5, О, 0.005, 0.010, 1.25. Для а=3.0 результаты совпали с табличными значениями с точностью до трех единиц шестой десятичной цифры. Это вполне удовлетворительно, так как одна десятичная цифра теряется в результате применения рекуррентности. Время вьшолнения, включая вывод на флексорайтер и вычисление новых значений независимой переменной, было в среднем около 30 с на одно значение.

Было замечено, что обращение к процедуре psif{x) дает i])(x-fl), если иметь в виду обозначения в таблицах, приведенных, например, в книге Янке, Эмде и Лёша [8].

* Указываются три ошибки и предлагаются четыре модификации, учтенные при составлении алгоритма 147а. (Прим. ред.)



АЛГОРИТМ 1486

Элемент магического квадрата нечетного порядка [Z]

Процедура magicterm {magic - магический, term - член, элемент) вычисляет элемент s[t,/] магического квадрата s[l:n, 1:«] для нечет- • ного пЗ с помощью метода Любера (Loubere).

О магических квадратах более подробно см. в работах О. В. Мантурова и др. [6] и М. М. Постникова [7] и алгоритмы П7а и 118а.

integer procedure magicterm (i,j,n);

value i,j,n; integer i,j,n; e

begin integer b,c; " , . , ; -

b:H-i+(П-1)-2; c:=2Xj-i;

if bn then b:=b-n else

if b<0 then b:=b-f n; , .

if On then c:=c-n else if cO then c:=c + n;

magicterm:=b X n-f с end magicterm;

Свидетельство к алгоритму I486

Алгоритм 1486 является стереотипным переизданием алгорит- • ма 148а.

Свидетельство к алгоритму 148а " : ;

Алгоритм 148а получен в результате ординарной переработки алгоритма 148 (Col И son D. М. «САСМ», 1962, № 12).

Путем трансляции алгоритма 148а был получен следующий магический квадрат третьего порядка"

4 9 2

3 5 7 8 1 6

Подтверждение к алгоритму 148

Дж. Барнекат (Barnecut J.. N. R. «САСМ», 1963, № 4)

Алгоритм 148 был переведен на язык ФОРТРАН для машины IBM 1620. Для п=3, 5, 13 были получены правильные результаты. Время вьшолнения, требующееся для получения полного квадрата, не отличалось существенно от времени для алгоритма 118.

Подтверждение к алгоритму 148

Д. Торо (Т h о г о D. «САСМ»-, 1963, № 4) -

Алгоритм был переведен на язык ФОРТРАН для машины IBM 1620. В программ,е не потребовалось никаких изменений. Элементы магических квадратов до 15-го порядка были получены правильно. •





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 [24] 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

0.0036