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

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

АЛГОРИТМ 176

Решение трехдиагональной системы линейных алгебраических уравнений (с сохранением входных массивов) F4]

Процедури fridiag дает решение трехдиагональной системы линейных алгебраических уравнений: aiX2+biXi+di-0,

aiXi+i+biXi + CiXi.-i+di=0 для i=2, 3,..., n-l,

bnXn-CnXn-i + dn = Q.

Этот метод часто используется для решения разностных уравнений второго порядка.

Длина массивов а, Ь, с, d от I до п, причем с[1] = =й[п]-О, длина массива х от О до п, Ь{1]Ф0. procedure tridiag(a,b,c,d)order: (n) result: (x);

value n; integer n; array a,b,c,d,x; begin integer i; array g[0:n]; g[0]:=x[0]-.=0; for i:= 1 step 1 until n do begin g[0]:=b[i]+c[i]Xg[i--lI; gn]:=-a[il/g[0];

x[i]:(cli] X x[i-l]-l- d[i]) /g[0] end; .

for i:= n step -1 until 2 do xli-l]:=xraxg[i-l]+x[i-l] end tridiag; - . »

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

Алгоритм 176 отличается от алгоритма 17а только тем, что из списка значений процедуры tridiag были исключены массивы а, Ь, с, d, поскольку вызов их по значению не дает никаких .выгод и приводит лишь к затратам машинного времени.

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

Алгоритм 17а получен в результате сокращения и ординарной переработки алгоритма 17 (Sp rague С. F. кСАСМ», 1960, № 9).

С помощью транслятора ТА-1 решена система трех finneUHbix уравнений:

x,-f2x, -3 = 0, . 2x, + 2x,-f -6 = 0,



Получены правильные результаты: 1.00000000, 1.00000000, 2.00000000.

АЛГОРИТМ 186

Рациональная интерполяция с помощью непрерывных дробей [El]

Процедура confr (сокращение от слов continued - непрерывная - и fraction - дробь) данным т точкам {Хг, Уг) ставит В соотвстствис непрерывную дробь в форме

-- 1

Процедура приводит также эту непрерывную дробь к рациональной функции

bt-irbiX + ...+ bjgXe dc + diX-\- . .. + dugXe

где deg не больше чем т-м2 \{deg - сокращение от слова

degree - степень).

procedure confr (m,x,y) result: (a,b,d);

value m; integer m; array x,y,a,b,d; begin real r,s; integer i,j,k,ml; array p,qi[0:m-i-2]; for j:= 1 step 1 until m do begin r:=yffl; s:==xO]; for i:= 1 step 1 until j-1 do

г:==(8-хИ)/(г-аШ); a{j]: = r end j; p[0]: = l; qlO]: = a[ll; ml:=m-f-2; k: = l; mult: for i.: = -l step 1 until ml do рШ:= qW:-0; for i: = 2 step 1 until m do begin

forj==iH-2step -1 until 1 do begin r: = a[ilXq[j]-xli- 1}Xplj]+rfj-l];

P0]: = qtj!l;q{j]:=r end j;

r: a[i] Xqt0]-xli-1 ] Xp [0] ;p [0]:=q[0]; qCO]:=r end i;



if к=2 then go to fin;

for !:= 0 step 1 until ml do ЬШ: = яШ;

к:=2; p[0]:=0;

qCO]: = 1; go to mult; fin: for i:=3 0 stepl until ml do (5p]: = q[i] end confr;

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

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

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

Алгоритм 18а получен в результате исправления, сокращения, некоторой оптимизации и ординарной пере-раббтки алгоритма 18 (Floyd R. W. «САСМ», 1960, № 9).

Проведено контрольное решение на трансляторе ТА-1. Для пяти точек {х.и tji), указанных в табл. 7,

Таблица 7

50 -40

65 25

60 10

95 30

75 -20

определялась соответствующая непрерывная дробь в форме

X - X,

X - Xi

х - х.

а также соответствующая рациональная функция bo + bx + bjX-

Получены результаты, совпадающие с результатами ручного счета (табл. 8).




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