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

ко тех специально оговоренных в свидетельствах случаев, когда алгоритмы составлялись заново. Сделанные ib нроцессе переработки изменения исходных алгоритмов, «ак правило, лишь улучшали их машинную реализацию (исправления, сокращения, оптимизация и т. д.) .и повышали удобства пользования ими, но не затрагивали сущноСти алгорит-.мов, их численных методов. Таким образом, алгоритмы, номера которых снабжены буквами «б» или «а», являются лишь вариантамИ исходных алгоритмов, публикуемыми на правах обычных их подтвержде-ний. Поэтому читателям и нользователям в их ссылках на источники нужно указывать авторов исходных алгоритмов и иомера журнала «САСМ», из которых взяты эти алгоритмы, вне зависимости от того, будут ли при этом чктателИ упоминать и авторов соответствующего выпуска данной серии или нет.

Контрольные решения то большинству алгоритмов данного выпуска проводил Ю. И. Марков, по алгоритмам 516-536, 556-586, 666, 706, 756, 786, 966 и 996 -В. П. Алик, Л. В. Малюк и Р. М. Галис, по алгоритмам 636-656 и 986 - Н. С. Путвияская, по алгоритму 856 - В. Ф. Дейкин, по алгоритму 50CJ-М. И. Агеев. Рукопись подготовил к изданию В. П. Алик. В проверке рукописи принимал участие Э. М. Каплинский. Основная переработка алгоритмов, написание текста свидетельств, компоновка выпуска и его общая редакция выполнены М. И. Агеевым.



Корректировка обратной матрицы после изменения одного элемента в прямой матрице [Fij

Если дана матрица а=т-, имеющая размерность пХп, а М - матрица, которая получается в результате увеличения одного элемента m[i, j] прямой матрицы т на величину d, то процедура adjust {adjust- корректировать, настраивать) может вычислить скорректированную матрицу Ь=М- по элементам матрицы а без обращения матрицы М. procedure а dj ust (a,n,i,j ,d) result: (b);

value n,i,j,d; real d; integer 1,3,11; array a,b; begin real t; Integer r,s;

t: = d/(a[j,i]Xd+i); for r:= i step 1 until n do for s; = 1 step 1 until n do b[r,s]: = a[r,s]-tx a[r,i]X a[j,s]

end adjust;

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

Процедура adjust алгоритма 516 является стереотипным переизданием процедуры adjust алгоритма 51а. Правильность алгоритма 51а была подтверждена расчетами на машине Урал-2 И. Р. Гитманом [25, с. 171] и IB расчетах на машине БЭСМ-6 Л. С. Кривонос и 3. А. ШиншиноБой [38, прил. 1].

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

Алгоритм 51а получен в результате исправления, сокращения и ординарной переработки алгоритма 51 (Herndon J. R. «САСМ», 1961, № 4).

Алгоритм 51а проверен с помощью транслятора ТА-1 для исходных данных

-2.0 1.0

й== , K = 2, £=1, /=2, d = 3.

1.5 -0.5

Получен результат

-0.363636363 0.454545454 0.272727272 -0.0909090909

полностью совпадающий с точным решением

4 5

3 И

"11

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

Р. Георг (Georg R. «САСМ», 1962, № 7) Эта процедзфа была запрограммирована на языке ФОРТРАН и переведена на машинный язык автоматически. Процедура была проверена на Аргонской вычислительной машине GEORGE. Иопользова-



лась программа интерпретации плавающей запятой, обеспечивающая максимальную точность до 31 разряда.

Процедура проверялась для матриц НбряДКа П=2, 3,..., 10. Для каждого значения п делалось по 20 успешных опытов. Каждый опыт состоял из произвольного изменения произвольно выбранного элемента матрицы М с последующим применением процедуры adjust, а затем вычислением произведения N:=bXM. Для каждого опыта погрешность вычислялась как

sum:=.\2N[l,j]

Для случайных приращений элемента, находящихся в пределах от -1.0 до +1-0, значение sum никогда не превышало 2.0X10. В процедуре обнаружены две опечатки ... *

АЛГОРИТМ 526

Генератор тест-матриц [F1]

Процедура testmatr вычисляет матрицу а любого порядка п, для которой заранее точно известна обратная матрица и собственные значения. В матрице а- п-я строка и п-й столбец представляют собой последовательности чисел 1, 2,..., п. После вычеркивания п-го столбца и п-й строки матрицы а- получается единичная матрица, procedure testmatr (п) result: (а);

value п; integer n; array a; begin real c,d; integer

c:=nX(n+l)X(2Xn-5)/6; d: = l/c; a[n,n]: =-d; for i: = l step 1 until n-1 do begin a{i,n]: = a[n,i]: = dXi; a[i,i]: = dX(c-if2); for з:=1 step 1 until i-I do a[i, j]: = an,i]: = -dxiXj

end testmatr;

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

Процедура testmatr алгоритма 526 является стереотипным переизданием процедуры testmatr алгоритма 52а. В «Свидетельство к алгоритму 52а» внесена поправка. Вместо фразы «Для контроля эта обращенная матрица обращалась снова...» должно быть «Для контроля эта тест-матрица обращалзсь ...»

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

Процедура testmatr алгоритма 52а получена в результате ординарной переработки процедуры TESTMATRIX, приведенной П. Науром в его «Замечании и подтверждении к алгоритму 52» («САСМ», 1963, № 1), перевод которого дается ниже.

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





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.0016