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

a:=b:=0; . ;

if x=0 Л У-0 then go to fin;

pi:==3.14159265359; . .

, phi:=if x=0 then 0.5XpiXsign(y) eise arctan(y/x)+ (if x>0 then 0 else if yO then pi else-pi);

r:=(xXx+yXy)t(w/2);

a: = rXcos(wXphi);

b:=rXsin(wXphi); fin: end powc;

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

Алгоритм 1066 получен из алгоритма 106а путем исправления двух очевидных опечаток (в двух числах 3.14159265359 и 0.5 вместо точек были запятые), указанных в «Замечании» В. Я. Андерсона [26].

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

Алгоритм 106а получен в результате исправления, сокращения и ординарной переработки алгоритма 106 (Johnson М. L., Sangren W. «САСМ», 1962, № 7). Были внесены четыре поправки, указанные в «Замечании к алгоритму 106» (Erwin G. W. «САСМ», 1962, Л-о 11).

Алгоритм 106а транслирован при w-3 и следующих значениях остальных параметров:

Входные данные Результаты

1. x+tV=3i; я=-0.168947736X10-•; 6=-27.

2. x,+iy=-3i; я=-0.168947736Х10-»; 6=27.

3. x-bi>=4+3t; я=-44; 6=117.

4. x-f-t>=4-3t; я=-44; 6=-117.

5. x+iy=-1+3i; я=44; 6=116. 999999.

6. x+iy=-i-3i; я=44; 6=-116. 999999.

Результаты трансляции совпадают с результатами ручного счета, кроме случаев 1 и 2, где а должно быть равным нулю. Ошибка возникает из-за погрешности вычисления е и 1пх по стандартным программам.

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

Алгоритм 1076 не публикуется здесь потому, что соответствующий алгоритм 107 (Counts J. W. «САСМ», 1972, № 7) был позже заме нен алгоритмом 126 (Counts J. W. «САСМ», 1962, № 10).

АЛГОРИТМ 1086

Определенные экспоненцивльные интегралы Л [S13]

Обращение к процедуре-функции as{n,b) дает значение интеграла

Ь) = л"-Хехр(-6л;)с?л



для любого положительного целого п й любого положительного вещественного параметра b по рекуррентной формуле

An{\,b)=Ao{\,b) + {njb)An-i{\,b), где Ло(1,Ь)=ехр(-Ь)/Ь.

real procedure as (п,Ь);

value n,b; real b; integer n; begin real a,al,db; integer m;

db:=l/b; a:=al:=dbXexp(-b);

for m:=2 step 1 until n do a:=al + dbX(m-1) Xa;

as:=a end as;

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

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

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

Алгоритм 108а получен в результате сокращения, оптимизации й ординарной переработки алгоритма 108 (Кругляк Ю. А., Whitman D. R. «САСМ», 1962, № 7). Оптимизация состояла в замене массива а[1:л] простыми переменными а и al.

Алгоритм проверен с помощью транслятора ТА-1 с исходными данными из «Подтверждения к алгоритму 108», приведенного ниже. Значение п было взято от 1 до 9 включительно. Результаты совпадают с указанными в «Подтверждении» не менее чем в семи значащих цифрах.

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

Ю. А. Кругляк, Д. Уитмен (KruglyakY. А., Whitman D. R. «САСМ», 1962, № 7)

Интегралы Л„(1, Ь)- л"ехр(-bx)dx встречаются в задачах физи-

ки, в которых используются сфероидальные бицентрические координаты, в частности в квантовохимических расчетах.

Таблица 2

6=0.25

6=24.0

Алгоритм 108

По даЕ1ным Миллера и др.

Алгоритм 108

По данным Миллера и др.

0.3II52031X10

0.15576015X10»

0.12772332X103

0.153S79S0XI04

0.24575835X10=

0.49151976X10=

0.11796476X108

0.33030132X10»

0.10569642X10"

O.380507I1XI0"

0.I52202S4XI0"

0.66969248X10=

0.32145238X10"

0.167IS523XI0»*

0.93606928X10=»

0.S6164IS6X10""

0.31152031322856X10

0.15576015661428X10»

0.12772332842371X10»

0.I535795I442I68XI0*

0.24575837510601X10=

0.49151986541516X10»

0. И 7964798 85167X10»

0.33030143989988X10»

0.10569646079911X10"

0.38050725887992Х Ш"

0.15220290355200X10"

0.66969277Б62880Х105

0.32145253230182X10"

0.16715531679695X10»

0.93606977406291X10»»

0.56164186443775X10»»

0.15729727X10-" 0.Ш385132Х10-" 0.17095I54X10-" 0.17866621XIO-" 0.18707497X10-" 0.19627122XI0-" 0.20636507X10-" 0.2I748707XI0-" 0.22979295Х10-" 0.24346962X10-" 0.25874294XI0-" 0.27588778XI0-" 0.29524115X10-" 0.3172I955XI0-" O.34234200XI0-" 0.37I26I02X10-"

0.15729727267830X10-" 0.16385132570656XI0-": O.I70951549S205IXIO-" 0.1786662I640586XIO-" 0.18707497Б41261Х10-" 0.19627122588926X Ш-и 0.20636507915061Х10-" 0.21748708743056X10-" 0.22979е96848848Х10-и 0.24346933586I48XI0-" 0.25874295428724X10-» 0.27588779339328XI0-" 0.29524U 6937494XI0-" 0.3I72I957275639XI0-" 0.34234205345285X10-" 0.37126I03733633X10-"



Алгоритм был запрограммирован для вычислительной машины Burroughs 220, использующей транслятор Burroughs Algebraic Compiler. Программа была использована для вычисления значений An-iil,b) при л=1, 2, 16 и Ь=0.01, 0.02, 30.14. Например, для п-1, 2, .... 16; fc=0.25 и Ь=24 были получены результаты, приведенные в табл. 2. Они сравнивались с результатами (столбцы 3 и 5), приведенными в работе Миллера и др. [9i]. Во всем интервале точность, не менее шести значащих цифр. Такая точность вполне достаточна для . квантовохимических расчетов.

АЛГОРИТМ 1096

Определенные экспоненциальные интегралы В [SIS]

Обращение к процедуре bs{n,a) дает значение интеграла

n-j(«)= 1л:"-ехр(-ax)dx Л

для любого положительного целого п и любого вещественного а.

Если \a\<alim, то для вычисления Вп{а) используется разложение функции ехр(-ах), в противном случае -рекуррентная формула-В„(а)=[(-1)"е°-e-«-b«XBn-i(a)]/G, где Bo{a)=2sh{a) ja. Значение dettalOd равно модулю наибольшей возможной погрешности в значениях библиотечных процедур, а значение alim выбирается в зависимости от deltal09 и от максимального значения, которого достигает п при вычислениях. Например, можно взять alim=8 для Лтах=16 » deliam=lO-

real procedure bs(n,a,alim,deltal09);

value n,a,alim,deltal09; real a,alim,delta 109; integer n; begin real r,eps,s,k,a2,da,dr; integer m;

if a=0 then

begin bs: = if n-f-2x2=n then 0 else 2/n; go to fin end; comment Предыдуший оператор вычисляет Bn i (0); if abs(a) <alim then begin a2:=af2; if п-г-2х2:?п then

begin s:=r:=2/n; k:=0 end else begin s:=r:=2Xa/(n-H); k:=l end; eps:=abs (r X delta 109); iter: k:=k+2;

r:=rXa2X (n-bk-2)/ (kX (k-1) X (n-f k)); s:=s-br;

if abs (r)> eps then go to iter; bs:= if n-2X2=n then - (s-f r) else s-f r; go to fin end if abs;

comment Предыдущие операторы вычисляют Bn-iCa) для a< <alim;

da:=l/a; r:=exp(a); dr:=l/r; s:=(r-dr)Xda; k:=-1;





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.0017