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

точно совпадающая с результатом обращения матрицы и с помощью процедуры р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.0035