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

того, чтобы пропустить алгоритм, оказалось необхгдимым внести некоторые изменения. Поскольку алгоритм короткий, а изменения запутанные, то алгоритм приводится ниже заново. Заметим, что в тело процедуры включена проверка аргумента х на нуль, так как h2 при д;=0 должно обращаться в -оо ... *

Свидетельство к алгоритму 1256 [D1)

Алгоритм 1256 не публикуется здесь, потому что соответствующий алгоритм 125 «Весовые коэффициенты Гаусса» (Rutishauser Н. «САСМ», 1962, № 10) не был подтвержден ни в журнале «САСМ», ни в расчетах авторов выпуска.

АЛГОРИТМ 1266

Решение системы линейных уравнений методом Гаусса [F4]

Эта процедура предназначена для решения системы и линейных алгебраических уравнений методом последовательного исключения неизвестных. а[1:ы, 1:ы-М]-расширенная матрица системы;ы - число неизвестных; /[1:] -вектор решения.

Если система не имеет решения или имеет множество решений, то осуществляется выход из процедуры к метке signat\26.

procedure gauss 126(u,a)result:(у);

value u; integer u; array a,y; begin real temp; integer i,j,k,m,n;

n:=0; nO: n:-П-Ы;

for k:=n step 1 until u do if a[k,n] =70 then go to nl;

go to signall26;, nl: if k=n then go to n2;

j:=u + l;

for m: = n step 1 until j do begin temp:=afn,m]; a[n,m]:=::a[k,m]; a[k,m]:=temp end; fi2: for j:=u+ 1 step -1 until n do а[п,]]:==а[п,]]/аГп,п]; m:=u-M; . ,

for i:=k-M step 1 until u do for j:=n+l step 1 until m do a[i,j]:=ari,j]-a[i,n] Xa[n,j]; if п=7.ц then go to nO; . . .

for i:=u step -1 until 1 do begin y[i]:=a[i,m];

for k:=i-1 step -1 until 1 do a[k,m]:=a[k,m]-a[.k,i] Xy[i] end i end gauss126;

* Далее приводится модифицированная процедура hankel, использованная для алгоритма 124а. {Прим. ред.)



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

Алгоритм 126а получен в результате ординарной переработки алгоритма 126 (Counts J. W.«CACM», 1962, № 7).

В алгоритм 126 было .внесено одно изменение: переменная temp была локализована в теле процедуры gauss.

Алгоритм 126а проверен с помощью транслятора ТА-1 для расширенной матрицы

0.47 -0.11 0.35 0.55 0.43

0.17 -0.25 0.54 0.3 1 0.67 -0.32 0.5

0.36

-0.74 1

0.7 0.9

и получен результат

0.440888 -0.363031 1.166798 0.393567

Алгоритм 1266 лолучен из алгоритма 126а в результате модификаций, имевших целью сокращение времени вьшолнения алгоритма на машине.

1. После оператора с меткой п1 (в алгоритме 126а-это метка по1) был добавлен оператор

j:=u+l;

что позволило в следующем далее заголовке цикла заменить ы+11 на /.

2. После оператора с меткой п2 был добавлен оператор

т:=и-Ы:

что позволило в следующих далее операторах заменить и+1 на т.

3. Пятая снизу строка от .конца процедуры

begin y[i]:=a[i,u + l]/a[i,i];

была заменена .на строку

begin y[i]:=a[i,m];

поскольку в этом месте процедуры все a[l,i]=l.

В свидетельство к алгоритму 126а была внесена поправка, предложенная Л. Ф. Лебедевым [27, с. 171].

Алгоритм 1266 был транслирован в системе ТА-1М на машине М-220, и с его помощью были повторены расчеты, приведенные в свидетельстве к алгоритму 126а. Получены точно такие же результаты.

Алгоритм 126а широко используется на многих машинах, и, в частности, он входит в общий архив машины БЭСМ-6.



в работе Д. К. Фаддеева и В. Н. Фаддеевой [1, гл. 11, § 16] дано следующее решение:

0.44089 - 0.36304 У- 1.16681 0.39358

Свидетельство к алгоритму 1276 [FS]

Алгоритм 1276 («Ортонормирование, аппроксимация и прочее») не публикуется здесь, потому что соответствующий алгоритм 127 («САСМ», 1962, № 10) носит весьма специальный характер, и по признанию его автора П. Уолша (Walsch Р. J.) для правильного использования выходных параметров этого алгоритма «1пользователь должен быть достаточно хорошо знаком с теорией». Таким образом, перевод, исправление ошибок в этом алгоритме и его отладку целесообразнее предоставить специалистам. Перечень поправок к алгоритму 127 можно найти в переводе «Подтверждения к алгоритму 127» Яна Бародела (см. «Библиотека алгоритмов 16-506» [23], приложение 1). Детальное описание приложений алгоритма (согласно указанию его автора) можно найти в работах [И-41]. Краткий перечень его приложений включает в себя следующее.

1. Ортонормирование последовательности векторов относительно общего скалярного произведения.

2. Аппроксимация данных функций по методу наименьших квадратов полиномами или любой линейной комбинацией степеней, рациональных, трансцендентных или специальных функций, а также функций, заданных численно последовательностью значений.

3. Проведение кривой по экспериментальным данным в двух и большем числе измерений.

4. Нахождение наилучшего (в смысле наименьших квадратов) решения системы т линейных уравнений с п неизвестными при пт.

5. Обращение матрицы и решение системы линейных уравнений.

6. Разложение функции в ряд по ортогональным функциям, таким, например, как полиномы Лежандра и полиномы Чебышева.

АЛГОРИТМ 1286

Суммирование рядов Фурье [С6]

Процедура fourier суммирует одномерные ряды Фурье, пользуясь

рекуррентным соотношением, описанным Уаттом (Watt. «Computer J.»,

1959, V. 1, №4, 162). Входные параметры:

X-коэффициенты, которые выбираются по т. фактический параметр, соответствующий х, должен быть выражением, зависящим от г; например, он может быть равным х[г]; поскольку х должен вызываться по наименованию, то в этом отношении алгоритм выходит за рамки сокращенного АЛГОЛа;

W - аргумент;

п - общее число членов ряда.





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