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


0 - D; IF SQRT((Q1-P*C/2)*(Q1-P*C/2)+ P*P*ABS(H))>(E/NN) THEN GOTO CONT; T := 0.0; Q[2] := Q[2] - C*Q[1]; FOR J := 3 TO NN-1 DO Q[J] := Q[J] - C*Q[J-1] - D*Q[J-2]; END; P := -C/2.0; Q1 := SQRT(ABS(H)); IF H>= 0.0 THEN BEGIN M := P+Q1; P := P-Q1; Q1 := 0.0; END ELSE M := P; XX[K] := M; INC(K); END; XX[K] := P; INC(K); IF ABS(T) >1.0E-20 THEN EXIT; NN:= NN-2; IF NN=0 THEN EXIT; A := 0.0; IF SQRT((S-R*C/2)*(S-R*C/2)+ R*R*ABS(H)) <= E THEN A := 1; B := 0.0; IF NN>=2 THEN B := 1; IF (A+B)=2 THEN BEGIN T := 1.0; GOTO CONT1; END; UNTIL DN; END. PROCEDURA SVECT (CONST N : INTEGER; LAM : REAL; VAR Q:MAS11); VAR I,J,K : INTEGER; SUM : REAL; BEGIN SUM := LAM; FOR I := 1 TO N DO BEGIN SUM := SUM -Q[I]; Q[I] := SUM; SUM := SUM*LAM; END; END. Процедуру GAUSS (или SINQ), как уже го¬во¬ри¬лось, мож¬но взять из п. 3.1, 3.2. Опишем формальные параметры процедур. Процедура VECT. Вхо¬дные: N (тип integer) - раз¬мер мат¬¬¬¬ри¬цы А(n?n) и вычисляемой матрицы С (n?n); А (тип re¬¬al) - исходная матрица А (n?n), для ко¬торой вы¬¬чис¬ляют соб¬-ственные значения и соб¬ст¬вен¬ные веꬬ¬торы. Вы-ходные: С (тип real) - мат¬р謬ца (n?n), оп¬р嬬де¬ля¬ю-щая ко¬эффициенты сис¬¬¬те¬мы, решая ко¬торую на¬-хо¬дим qi; В (тип real) - мат¬ри¬ца (1?n) - стол¬бец сво¬бод¬ных чле¬нов сис¬те¬мы, рବвен по¬след¬не¬му с(n). Про¬це¬ду¬ра LAMBDA. Входные: N (тип integer) - ра第¬¬мер матрицы А(n?n) и количество собст¬венных зна¬ч嬬¬ний мат¬ри¬цы; q (тип real) - массив (1?n) ко¬эф¬фи¬ци¬ен¬¬тов ха¬раꬬте¬рис-тического урав¬не¬ния для опре¬де¬ле¬ния ?i. Вы¬ход-ные: хх (тип real) - массив (1?n) соб¬ст¬вен¬¬¬ных зна¬че¬ний мат¬ри¬цы А. Про¬це¬ду¬ра SVECT. Входные: N (тип integer) - коли¬чес¬т¬во соᬬ¬ственных векторов мат-рицы А; LАМ (тип real)- соᬬ¬ст¬венное значение мат¬ри¬цы А
Индекс
Элементарные функции    Линейные уравнения    Нелинейные уравнения    Случайные числа


Hosted by uCoz