Главная страница Алгоритмы [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] for i:= 2 step 1 until n do begin c: = ((2 X i- 1-x) ХЪ- (i- 1) X a) /i; a:=b; b: = c end; Iagl:=c .\ end lagl; Свидетельство к алгоритму 126 Процедура lag алгоритма il26 получена из процедуры lag алгоритма 12а путем внесения одной модификации, имеющей целью ускорение работы процедуры. Был добавлен оператор п:=п-1; и внесены соответствующие коррективы в условный оператор. Процедура lagl была составлена заново по рекуррентной формуле, приведенной Б работе Е. Янке и др. [32, с. 147]. Алгоритм 126 был транслирован на машине М-220 в системе ТА-1М. С помощью процедуры lag для rt=il(l)4 при х=1 были получены значения О, -!, -4, -15, а при л;=2 -значения -1, -2, -2, 8. С помощью процедуры lag] для п=1(1)5 при х=\1 были получены значения О, -1/2, -2/3, -5/8, -7/15, а при х=-2-значения -1, -1, -1/3, 1/3, 11/15 (с точностью до одной единицы последней значащей цифры). Правильность этих результатов проверялась путем сравнения с результатами непосредственного вычисления полиномов Лагерра по формулам, приведенным в работе Е. Янке и др. [32, с. 147]. При этом было обнаружено, что в этой работе формулы для Li{z) и Ьъ{г) приведены неверно. Эти формулы должны иметь .вид L4(Z) =1-42-Ь322-2/303-f 1/242; U{z) = l-Se-f 5г2-5/згН V2424-Vi2oz5. Свидетельство к алгоритму 12а li Алгоритм 12а получен в результате исправления и ординарной переработки алгоритма 12 (G а 11 е г G. М. «САСМ», 1960, № 6). Исправлена опечатка - отсутствие точки с запятой перед последним оператором тела процедуры. Алгоритм проверен для п=0, 1, 2, 3 непосредственным вычислением. АЛГОРИТМ 136 Значения полинома Лежандра [S16] Процедура leg вычисляет значения пОлинома Лежандра Р„(х) = (1/(2"Х«!))Хс?"/с?---1)" для любого действительного аргумента х и любого порядка п по рекуррентной формуле Рп+г (X) - хРп W - Рп-. W [37.С. 66 1]. real procedure Ieg(n,x); value n,x; real x; integer n; begin real a,b,c; integer i; a: -I; b:=x; if n=0 then c: = a else if n=l then c:=b else for i: = 2 step 1 until n do begin c:=bXx+(i-l)/iX(bXx-a); a:==b; b: = c end; Ieg:=:c end leg; Свидетельство к алгоритму 136 Алгоритм 136 получен из алгоритма 13а путем тождественных преобразований в операторе цикла процедуры leg для ускорения ее .работы. Алгоритм- 136 был транслирован в системе ТА-1М на М-220 и для п = 0(1)4при х==2 дал результаты 1, 2, 5.5, 17, 55.375, правильность которых легко проверяется непосредственным вычислением значений полиномов Лежандра по формулам, приведенным, например, в работе Е. Янке и др. [32, с. 160]. Свидетельство к алгоритму 13а Алгоритм 13а получен в результате исправлений й ординарной переработки алгоритма 13 (Galler G. М. «САСМ», 1960, № 6). Была исправлена опечатка-от* сутствие точки с запятой .перед последним операторозл тела процедуры. Подтверждение к алгоритму 13 Дж.Херндон (Herndon J. «САСМ», 1961, № 4) Алгоритм был переведен на БАЛГОЛ и проверен на машине Burroughs 220. Процедура leg (п, х) дала точ-ность более семи знаков для п-0, 1, 4, 9 и для х=0, 0.1, 0.2. 0.7, 1.9, 5.0. АЛГОРИТМ 146 Комплексная интегральная показательная функция [iSl3] Процедура efe-вычисляет функцию w{k, z) = u-{-iv = ==z4 Vird-i путем представления ее в виде непрерыв- ной дроби, взятой из работы Уолла i[17i]. Входные пара-.метры: X, у, k и eps, причем z=x+iy. Последовательные приближения вычисляются следующим образом: для п=2, 3, 4,... где m = k-1-{-{п -2)12, если п четное, (л - 2)/2, если п нечетное. Вычисления прекращаются, когда С„ и Сп-1 начинают отличаться на величину, определяемую параметром eps. Соответствующий индекс п может понадобиться после вычисления процедуры. Этот метод имеет силу на всей комплексной плоскости, за исключением начала координат и отрицательной вещественной оси. Сходимость очень медленная для z<0.05 и для некоторой области внутри полуполосы 11 <2, х<0 (эта область зависит от k). Метод пригоден для комплексного k, но в данной процедуре рассматривается только вещественное к. procedure ekz (x,y,k,eps) result: (u,v,n); value x,y,k,eps; real x,y(k,eps,u,v; integer n; begin real m,p,q,a,b,c,d,epsl,w; integer r; r; comment R=a + ib, D = c+id, C = u + iv; epsl: = epsf2; u:=c: = a:=l; n: = l; [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.0134 |