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

[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]

Одновременное интегрирование нескольких таблично заданных функций D1]

Процедура quad полезна тогда, .когда требуется одновременное интегрирование нескольких функций в одних и тех же пределах .с использоваиием одних .и тех же узловых точек. Интервал [а, 6] дтится на т равных подынтервалов для п-точечного интегрирования по «большой» квадратурной ф.ормуле. Параметр р-его число функций, подлежащих интегрированию; с[Щ - нормированные веса, и[Щ-нормированные абсциссы, причем fe=l, 2,...,п. Процедура f{t, j) задается программистом, она вычисляет у-ю функцию от аргумента t; sum [у] -результат интегрирования у-й функции, procedure quad (a,b,m,n,p,c,u,f)result:(sum);

value a,b,m,n,p; real a,b; integer m,n,p; array u,c,sum; real procedure f; begin real h,t,r; integer i,j,k; h:-(b-a)/m; for j:- 1 step 1 until p do begin sum{j]:=0; r: = a-h; for i:= 1 step 1 until m do begin r:-r + h; for k:= 1 step 1 until n do begin t:=r+utklXh; [ sumlj]: = sumfj]+c[klxf(t,j)

.; end к

end i; sum[j]: = h X sumtj] end j

end quad; , •,

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

Алгоритм 16 получен в результате несущественной переработки алгоритма 1а, заключавшейся в том, что параметры т, пи р процедуры quad были включены



в список значений, а в пояснительный текст алгоритма 1а было внесено несколько уточнений. Алгоритм 16 был транслирован в системе БЭСМ-АЛГОЛ, и с его помощью было повторено решение для примеров, .приведенных в «Свидетельстве к алгоритму 1а». Результаты полностью совпали с данными табл. 1.

См. также «Подтверждение к алгоритмам 1а, 7а, ИЗа» И. Р. Гитмана в выпуске «Алгоритмы (151-200)» [27, с. 171].

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

Алгоритм 1 а получен в результате перевода с языка АЛГОЛ-58, ординарной переработки и некоторых сокращений алгоритма 1 (Herb о Id R. J. «САСМ», 1960, № 2). Поскольку алгоритм 1 был составлен на основании формулы Гаусса, имеющей вид

= 4-]S" [a-f 4(г + и.)

1=0 k=l

где h={b-a)lm, а в советской литературе [3, с. 107- 116] используется другой ее вид:

т-1 п

S = h 2 cnf[a + h{i.u)] =

= hCnf[a-\-h(i-l-Uu)]. 1=1 fe=i

и соответственно в таблицах даются в два раза меньшие значения для коэффициентов и ы, то в алгоритме 1а всюду /г/2 было заменено на h.

После переработки были проведены с помощью iipaiHC-лятора контрольные решения для трех .интегралов:.



= {dx=3.

Для т=ЛО получены результаты, указанные в табл. 1.

Таблица 1

Интеграл

n - S

n = 8

n = 12

39.0000000

39.0000000

38.9609574

162.750000

162.750000

162.586803

3.00000000

3.00000000

2.99700000

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

Алгоритм 26 не .публикуется здесь потому, что соот-.ветствующий ему исходный алгоритм 2 был позднее заменен в журнале «САСМ» более совершенным алгоритмом 26. (См. «Замечание к алгоритмам 2, 3, 15, 25 и 26» Дж. Вилкинсона, помещенное за описанием алгоритма 266.)

АЛГОРИТМ 36

Нахождение комплексных корней полинома методом Берстоу - Хичкока [С2]

В процедуре bairstow итерация Берстоу - Хичкока используется для последовательного нахождения пар корней полиномиального уравнения степени п с коэффициентами аЩ (г=0, 1, п), где а[п]-.свободный член.

Выходные параметры:

пит - число пар найденных корней {пит - начальные буквы слова number-число);

"ГП. (г=1, 2,пит)-пара действительных корней, если nat[i]=\ (nat - начальные буквы слова natural - естественный), или действительная и мнимая Части комплексной пары, если nat[i]=-1;

ex[i] указывает, по какому из следующих четырех условий произошел выход {ех - начальные буквы слова exit - выход) из итерационного цикла при нахождении Пары корней л;[г], г/[f];




[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.0218