Вторая пачка часть 17


29); за¬т¬ем по¬лагаем k = 2 - и определяем эле-мен¬ты вто¬рой стрки и т.д. Когда k = n, тогда най¬де¬ны все эл嬬мен¬ты матриц S и D, а следовательно и S*. За¬тем последовательно вы-пол¬ня¬¬ем вы¬чис¬ления (1.28): S* Z = F; D Y = Z; S X = Y обыч¬ным ходом по формулам (1.30) при i = 2, 3, ..., n. Попутно заметим, что определитель матрицы А можно вычислить из выражения . (1.31) Этот метод экономичен, требует n3/3 ариф¬м嬬тических действий и при больших n ( n > 50) вдвое бы¬стрее метода Га¬усса. Если за основу про¬цедуры при¬нять алгоритм П5.6 Дья¬конова [1987], то тогда метод квад¬ратного кор¬ня мо¬жет быть ре¬а¬¬ли¬зован c помощью сле¬дующей про¬це-ду¬ры: PROCEDURE KVK (M, N : INTEGER; AA: ARRAY OF REAL; BB : ARRAY OF REAL; VAR C: ARRAY OF REAL); TYPE MAS1=ARRAY [0..4] OF REAL; MAS=ARRAY [0..4] OF MAS1; VAR A : MAS; J, K, I : INTEGER; S, C1 : REAL; BEGIN I := 0; FOR J := 1 TO M DO FOR K := 1 TO N DO BEGIN INC (I); A[J,K] := AA [I]; END; FOR J := 1 TO N DO BEGIN FOR K := J TO N DO BEGIN S := 0.0; FOR I := 1 TO M DO S := S + A[I,J] * A[I,K]; C[K] := S; END; C1 := 0.0; FOR I := 1 TO M DO С1 := C1 + A[I,J]*BB[I]; FOR I := J TO N DO A[I,J] := C[I]; C[J] := C1; END; A[1,1] := SQRT (A[1,1]); FOR J := 2 TO N DO A[1,J] := A[J,1] / A[1,1]; FOR I := 2 TO N DO BEGIN S := 0.0; FOR K := 1 TO I-1 DО S := S + A[K,I]*A[K,I]; A[I,I] := SQRT (A[I,I] - S); FOR J := I+1 TO N DO BEGIN S := 0.0; FOR K := 1 TO I-1 DO S := S + A[K,I]*A[K,J]; A[I,J] := (A[J,I] - S) / A[I,I]; END; END; C[1] := C[1] / A[1,1]; FOR I := 2 TO N DO BEGIN S := 0.0; FOR K := 1 TO I-1DO S := S + A[K,I] * C[K]; C[I] := (C[I] - S) / A[I,I]; END; C[N] := C[N] / A[N,N]; FOR I := N-1 DOWNTO 1 DO BEGIN S := 0.0; FOR K := I+1 TO N DO S := S + A[I,K] * C[K]; C[I] := (C[I] - S) / A[I,I]; END; ЕND
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz