Главная Промышленная автоматика. for = l step 1 until n do if ij then denom: = denomX (xtab[j]-xtab(i]); if terms = 0 then go to yy; ra: = high: = 1; -aa: if (high = j) V (xtab[high]=xp) then begin high: = high+l; go to aa end; if high>n then begin m:=m-1; if mO then go to xx; high: = xuse[m]+l; go to aa end; xusefm]: = high; m:=m+l; if m:terms then begin high:=high+l; go to aa end; for i:= 1 step 1 until terms do part: = partX (xp-xtab[xuse[i]]); sum:=sum + part; m:=terms; part: = l; high: = xus4terms]-f-l; go to aa; yy: sum: = l; xx: coef[j]: = sumXfactk/aenom end j; go to fin; zz: for i: = l step 1 until n do coef[i]: = 0; fin: end dicol; Свидетельство к алгоритму 796 Процедура dicol алгоритма 796 является стереотипным переизданием процедуры dicol алгоритма 79а. В пояснительный текст алгоритма 796 было внесено несколько изменений редакторского характера. Алгоритм 796 был транслирован в системе ТА-1М для М-220 с входными параметрами п=3; =0, 1, 2; xp=G, 2; xtab = l, 3, 6. Результаты трансляции даны в табл. 15. Выражения для коэффициентов Лагранжа при п=3 (=0) даны, например, в работе П. В. Мелентьева [33, с. 127]. Выражения для coef[i\ при k-l и k-2 легко получаются из выражений для coef[i] при k=0 обычным дифференцированием. Имея табличные значения функции уЩ в опорных (узловых) точках xtab[i] и вычислив coef[i\ с помощью процедуры dicol, легко получить значения как самой функции так и любой ее производной в точке Sep по формуле yM=2coef[i]y[i]. 1=1 Например, для функции у-х в точке хр = 2 получаем у=ут=2/5Х1 +2/3X91/15x36=4, 1/=г/0)= 1/2х 1 + 1/2x9+0x36=4, =::=<2)=1/5Х 1-1/3X9+12/16X36=2. Это полностью совпадает с контрольными значениями д{хр)==А; у(хр) =2X2=4 у{хр)=2. Аналитические выражения для coef[i] Контрольные значения coef [i] Результаты трансляции хр=0 coef [1] coef{2] coef [3] {X - Хз){х - Xi) {Xi - Xs){Xi -X2) (x - Xs){X - Xl) {X2 - Xs)(X2 - Xi) (X - Xi){X - Xi) coef [1] coef[2] coef [3] coef{1} coef[2] coef [3]
(Xs - Xi)(X3 - Xl) "10 j4 15 -тг 0 J 3 2 15 "3 2 1.8000000 -1.0000000 0.2000000 -0.90000000 -1.1666666 -0.26666666 0.20000000 -0.33333333 0.13333333 0.40000000 0.66666666 -0.066666666 -0.50000000 0.50000000 0 0.20000000 -0.33333333 0.13333333 Свидетельство к алгоритму 79a Алгоритм 79a получен в результате ординарной переработки и некоторых очевидных сокращений алгоритма 79 (Giammo Т. Р. «САСМ», 1962, № 2). Подтверждение к алгоритму 79 Ева С. Кларк (С1 агк Eva S. «САСМ», 1963, № 3) Эта процедура была переведена на язык ФОРТРАН и проверена на машине CDC 1604. Приемлемая точность была получена для k=0,. 4п<42. При возрастании пик точность снижается. Было обнаружено, что при возрастании п время выполнения процедуры быстро растет. Для k=0 получены результаты, приведенные в табл. 16. Таблица 16
Автор алгоритма 79 указал в письме, что процедура была составлена» для использования с малым п и малым k. АЛГОРИТМ 806 Вычисление обратной гамма-функции с точностью до 10 цифр [S14] Процедура rgrSQ вычисляет обратную вещественную гамма-функцию 1/Г (л;) для любых вещественных значений х при использовании схемы Горнера для вычисления аппроксимирующего полинома. Погрешность метода аппроксимации равна ±2-. real procedure rgr80 (х); value х; real х; begin real у; у:=1; if х> 1 then begin x: = x-1; y: = yXx; go to aa end; y:=i/y; if x<-1 then begin y:=yXx; x: = x-fl; go to cc end; rgr80:= if x=l then у else У X (((((((((({((-0.00000018122 X x+0.000001328554) Xx -0.000002625721) Xx-0.000017527917) Xx +0.000145624324) Xx-0.000360851496) Xx -0.000804341335) Xx+0.008023278113) Xx -0.017645242118) X x-0.024552490887) X x +0.191091101162) Xx-0.233093736365) Xx -0.422784335092),Xx-fl) XxX (x + 1) end rgr80; Свидетельство к алгоритму 806 Алгоритм 806 составлен, по существу, заново в значительно более-краткой и экономной форме, чем алгоритм 80а. Для экономии памяти и машинного времени "тело процедуры rgam алгоритма 80а было использовано внутри процедуры rgrSO в последнем из ее операторов. Это тело было предварительно модифицировано так, чтобы не требовался вспомогательный массив &[0:12], и не вычислялись бы переменные с индексами. Алгорит.м 806 был транслирован на машине М-220 в системе ТА-1М и дал результаты, приведенные в табл. 17. Таблица IT
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 0.0017 |