Главная страница Алгоритмы [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] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] Как видно из этой табл., результаты трансляции при совпали с соответствующими результатами Г. Таче-S\{m. табл. 11) с точностью до одной единицы шестой десятичной цифры. Расхождение в пер&ой цифре при =2л (у Г. Тачера 6.881490 вместо 0.881490) объясня-ртся, .очевидно, опечаткой в «Подтверждении» Г. Тачера («САСМ», 1963. №2). Таблица 15
Результаты трансляции, приведенные в табл. 15, совпадают с результатами Г. Тачера (см. табл. 12) не менее чем в шести значащих цифрах. Несовпадение третьей Щ1фры при (р=3, k=2, s=2) объясняется, очеввдно, опечаткой в результатах Г. Тачера. Кроме того, в его результатах значения для {р-3, к~Ь.Ъ, s=l) и для (/7=2, =0.5, 5=2) перепутаны местами*. Процедура multint была использована также для вычисления семикратного н восьмикратного интегралов вида 1111111 V In Q (cos и - TuXsin и - cos и + Щ + wXsin и) dwdxdydzdOdvdv.=- -i- (In 2 - In 0.5 - -0.5 In 1.25 + 2 arctg 1 - 2 arctg 0.5) = - 0.265964666 ... ; tIDs. 1 1 1 1 1 1 1 f f f f f f f f sm?£2~ vln£2(cos«-7«Xsin« - - бм cos H + sill") dwdxdydzdOdvddf = 0, где u=kwxyz и k=v\nQ. * Значения табл. 15 совпадают со значениями табл. 13, кроме значения интеграла для p=S, k=2, s=2. {Прим. ред.) Таблица
Результаты вычисления этих двух интелралов для р=2 приведены ,в табл. 16. По этим результатам .можно заключить, что алгоритм 32а при вычислении 1многократных интегралов особенно эффективен. АЛГОРИТМ 336 Вычисление факториала [503] Процедура \act использует свойство рекурсивности процедур для вычисления п\. Второй вариант алгоритма 336 (процедура /асй) вычисляет п\ без применения свойства рекурсивности процедур и поэтому может быть использован в трансляторах, имеющих в качестве входного языка сокращенный вариант АЛГОЛа. Вариант 1 real procedure fact(n); value n; integer n; fact:= if n=0 then 1 else nxfact(n-1); Вариант 2 real procedure factl (n); value n; integer n; begin real f; integer i; f: = l; for i:= 2 step 1 until n do f:=fxi; factl:=f end factl; Свидетельство к алгоритму 336 Алгоритм ЗЭб получен из алгоритма 33а путем внесения в него одной модиф,икации, предложенной В. Я. Ан- gpcoHOM iB его письме к редактору выпусков. Модифика-5лЯ заключается в замене в теле процедуры factl описа-integer i, f; на описания real /; integer i; с целью расширения области применимости процедуры factl 3 трансляторах, представляющих целые числа единицами мантисс. Вследствие простоты алгоритма 336 его отладка fl€ проводилась. Свидетельство к алгоритму 33 а Первый вариант алгоритма 33а получен в результате ординарной переработки алгоритма 33 (L1 р р М. F. «САСМ», 1.961, № ,2). Второй 1вариа,нт алгоритма 33а написан с целью расширения применимости данного алгоритма к использованию в современных трансляторах. Свидетельство к алгоритму 34б Алгоритм 346 1не публикуется здесь потому, что соответствующий алгоритм 34 был позднее заменен в журнале «САСМ» более совершенными алгоритмами 221 и 291 (qm. нижеследующее «Замечание» М. Пайка и И. Хилла). Замечания к алгоритмам 34, 54, 80, 221 и 291 М. Пайк, И. Хилл ( Рike М. С, Hill I. D. «САСМ», 1966, № 9) Алгоритмы 34 и 54 используют одну и ту же аппроксимацию Гастингса, точность которой равна примерно семи десятич1ным цифрам. Из этих двух алгорнтм.ов второй выполняется быстрее. Алгоритм 80 имеет следующие ошибки... *. С этими модификациями (и с заменой массива b очевидным последовательным умножением) алгоритм 80 успешно прошел на машине ICT Atlas с АЛГОЛ-транс-ором и дал результаты с точностью до 10 значащих фр. Алгоритмы 80, 221 и 291 имеют одинаковую точность, римерно 10 десятичных цифр, и, следовательно, выбор * Указываются пять ошибок в алгоритме вО, уже замеченных ранее авторами выпусков и исправленных в алгоритме 80а. {Прим. ред.) [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] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] 0.0202 |