Вторая пачка часть 38
5*(V1-V3);
IF MU=0 THEN
OMEGA:=-1
ELSE
OMEGA:=-SIGN(MU)*
V2/SQRT(V2*V2+MU*MU);
SINT:=OMEGA/SQRT(2*(1+
SQRT(1-OMEGA*OMEGA));
COST:=SQRT(1-SINT*SINT);
FOR I:=1 TO N DO
BEGIN
IF I<>P AND I<>Q THEN
BEGIN
INT1:=A[I,P];
MU:=A[I,Q];
A[Q,I]:=INT1*SINT+MU*COST;
A[I,Q]:=INT1*SINT+MU*COST;
A[P,I]:=INT1*COST-MU*SINT;
A[I,P]:=INT1*COST-MU*SINT;
END;
INT1:=S[I,P];
MU:=S[I,Q];
S[I,Q]:=INT1*SINT+MU*COST;
S[I,P]:=INT1*COST-MU*SINT
END {***I***};
MU:=SINT*SINT;
OMEGA:=COST*COST;
INT1:=SINT*COST;
T:=2*V2*INT1;
A[P,P]:=V1*OMEGA+V3*MU-T;
A[P,P]:=V1*MU+V3*OMEGA+T;
A[P,Q]:=(V1-V3)*INT1+V2*(OMEGA-MU);
A[Q,P]:=(V1-V3)*INT1+V2*(OMEGA-MU);
END ;
{***ПРОВЕРКА ДОСТИЖЕНИЯ ЗАДАННОЙ
ТОЧНОСТИ***};
IF IND=1 THEN
BEGIN
IND:=0;
GO TO MAIN1
END;
IF THR > NORM2 THEN GO TO MAIN;
END.
Процедура EIGJAC получена из процедуры JACOBI [Агеев, 1976] переводом последней с языка AL¬G¬OL на язык PAS¬CAL, при этом было сделано не¬сколь¬ко тож¬дественных пре¬образований, оп¬ти¬ми¬зи¬ру¬ю¬щих зат¬раты машинного вре¬мени. Прц嬬¬ду¬ра EIG¬JAC бы¬ла прве¬ре¬на для тех же ис¬¬ход¬ных данных, что и про¬цедура JACOBI [Агеев, 1976]: n = 4, eps=10-8 и
.
Вычисления, выполненные на IBM PC/AT-386 с час¬то¬той 40 МГц, дали следующие результаты, которые сов¬падают с ре¬зуль¬та¬та¬ми тес¬ти¬рования
;
,
при¬ве¬денными в ра¬бте Агеева [Аге¬ев и др., 1976], и име¬ют мак¬си¬маль¬ную по¬греш¬ность по от¬но¬ше¬нию к соб¬ст¬вен¬ным зна¬че¬ни¬ям ?i?и собственным веꬬ¬то¬рам X ис¬¬ход¬ной мат¬рицы [в сравнении с их в嬬¬ли¬чи¬на¬ми из ра¬бты Фадеева и др. (1963) ] max ri = 4*10-8, maxSi = 3*10-6.
4.4. ЗАДАЧА ОБРАЩЕНИЯ МАТРИЦ И ВЫЧИСЛЕНИЯ ГЛАВНОГО ОПРЕДЕЛИТЕЛЯ ПО СХЕМЕ ГАУССА
Метод Гаусса, подробно рассмотренный в п. 3.1 и 3.2, с ус¬пехом может быть ис¬поль¬зо¬ван для вы¬чис¬ле¬ния оп¬ре¬де¬ли¬телей
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа