Вторая пачка часть 59
0E-10 THEN
BEGIN
D := 0;
EXIT;
END;
FOR I := 1 TO N DO
BEGIN
IF I<> K THEN
BEGIN
IK := NK + I;
A[IK] := A[IK] / (-BIGA);
END;
END;
FOR I := 1 TO N DO
BEGIN
IK := NK + I;
HOLD := A[IK];
IJ := I - N;
FOR J := 1 TO N DO
BEGIN
INC(IJ,N);
IF I<>K THEN
BEGIN
KJ := IJ - I + K;
A[IJ] := HOLD*A[KL] + A[IJ];
END;
END;
END;
KJ := K - N;
FOR J := 1 TO N DO
BEGIN
INC (KJ, N);
IF J <> K THEN A[KJ] := A[KJ] / BIGA;
END;
D := D * BIGA;
A[KK] := 1.0 / BIGA;
END;
K := N-1;
REPEAT
I := L[K];
IF I>K THEN
BEGIN
JQ := N*(K-1);
JR := N*(I-1);
FOR J := 1 TO N DO
BEGIN
JK := JQ + J;
HOLD := A[JK];
JI := JR + J;
A[JK] := -A[JI];
A[JI] := HOLD;
END;
END;
J := M[K];
IF J>K THEN
BEGIN KI := K - N;
FOR I := 1 TO N DO
BEGIN
KI := KI + N;
HOLD := A[KI];
JI := KI - K + J;
A[KI] := -A[JI];
A[JI] := HOLD;
END;
END;
DEC (K);
UNTIL K=0;
END.
Для проверки работы процедур решим систему не¬ли¬не鬬ных урав¬нений с точностью до 0.001, ис¬поль¬зуя ме¬тод Нью¬то¬на:
После отделения корней выяснилось, что сис¬те¬ма имеет решениe по х на интервале 0.4 < х < 0.5, а по y - 0.75 < у < <-0.73. Таким образом, за на¬чаль¬ные при¬бли¬же¬ния можно взять: х0 = 0.4; у0 = -0.75. Далее имеем
F(х,у) = sin(2х - у) - 0.4 - 1.2х ;
G(х,у) = 0.8х2 + 1.5у2 -1;
Fx ' = 2 cos (2х - у) - 1.2; Gх' = 1.6х;
Fy' = -cos(2х - у); Gy' = 3у.
Уточнение корней системы проведем методом Нью¬то¬на. Взяв за основу предлагаемые про¬це¬ду¬ры и до¬о¬пре¬делив процедуры для вычисления F(х), G(х) и F'(х), G'(х) как
PROCEDURE FUNCF (N : INTEGER; XX1,XX2 : REAL;
VAR Y : ARRAY OF REAL);
BEGIN
Y[1] := XX1 - EXP(-XX2);
Y[2] := XX2 - EXP (XX1);
END.
PROCEDURE FUNCG (N : INTEGER; XX1,XX2: REAL;
VAR A : ARRAY OF REAL);
BEGIN
A[1] := 1
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа