Вторая пачка часть 33
40) как (i - 1)-я строка матрицы М (так как не ум¬но¬жается!).
??? 7. Если i > 1, то повторить с шага 1.
??? 8. Решаем характеристическое уравнение (мож¬но воспользоваться программой из п. 4.1).
PROCEDURE DANIL (CONST N:INTEGER;
VAR A,M:MAS1; VAR B: MAS11);
TYPE MAS = ARRAY [1..N] OF REAL;
MAS1 = ARRAY [1..N] OF MAS;
VAR I, J, NS,NSP1, K : INTEGER;
X : MAS11; AIJ : REAL;
R, E, S, S1, A1 : MAS1;
BEGIN
FOR I := 1 TO N DO
{ ПРИСВОЕНИЕ НАЧАЛЬНЫХ ЗНАЧЕНИЙ}
FOR J := 1 TO N DO { МАССИВАМ }
BEGIN
IF I=J THEN
S[I,J] := 1
ELSE
S[I,J] := 0.0;
IF I=J THEN
M[I,J] := 1
ELSE
M[I,J] := 0.0;
A1[I,J] := A[I,J];
END;
{ОПРЕДЕЛЕНИЕ ЕДИНИЧНОЙ МАТРИЦЫ}
NS := N- 1;
E:= S;
REPEAT
S := E;
NSP1 := NS + 1;
S1 := E;
FOR I := 1 TO N DO
S[NS,I] := -A1[NSP1,I] / A1[NSP1,NS];
S[NS,NS] := 1 / A1[NSP1,NS];
FOR I := 1 TO N DO
BEGIN
M[NS,I] := S[NS,I];
S1[NS,I] := A1[NSP1,I];
END;
FOR I := 1 TO N DO
{ ФОРМИРОВАНИЕ МАТРИЦЫ А }
FOR J := 1 TO N DO
BEGIN
AIJ := 0.0;
FOR K := 1 TO N DO
AIJ := AIJ + A1[I,K] * S[K,J];
R[I,J] := AIJ;
END;
FOR I := 1 TO N DO
FOR J := 1 TO N DO
BEGIN
AIJ := 0.0;
FOR K := 1 TO N DO
AIJ := AIJ + S1[I,K]*R[K,J];
A1[I,J] := AIJ;
END;
DEC (NS);
UNTIL NS = 0;
{ ОПРЕДЕЛЕНИЕ СОБСТВЕННЫХ ВЕКТОРОВ }
FOR I := 2 TO N+1 DO
B[I] :=-A1 [1,I-1];
B[1] := 1.0;
LAMBDA (4,0.0000001,B,X);
B := X;
END.
Формальные параметры про¬цедуры. Входные: N (тип in¬teger) - размерность матрицы А, для ко¬то¬рой ищутся соᬬственные значения??; А (тип re¬al) - мат¬р謬¬ца А (ис¬ход¬ная) размером (n?n). Вы¬ход¬ные: А (тип real) - мат¬ри¬ца Фр¬бе-ни¬у¬са; М (тип re¬al) - мас¬сив, содержащий стро-ки, от¬лич¬ные от ну¬¬ля и еди¬ни¬цы мат¬рицы пре-об¬ра¬зо¬ваний Мn-1; В (тип real) - мас¬¬сив собственных зна¬че¬ний мат¬рицы А. Прце¬ду¬¬ра DANIL в работе об¬ра¬ща¬ет¬ся к под¬про¬грам¬ме LAM¬BDA, описанной в п
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа