Главная Промышленная автоматика. того, чтобы пропустить алгоритм, оказалось необхгдимым внести некоторые изменения. Поскольку алгоритм короткий, а изменения запутанные, то алгоритм приводится ниже заново. Заметим, что в тело процедуры включена проверка аргумента х на нуль, так как 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.002 |