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

procedure min;

if ml[2Xi]<ml[2Xi+l] then

begin ml [i]:=ml begin ml[i]:=ml

2Xi]; m2[i]:=m2[2Xi] end esle 2Xi + l]; m2[i]:=m2[2Xi + l] end min;

start: for i:=step 1 until 2Xn-1 do

begin ml [i]:==unsortfi-n+1]; m2[i]:=i end i; for i:=n-1 step -1 until 1 do min; for j:=l step 1 until к do begin sort[j]:=ml[l]; i:=m2[l]; ml[i]:=inf; for i:=i-2 while i>0 do min end j end treesortl;

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

Алгоритм 1436 является стереотипным переизданием алгоритма 143а.

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

Алгоритм 143а получен в результате ординарной переработки алгоритма 143 (Каире А. F. «САСМ», 1962, № 12). Исправлена одна опечатка, заключающаяся в отсутствии точки с запятой после первого оператора цикла в теле процедуры. Идентификатор inf (в алгоритме 143 - «infinity») введен в список формальных параметров, чтобы сделать тело процедуры не зависимым от конкретного применения.

Алгоритм транслирован для wnsor-(1,5,4,3,2), п-5, k=3, inf=lO. Получен результат: sor/= (1,2,3).

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

Алгоритм 1446 не публикуется здесь, потому что соответствующий алгоритм 144 «Обобщенный метод сортировки с помощью графа» («САСМ», 1962, № 12) не был подтвержден ни в журнале «САСМ», ни в расчетах авторов выпуска.

АЛГОРИТМ 1456

Модифицированный метод Симпсона {рекурсивная процедура) [D1]

Процедура-функция integral приближенно вычисляет интеграл от функции / в пределах от а до й с помощью модифицированного метода Симпсона. Хотя eps является мерой относительной погрешности результата, фактическая ошибка может быть гораздо больше (например, тогда, когда результат мал, потому что положительная площадь уничтожается отрицательной площадью). В процедуре предусмотрено сведение к минимуму количества вычислений функции: деление интервала применяется только тогда, когда это требуется заданной точностью.



Процедура integral использует рекурсивную процедуру simpson. Нерекурсивный вариант процедуры дан в алгоритме 182а.

real procedure integral (f,a,b,eps);

value a,b,eps; real a,b,eps; real procedure f; begin real absarea; integer level;

real procedure simpson (f,a,da,fa,fm,fb,absarea,est,eps); value a,da,fa,fm,fb,absarea,est,eps; real a,da,fa,fm,fb,absarea,est,eps; real procedure f; begin real dx,xl,x2,estl,est2,est3,fI,f2,f3,f4,sum; dx:=;da/3; xl:=a + dx; x2:=xH-dx; fl:=4Xf(a + dx/2); f2:=f(xl); f3:=f(x2); f4:=4Xf(a+2.5Xdx); estl:=(fa + fl+f2)Xdx/6; est2:=(f2+fm + f3) Xdx/6; est3:=(f3 + f4+fb)Xdx/6;

absarea: = absarea-abs (est) +abs(estl) +abs(est2) + i

abs(est3);

sum:=estH-est2 + est3; - f

level:=level + l;

simpson:=

if abs (est-sum) eps X absarea Aestl) N/level 20 then sum else

simpson (i,a,dx,fa,fl,f2,absarea,estl,eps/1.7) + simpson (f,xl ,dx,f2,fm,f3,absarea,est,eps/1.7) + simpson(f,x2,dx,f3,f4,fb,absarea,est3,eps/1.7); \

level:=level-1

end simpson; level:=l; absarea:=l;

integral:= j

simpson(f,a,b-a,f(a),4xf((a+b)/2,f(b),absarea,l, eps) end integral;

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

Алгоритм 1456 получен из алгоритма 145а путем внесения в него поправок, предложенных О. С. Квасовым в его «Замечании к алгоритму 145а» [26].

Алгоритм 1456 был транслирован в системе 4-70, и с его помощью были правильно вычислены интегралы, приведенные ранее в свидетельстве к алгоритму 182а [26], а именно

3 90 ЭТ.1

\хЧх = 9\ \-;m{x:k)d{xjk) = \ и J sm{x/k)d{x(k) =

о о -93

= 0.00174533289, где А= 57.2957795 и х выражено в градусах.

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

Алгоритм 145а получен в результате ординарной переработки алгоритма 145 (McKeeman W. М. «САСМ», 1962, № 12) и внесения в него поправок, указанных в нижеследующем «Подтверждении» В. Мак-Кимена и в «Замечании» М. Пайка (Pike М. С. «САСМ»,



1965, № 3), которое здесь не публикуется, потому что кроме этих поправок оно не дает новой информации читателю.

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

В. М. Мак-Кимен (МсКеетап W. М. «САСМ», 1963, № 4) Предлагаются следующие изменения ... *

С этими изменениями процедура integral была переведена на BALGOL и проверена на большом числе функций. Примеры ее поведения даны в табл. 21. Использовалась машина Burroughs 220 с плавающей запятой и мантиссой из восьми десятичных цифр.

Входные данные: а=-9; й=Ю00 и функция f{x)=\lsqrt{abs{x)), имеющая особенность в начале координат. Точное значение интеграла равно 206.

Когда рекурсия доводилась до глубины тридцати уровней, то мы нашли для eps=0.0001 результат 206.00005 с относительной погрешностью 0.0000002.

Таблица 21


f(x)=l/sgrt(aBs(x))

iii ii 11 да

V wo 200 500 WO SOD 600 700 800 900 WOO x Рис. 3.

Результат трансляции

Относительная погрешность

200.22251

0.02S

0.01

206.00226

0.0000107

0.001

206.00092

0.0000045

0.0001

205.999885

0.0000007

График на рис. 3 показывает расположение вычисленных точек в районе особой точки функции (для eps=Xs.\).

Каждая вертикальная линия представляет момент вычисления для функции при выполнении обращения integral(f,-9,1000,0.1).

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

Алгоритм 1466 не публикуется здесь, потому что с помощью соответствующих алгоритмов 146 и 146а авторы выпуска не получили удовлетворительных результатов. Вычисление кратных интегралов можцо лроизводить с помощью алгоритмов 326, 182а и 233а.

АЛГОРИТМ 1476

Логарифмическая производная гамма-функции (пси-функция)

Процедура psif (сокращение от psi function - пси-функция) вычисляет логарифмическую производную гамма-функции

ред.)

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





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