Главная страница  Алгоритмы 

[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] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57]

real procedure sphben(r,x);

value r,x; real x; integer r; .

begin real z,t,s; integer i;

if x=0 then go to signal49;

s:=-cos(x)/x;

t: = sin(x)/x;

for i:= 1 step 1 until r do

begin z: = s; s: = sX (2Xi-l)/x-t; t:=z end; sphben: = s end sphben;

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

Алгоритм 496 получен из алгоритма 49а путем исправления в нем ошибки, указанной в нижеследующем «Заме-чанн1ькалгоритму 40а» В. Я. Андерсона (эта ошибка содержалась и в исходном алгоритме 49).

Алгоритм 496 был транслирован на машине М-220 в системе ТА-1М и для г=Ч, 2, 3 и х=0.т, 0.1, 1,- 1.5, 5 дал результаты, которые совпали ic контрольными с точностью до одной единицы последней (восьмой) значащей цифры, выданной на печать. Контрольные данные брались из «Таблиц сферических функций Беоселя» [38] с учето;М соотношения [3, с. 203]

В частности, .были получены следующие результаты:

- 10000.499 для г = 1 и х=0.01,

-100.49875 дляг=1 л: = 0.1,

0.18043836 для г=1 л: = 5,

-3.60550176 для г = 2 х=:1,

-3.7892735 для г = 3 л: =1.5.

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

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

В алгоритме 49 были .сделаны следующие исправления:



1) в случае х==0 вместо присваивания функции Неймана значения 10" сделан переход к глобальной метке signaH9;

2) параметр цикла i и формальный парамет1р г были отнесены к типу integer;

3) переменная s была локализована в теле процедуры.

Замечание к алгоритму 49а

В. Я. Андерсон, Новосибирск, август 1968 Оператор

s: = sX(2Xi-1)/(х-t);

Юлжен быть заменен на оператор

s: = sX(2xi-1)/х-t;

Без этой поправки правильные (результаты получаются только при г=0. После внесения поправки будет выполняться функциональное уравнение

W =Щ-Р i) - Лр-/И; {р +:о.5 = О-

АЛГОРИТМ 506

Обращение конечного сегмента матрицы Гильберта[F1]

Процедура invhilbert вычисляет элементы обращен-ого конечного сегмента порядка п матрицы Гильберта и запоминает их в массиве s. Матрица Гильберта имеет Влементы h[l, /] = l/(/ + /-1). Известно, что обусловлен-iocTb сегментов ухудшается с возрастанием их порядка, procedure invhilbert (n) result: (s);

value n; integer n; array s; begin integer i,j,k; real w; w: = s[l,l]: = nXn; for i:=: 2 step 1 until n do *

r w: = s[i,i]:=wX({n + i-l)X(n-i+l)/(i-l)t

; 2) 12;

for i:= 1 step 1 until n-l do for j:= i + 1 step 1 until n do



begin k:=i-l;

s[i,j]:=-sIi,lc]X {n + k) X (n-1<)/1<2 end;

for i:= 2 step 1 until n do for j:= 1 step 1 until i do slij]: = s0,i]: = s0,i]/(i+j-1) end invhilbert;

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

Алгоритм 506 является стереотипным переизлаи!ием алгоритма 50а.

Алгоритм 506 был транслирован на машине М-220 в системе ТА-1М, и были повторены расчеты П. Наура, приведенные в нижеследующем его «Замечании и подтверждении к алгоритму 50».

1. Обращенная матрица порядка 4X4 отличалась от приведенной П. tfayp~offl~ лшпь последним элементом s[4,4], который получился равным 2800.0000 (выводились ,на печать лищь восемь из девяти значащих цифр результата).

2. Относительные ошибки в результатах решения для п=3, 6, 9, 12 находились так же, как и у П. Наура, и получились следующими (табл. 22).

Таблица 22

Порядок п

Элемент с максимальной ошибкой

Абсолютное значение максимальной ошибки

Наибольший элемент результата

Относительная ошибка

1.92X102

7.63Х10-*

4.41X10»

1.73X10-"

5.00X10-

1.22X10"

4.10Х1С-"

8,2]

1.28X10*

3.66X10=

4.59X10-=

При «=15 в машине М-220 возникло переполнение, поскольку наибольший элемент результата оказался больше 10 (максимального представимого числа в этой машине).

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

Алгоритм 50а получен в результате ординарной neipe-работки. процедуры invhilbert, приведенной в нижесле-




[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] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57]

0.0211