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

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

t:=-2Xx2Xe/u; h:=tXh; r:=r--h;

go to if abs(h/r)<epsl then calc else reg; s4. if abs(fl)<abs(x2xl0) then

begin xO:=xl; xl:=x2; x2: = fl; cl:=t; go to Iter end;

t:=0.5xt; h:=0.5xh; , .

r: = r-h; . •

reg: +

calc: func(r,f); fl: = f;

if jmax then go to fin; for i:= 2 step 1 until к do begin e: = r-c[i-1];

if abs(e) eps3 then fl: = fl/e else begin r: = r--eta; go to calc end

end;

go to if abs(f)<eps2 Д abs(fl)<eps2 then fin else spf j<4 then j else 4]; fin: C![k]: = r

end к end zeros;

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

Процедура zeros алгоритма 256 является стереотипным переизданием процедуры zeros алгоритма 25а (если не считать замены строки букв result на dataresult, не влияющей на работу процедуры).

Алгоритм 256 был транслирован на .машине М-220 в системе ТА-1М, й с его помощью успешно решены следующие уравнения:

1. (л;-3) (л;-3.01) {x-){x+9) {х+13) =0. При п=6 и Ci=0 были получены корни с точностью до 12X10-.

2. cos {лх)=0. При п=5 и Сг=0 были получены кор-т -0.5, 0.5, 1.5, -1.5 и 2.5 с точностью до 5X10-8,

3. sin (jtx)-cos2 (jt)+1/4 = 0. При n=5 и Ci=i были получены корни fe, 27б, 21б, Че и 4/6 с точностью до 10-8. При задании Cj=0 возникло переполнение разрядной сетки.

4. 3*-4*-2Х2*=0. При п=б и Ci-i были получены следующие результаты: -13.822872, -12.863658, 2,8267802, -14.844203, -21.982364. Третий из этих кор-



ней дает точное решение 4:1п{2)/{3tn{2)-tn{3)) данного уравнения. Во всех этих примерах задавались epsl = =eps2=eps3=eta\0- и тах=ЛООО.

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

Алгоритм 25а получен в результате исправления, сокращенин и ординарной переработки алгоритма 25 (Leavenworth В. «САСМ», 1960, № И).

Замечание к алгоритму 25

Р. М. Коллиндж ( с о 11 i п ge R. М. «САСМ», 1961, № 3)

При попытке использовать этот алгоритм обнаружены две следующие ошибки.. .*.

С этими двумя исправлениями алгоритм был переведен на язык Burroughs Algebraic Compiler и успешно использован на трансляторе Burroughs 220.

АЛГОРИТМ 266

Нахождение корня уравнения y=f(,y)iC5]

Процедура root вычисляет значение g=y, удовлетворяющее уравнению y-f{y). Процесс итерации сходится к У при условии, что в некоторый момент g становится таким, что

\g-yi

<2

где производные вычисляются в точке У.

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

f - процедура для вычисления f{y);

а - начальное приближение к корню;

eps - допустимая относительная погрешность з величине К0рня;

* Указываются две ошибки в алгоритме 25, учтенные в алгоритме 25а. (Прим. ред.)



Н - (Максимально допустимое число итерации. Выходные параметры: g-.искомый корень;

c=f{g)-g;

т - параметр, характеризующий успешность выполнения процедуры.

Если отклонение выше допустимого, то т<0. Число 11-1 показывает, сколько раз поправка превосходила предыдущую. Если разность f{y)-y имела одно и то же значение для двух последовательных приближений к корню, то h=\, и мы выходим к нелокализованной в теле процедуры метке signal 26. За меткой signal 26 должны быть предусмотрены средства, определяющие, является ли g приемлемым корнем или нет. procedure root(f,a,eps,n) dataresult: (g,c,m);

value n,a,eps-; real a,eps,g,c; integer n,m; real procedure f; begin real b,d,h; integer]; m:=l; g: = c:=0; if f(0)=Othengotofin; g:=f(a); b: = d: = c:=:g-a; if c=0 then go to fin; for j:= 1 step 1 until n do begin c: = f(g)-g; if abs(c)abs(g) Xeps then, go to fin; h:=b/c; b: = c; if h=: 1 then go to signal 26; if h>0Ah<2 then m:=m+l; d: = d/(h-l);g: = g + d end j; m:=-m; fin: end root;

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

Алгоритм 266 является стереотипным переизданием алгоритма 26а (если .не считать замены строки букв result в заголовке процедуры на dataresult).

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

Алгоритм 26а получен в результате некоторых сокращений и ординарНой переработки алгоритма 26 (Н е г г i о t J. G. «САСМ», 1960, №11).




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