Главная Промышленная автоматика. в .процедуре иопользоваио разложение - (где е<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
Алгоритм 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
Подтверждение к алгоритму 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.0017 |