![]() |
|
Главная Промышленная автоматика. точно совпадающая с результатом обращения матрицы и с помощью процедуры р0037 системы ТА-IM. Далее такие же расчеты были проведены и для системы уравнений л, - 2хг-Ь 2х,= -2, 3x,+x,-f 2х, = 7, матрица которой является транспонированной матрицей от первой системы уравнений. Как и для первой системы уравнений, результаты не зависели от kount и eps и были х= (-0.42636367io-10,3,2) и 9-2 7 -0.145519I5i(,-10 9 0.72759576io-11 0.29I03830i(,-10 О 9 Точное решение системы х-{0,3,2). При задании Ь=( 1,0,0) была получена матрица -0.46153846 0.30769230 0.53846153 0.076923076 -0.38461538 0.076923076 0.6I53846I .076923076 -0.38461538 точно совпавшая с результатом обращения матрицы и с помощью процедуры р0037 системы ТА-:1М. Свидетельство к алгоритму 92а Алгоритм 92а получен в результате исправления, сокращения и ординарной переработки алгоритма 92 (Roek D. J. «САСМ», 1962, №5). В алгоритме 92 были обнаружены следующие ошибки. 1. Процедура, вычисляющая абсолютное значение от своего параметра, имеет в языке АЛГОЛ стандартный идентификатор abs, следовательно, параметр absf не нужен. 2. После метки S3: должно следовать for j: = l step 1 until n do if abs(abs(cO,j]-abs(b[l])) >eps then 3. После метки S6: должно быть for j: = 1 step 1 until n do Алгоритм проверен с помощью транслятора ТА-1 для системы линейных алгебраических уравнений третьего порядка ... * Свидетельство к алгоритму 936 [Д1] Алгоритм 936 «Обобщенные арифметические операции» не публикуется здесь, потому что с помощью соответствующих алгоритмов 93 (Р erst ein М. Н. «САСМ», 1962, № 6) и 93а [23] авторы выпуска не получили удовлетворительного решения. * Результаты трансляции ие приводятся здесь как потерявшие свое значение после публикации «Свидетельства к алгоритму 926», (Прим. ред.) АЛГОРИТМ 946 Генератор сочетаний [G6] Процедура combination {combination - сочетание) образует следующее по порядку сочетание из п целых чисел по k, если заданы п, k и лредшествующее сочетание. В векторе /[1],.. ., /[й] целые числа меняются в пределах от О до п-1 и всегда при входе и выходе из процедуры составляют монотонную строго возрастающую последовательность. Если входной вектор / состоит из нулей, то в качестве первого сочетания будет получено п-..., п-1. Это начальное сочетание получится также и после сочетания О, 1,..., й-1, являющегося последним значением вектора / в этом цикле. procedure combination(п,к) dataresult: (j); value n,k; integer n,k; integer array j; begin integer a,b,m; for b: = l step 1 until к do if j[b]b then begin a: = i[b]-b-1; for m: = l step 1 until b do ]lm]:=m-ba; go to final end; b:=n-k-f 1; for m: = l step 1 until к do j[m]: = b + m; final: end combination; Свидетельство к алгоритму 946 Алгоритм 946 получен из алгоритма 94а путем внесения в него поправки, предложенной А. Витеком в его «Замечании к алгоритму 94а» [25, с. 184], и замены оператора for m: = l step 1 until к do j[m]:=n-к-1+m; на операторы b:=n-k-l; for m:=l step 1 until к do j[m]:=b + m; Алгоритм 946 был транслирован на машине М-220 в системе ТА-1М, и с ним успешно были повторены расчеты, указанные в нижеследующем «Свидетельстве к алгоритму 94а». Свидетельство к алгоритму 94а Алгоритм 94а получен в результате исправления, сокращения и пе-рерабопки алгоритма 94 (Kurtzberg J. «САСМ», 1962, № 6). Алгоритм проверен для д=4 и к=Ъ. В качестве начального вектора / был взят вектор (0,0,0). В результате четырех обращений к процедуре получены следующие сочетания: (1,2,3); (0,2,3); (0,1,3); (0,1,2). Подтверждение к алгоритму 94 Р. В. Мей (May р. W. «САСМ», 1962, № 11) Алгоритм 94 был переведен на язык ФОРТРАН для машины IBM 1620 и прошел удовлетворительно без всяких исправлений. Однако переменная А не была описана. P. E. Гренч (Grench R. E. «САСМ», 1962, № 12) В алгоритме потребовалось четыре изменения ... * После вышеуказанных изменений тело алгоритма 94 было проверено на машине LGP 30, использующей транслятор Дартмутского колледжа с языка АЛГОЛ-30. Процедура работала удовлетворительно, я время, необходимое для получения одного вектора / при k=5 и п= = 15, было равно 30с. Если алгоритм предназначен для использования в виде процедуры, то нужно добавить различные тесты. Эти тесты могут включать оператор, проверяющий, правильно ли начальное значение в хтора /, и не является ли й>п. Эти две возможности были исследованы, и обнаружено, что получаются неверные векторы /. Свидетельство к алгоритму 956 [Д1] Алгоритм 956 не публикуется здесь, потому что с помощью соответствующих алгоритмов 95 (Stockmal F. «САСМ», 1962, № 6) и 95а [23] авторы выпусков не получили удовлетворительного решения на машине. Генерацию разбиений можно производить более совершенным алгоритмом 263 («САСМ», 65-8). АЛГОРИТМ 966 Матрица причинно-следственных отношений [К] Процедура ancestor {ancestor - прародитель) работает следующим образом. Первоначально (т. е. во входной матрице т[1:п,1:п]) элемент m[i,/]=true, если индивидуум i является родителем (непосредственной причиной) индивидуума /. После вьшолнения процедуры m[t,/]=true, если индивидуум i является прародителем (косвенной причиной) индивидуума /, т. е. после выполнения процедуры имеет место эквивалентность m[i,/J=true тогда, когда существует последовательность 1г, р такая, что во входной матрице все m[t,], т[й,/],..., m[p,j] эквивалентны true. procedure ancestor (n) dataresult: (m); value n; integer n; Boolean array m; begin integer i,j,k; for i: = l step 1 until n do for j: -1 step 1 until n do if m[j,i] then for k: = i step 1 until n do if m[i,k] then m[j,k]: = true end ancestor; * Далее указываются четыре поправки к алгоритму 94, учтенные в алгоритме 94а. (Прим. ред.) 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 0.0017 |