# Вторая пачка часть 44

..,0). В ну¬ле-вом цик¬ле первой итерации про¬це¬¬ду¬ра INVEQU оп¬ре¬де¬ляет в ка¬честве строк мат¬ри¬цы w стол¬бцы матрицы a, для всех по¬сле¬ду¬ю¬¬щих итераций стро¬ки матрицы w, вы¬¬чис¬лен¬¬ные в n-м цикле последней ите¬рации, яв¬ля¬ют¬ся стро¬¬ка-ми матрицы w нулевого цикла. PROCEDURE INVEQU (A:MAS2; B:MAS1; N,COUNT: INTEGER;EPS:REAL; VAR W: MAS2; X: MAS1; C:MAS2); VAR BH,Z : REAL; I,J,P : INTEGER; LABEL BEG; BEGIN FOR J:=1 TO N DO FOR I:=1 TO N DO W[J,I]:=A[I,J]; BEG: FOR J:=1 TO N DO FOR I:=1 TO N DO C[I,J]:=0; BH:=B[1]; FOR J:=1 TO N DO BEGIN FOR I:=1 TO N DO C[J,J]:=C[J,J]+W[J,I]*A[I,J]; Z:=BH/C[J,J]; FOR I:=1 TO N DO W[J,I]:=Z*W[J,I]; FOR I:=1 TO N DO IF I<>J THEN BEGIN FOR P:=1 TO N DO C[I,J]:=C[I,J]+A[P,J]*W[I,P]; IF I=1 THEN Z:=B[J] -C[I,J]; ELSE Z:=0-C[I,J]; FOR P:=1 TO N DO W[I,P]:=BH*W[I,P]+Z*W[J,P] END; BH:=1 END; Z:=ABS(B[1]); FOR J:=1 TO N DO IF ABS(ABS(C[J,J])-Z) > EPS THEN BEGIN COUNT:=COUNT-1; IF COUNT > 0 THEN GO TO BEG END; FOR J:=1 TO N DO X[J]:=W[1,J] END. Процедура INVEQU получена из процедуры simult [Агеев, 1976] путем ее перевода с языка ALGOL на язык PASCAL. Проверка процедуры INVEQU производилась в це¬лях контроля для тех же входных параметров, что и в ра¬¬бо¬те Агеева (1976). При этом для вход¬ных парамет¬ров , n = 3, count = 3, 6, 10 и eps = 1e - 3, 1e - 5, 1e - 8, при всех зна¬¬че¬¬ниях count и eps были получены сле¬ду¬ю¬щие ре¬зуль¬та¬ты, совпадающие с полученными Агеевым (1976): 1) для b = (1, 0, 0) ; 2) для b = (9, -2, 7), x = (-1, 2, 3) . Для матрицы, транспонированной от мат-ри¬цы A, ис¬¬пользованной в первом тесте, результаты так¬¬¬же хо¬ро¬¬шо совпали с результатами, при¬ве¬ден¬¬¬ны¬ми М.И. Аге¬¬евым (1976): 1) для b = (1, 0, 0): ; 2) для b = (9, -2, 7): x = (-0.42536367e-10, 3, 2), , точ¬ное решение уравнения (1.23), как указано Аге¬е¬вым (1976), при этих входных данных x = (0, 3, 2)

Индекс
Элементарные функции Линейные уравнения Нелинейные уравнения Случайные числа