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

{xll],x{n-l]), то формулы Лаграижа работают как экстраполяционные. При интегрировании значение xarg несущественно;

х1,х2 - нижний и верхний пределы интегрирования. При интерполяции и дифференцировании значения х\ и х2 несущественны.

procedure difint(njt,xarg,xl,x2,x,y)result: (res);

value n,jt,xarg,xl,x2; real xarg,xl,x2,res;

integer n,jt; array x,y; begin real ca,cb,cc,a,b,c,sl,s2,tl,t2,t3,sum;

integer j,js,j2,i,jl; switch beta:=no9,no5,no6; start: if jt=3 then go to intgr;

if xargx[n-1] then begin j:=n-1; js: = l; go to term end;

if xarg,x[2] then

begin j: = 2; js: = l; go to term end; comment Определение места аргумента в таблице;

js:=2;

for i:=2 step 1 until n do

begin if xarg<x[i] then go to term; j: = i end; no5: ca: = a; cb:=b; cc: = c; js: = 3; j: = j + l; go to term;

no6: a:=(ca-ba)/2; b:=(cb-bb)/2; c:=(cc--c)/2; no9: if jt=2 then go to diff; lntrp:res: = a X xargf 2+b X xarg-j-c;

go to fin; "

diff: res:=2XaXxarg+b;

go to fin; intgr:sum: = 0; sl: = xl;

j2: = n; jl: = 2;

for i: = l step 1 until n do begin

if xlx[i] then go to nol7; jl:=jl + l end;

noI7: for i:= 1 step 1 until n do

begin j2:=j2-I;

if x2x[j2-bl] then go to lagr

end i; term: jl:=j2:=j;

lagr: for j:=jl,jl + l step 1 until j2 do

begin a:=x[j-1]-x[j]; ;

b: = x[j-1]-x[] + I]; c:=:a-b; tI:=:y{i-l]/(aXb); t2:=y[i]/(aXc); t3:=-y[j + l]/(bXc); a:=tH-t2-bt3;

b:=-(x[i] -bxO-M]) Xtl-(x[j-l] +x[j + l]) Xt2 -(x[-I]+x[i])Xt3;

c:=x[j]Xx[i +l]Xtl-f x[j-l]XxO +llXt2-f x[]-l]XxO]Xt3; if it=53 then go to betaOs]; ifj=jlthen

begin ca: = a; cb:=b; cc:=c; end else



fin:

begin

ca:=(a + ca)/2; cb:= (b+cb)/2; cc:=(c+cc)/2 end; s2:=xlj];

sum:=sum+caX (523-513)/3 + сЬХ (522-&12)/2

+ ccX(s2-si); ca:=a; cb:=.b; cc:=c; sl: = s2 end j;

res: = sum + caX (х23-slf 3)/3+€bX (х22-512)/2+ссХ

(x2-sl); end difint;

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

Алгоритм 776 получен из алгоритма 77а путем внесения в него-модификации, предложенной Э. М. Каплинским в его «Замечании к алгоритму 77а» [38].

Алгоритм 776 был транслирован на машине М-220 в системе ТА-1М, и с ним были проведены расчеты для значений параметров х1=0; x2=:2; x[i]=xl +(i-l) {x2-xl)ln, где n=5, 10, 20, 50, 100, 200; y[i\==exp{xli]) для i=l, 2,..., n+l; xarg=0.5, 0.9, 1, 1.077, 1.57, 2.1, 2.5; jt=l, 2, 3. Некоторые из результатов приведены в табл. 12 (для п=200) и 13 (для xarg 1.57).

Таблица 12

xaig

Результаты трансляции

Контрольные значения

Интерполяция

Дифференцирование

1.6487213

1.6487073

1.6487212

2.4596031

2.4595822

2.4596031

2.7182819

2.7182586

2.7182818

1.077

2.9358582

2.9358646

2.9358587

1.57

4.8066479

4.8066064

4.8066481

8.1640434

8.1120029

8.1661699

11.988269

II.009126

12.182493

Таблица 13

Результаты трансляции

Интерполяция

Дифференцирование

Интегрирование

5 10 20 50 100 200

4.8118901 4.8068337 4.8066721 4.8066456 4.8066484 4.8066479

4.6542744 4.8055027 4.8078594 4.8067138 4.8067283 4.8066064

6.3520786 6.3859727 6.3888324 6.3890498 6.3890554 6.3890563

Контрольные значения

4.8066481

4.8066481

6.3890561

Контрольные значения для табл. 12 были получены в результате вычисления значений машиной М-220 по стандартной программе



системы ТА-1М. Последние две строчки в табл. 12 показывают гораздо большие погрешности интерполяции и диф.ференцирования вследствие того, что в этих случаях {xarg=2A и 2.5) формулы алгоритма работают как экстраполяционные.

Контрольные значения для интегрирования были получены в ре-

зультате вычисления машиной М-220 значения интеграла J edx=e - 1

по стандартной программе системы ТА-1М. Точно такое же значение е- можно найти в таблицах Б. И. Сегала и К. А. Семендяева [37, с. 450].

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

Алгоритм 77а получен в результате исправления, сокращения и ординарной переработки алгоритма 77 (И е п п i о п Р. Е. «САСМ», 1962, № 2). Кроме ошибок, указанных в нижеследующих «Подтверждении» и «Замечании», в алгоритме 77 было исправлено следующее.

1. Метка start стояла перед описанием. По-видимому, она должна стоять перед первым оператором процедуры.

2. Оператор, следующий после

comment End of loop on [jm] index;

должен иметь вид

sum: == sum -bca X (xup f 3-sylf 3) /3 +tb Xi (xupf 2-sylf 2)/2 -b

ccX (xup-syl);

В алгоритме 77a этому оператору соответствует оператор в седьмой строке от конца процедуры.

3. В примечании к алгоритму 77 отсутствовали сведения о значениях формальных параметров в заголовке процедуры.

Идентификаторы алгоритма 77а соответствуют идентификаторам алгоритма 77 следующим образом:

п-пор

si - syl

«017-

Ш

xl -xlo

tl -

terml

s2 - syu

intrp -

LIQ

х2 - xup

t2 -

term2

noZ - £.5

diff-

Lll

X -xa

t3 -

term?,

no6 - L6

intgr -

У -У а

no9 - L9

larg -

Lie

] -jm

Перевод «Замечания к алгоритму 77» (Hennion P. Е. «САСМ», 1963, № 8) здесь не .приводится, поскольку в дальнейшем был опубликован его исправленный вариант («САСМ», 1963, № 11).

Алгоритм 77а проверен с помощью транслятора ТА-1 для функций logx при xarg=2.5, п = 21, л;1 = 1, л;2=2 с равным шагом по аргументу *.

* Результаты трансляции, приводившиеся ранее в «Свидетельстве к алгоритму 77а» 123], здесь опущены, поскольку в «Свидетельстве к алгоритму 776» даны более точные, детальные и показательные результаты решения по этому алгоритму. (Прим. ред.)





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