книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]
.pdfРезультаты вычислений, полученные на узкой печати, + 5 +4999999 +00 +1000000 +01
соответствуют ожидаемым.
2.3.Определители и матрицы
2.3.1.Вычисление определителя методом триангуляции ( первый вариант У
Вычислить определитель |
матрицы методом триангуляции; |
||||
2,37415 |
1,3245? |
2,25358 |
1,35877 |
0,58573 |
|
1,47132 |
2,24315 |
3,53837 |
2,58371 |
1,83921 |
|
4,17354 |
2,12839 |
1,78538 |
0,37859 |
3,24578 |
|
1,37531 |
0,28453 |
2,58389 |
3,57352 |
2,54783 |
|
1,57893 |
4,38921 |
2,55431 |
1,73894 |
3,47579 |
|
Решение. Исходная программа; |
|
|
|||
|
- |
01- |
|
|
|
|
ТРАНСЛЯТОР МЭИ-3 |
|
|||
’ВЕбИгГ |
|
|
|
|
|
*REAL'*РRCCE1)0KF.'DET(А ,А)i, |
|
||||
•VALUE*а ,N.. |
|
) |
|
|
|
|
|
|
|
|
|
*IHTEGER*H., |
|
1 |
|
|
|
’ARRAY‘А., |
|
; |
|
|
|
"BEG14 * |
. j. |
|
|
||
|
V a l ’t .d .m a x ., |
j ' |
|
||
|
*1 iTEGER*I,J,K., |
; |
|
|
'FOR’КI»1*STEP *1*0ЧТILV o O * *BEGI4 *
61
MAXi»0.,
*POR*11» К’STEP *1’UNTIL *N’BO
’b e g i n '
T:-A(/I,K/y.,
'If ’ABS(T) ’GT’ABS(MAX) ’THEN • ’b e g i n ’
MAX:-T.,
J:»I
’END'
’END*!.,
’I? ’MAX*0’THEN’ ’BEGIN*. 4
’GOTO’FIN ’END*.,
*IF *J*/K*THEN* ’b e g i n *
D j— d ;,
’POR’I I-K’STEP *i'UNTIL’N’00 *
’BEGIN*
T«-A(/J,I/).,
A(/J,I/)s-A(/K,I/).,
A(/K,I/)s-T
’END*
’END’;,
’fOR’Ii-К+1 ’STEP’1*UNTIL V D O ’
’beg i n’
T:-A(/I,K/)/MAX.,
'FOR'j :"K+i’STEP*i 'OHTIb 'M’BO*A(/I,J/) :»A(/I,J/)-
TXA(/K,J/) |
|
'e n d 'i ., |
|
D:-DIA(/K,K/)’ |
|
’END'K,, |
' |
FIN:HET:-D |
|
’END’DET., TESTBbbCKs 'BEGIN*
'INTEGER'N.,
IMPUT(i.N),,
’BEGIN'
’REAL/ DETERMINANT., ’ARRAY *A(/i:N,i:N/),, INPUT(l.A)., DETERMINANT:" DET(A ,N).,
OUTPUT(5,’(E’).DETERMINANT)
’END’ |
; |
’e n d ’tedtblock |
I |
'END ’PROGRAMM,, |
\ |
Массив исходных данных: ; +5.
+237415,0 01.
+1324570 01.
+225358001.
+1358770 01.
+5857300 00.
63
+1471320 |
01. |
+2243150 |
01, |
+3538370 |
01. |
+2583710 |
01. |
+1839210 |
01. |
+4173540 |
01. |
+2128390 |
OP. |
+1765380 |
01. |
+3785900 |
00. |
+3245780 |
01. |
+1375310 |
01. |
+2845300 |
00. |
+2583890 01.
+3573520 |
01. |
+2547830 |
01. |
+1578930 |
01. |
+4389210 |
01. |
+2554310 |
01. |
+1738940 |
01. |
+3475790 |
01. |
Результат вычислений +7419662 +02 совпадает с результатом +74,1966, полученным вычислениями вручную [14] .
2.3.2.Вычисление определителя методом
,триангуляции (второй вариант)
Вычислить определитель матрицы методом триангуляции:
1,3259 |
2,3782 |
0 |
0 |
0 |
3,1112 |
4,0232 |
1,9982 |
0 |
0 |
0 |
5,0349 |
2,112? |
6,3213 |
и |
0 |
0 |
1,0932 |
4,9931 |
5,6632 |
0 |
0 . |
0 |
6,0144 |
2,6420 |
Ревение. Исходная программа:
64
-01- |
|
Ii |
ТРАНСЛЯТОР МВИ-8 |
|
;I |
’b e g i n * |
|
|
’REAL*'PR0CED0RE*DETfiB4(A,N)., |
|
|
'VALUE’fU, |
|
|
’INTEGER*?!., |
|
|
'АЙВАНА., |
■ |
j |
•BEGIN* |
|
|
•r e a l ’PRODUCT .FACTOR,TEMP,QIV ,PIV ,ABPIV.MAIPIV i, |
|
|
‘INTEGER’SCIGH,I,J,R,lMAXi, |
|
|
SSIGNs-i., |
|
|
PRODUCTS-1.0,, |
|
|
’FOR’Rt-l*STEP‘l’UNTIL'N-l’DO‘ |
|
|
’BEGIN’ |
- |
|
MAXPIV t»0,0,, |
|
|
’f o k *i :-r *s t f p ’i *u n t i l *n *d o * |
|
|
’BEGIN* |
|
|
PIVj-A(/I,R/)., |
|
! |
ABPIV t-ABS(PIV),, |
|
|
if ’abpiv ’g t *maxpiv ’t h e n ’ |
|
|
’BEGIN* |
|
|
MAXPIV s-ABPIV., |
|
|
D1V:-PIV., |
|
|
iMAXt-I |
|
|
’END* |
|
|
’END*I., |
|
| |
’IF *MAXPIV-/0,0*ThEN’ |
|
’ |
65
BEG IЛ
'IP 'IMAX-R'THEN'*G0T0 'RESUME.,
'FOR *J:-R*STEP'i'UNTIL,* N'DO’ 'ВЕЛ 4*
TFMP8-A(/lMAX,J/)„,
A(/IMAX,J/)j-Al/R,J/)., ■
A(/R,J/):»TEMP
"END'!,, USIGN:— 3SI64. , 'GOTO'RE SUMP
'END*., i>ET224:-0.0., 'GOTO'FINAIj,,
RESUME8'FOR’lS"R+i'STEP *i'.UNTIL 'N 'DO* 'BEGIN*
FACTOR:»A(/I,R/)/aiV.,
. ’FOR’j8-P>i’STEP*i'0!lTIL'N’DO*A(/I,J/):=A(/I,J/) FACTORXA(/R,J/)
'END'I
'END'K.,
'FOK*Is“1'STEP*1 "UNTIL '.N*DO'PRODUCT2«PRODUCTXA(/i ,1/) » DET224:’vSIGNXPkODUCT,,
FINAL:
*END*DET224.,
TESTBLOCK:
'BEGIN*
'INTEGER'N., . INPUT(1,4).,
66
’b eg in ’
'ARRAY’A(/i:N,lsN/)i,
IMPUT(1,A).,
00TPUT(3,‘(E *),QET224(A ,N))
’END’
’END’ТЕЛ BLOCK
’en d’pkogramm.,
Массив исходных данных:
+5.
+1,3259.
+2,3782. +0,С. +0,С•
+ 0 ,0 .
+3,1112.
+4,0232.
+1,9982.
+0,0.
+0,0.
+ 0,0.
+5,0349.
+ 2 ,1122.
+6,3213.
+0,0.
+ 0,0.
+0,0.
+1,0932.
+4,9931.
+5,6632.
+ 0,0.
+ 0 ,0 .
+0,0.
67
+б, о т . +2,6420, ’
Результат вычислений +4070890 +03 совпадает с результатом +407,089, полученным вычислениями вручную £l4j.
2,3.3. Вычисление определителя гауссовским исключением
Вычислить определитель матрицы гауссовским исключением
2,37415 |
1,32457 |
2,25358 |
1,35877 |
0,58573 |
1,47132 |
2,24315 |
3,53837 |
2,58371 |
1,83921 |
4,17354 |
2,12839 |
1,78538 |
0,37859 |
3,24578 |
1,37531 |
0,28453 |
2,58389 |
3,57352 |
2,54783 |
1,57893 |
4,38921 |
2,55431 |
1,73894 |
3,47579 |
Решение. Исходная программа:
-01-
ТРАНСЯЯТОР МЭИ-8
*ВЕ01>Г
'REAL’*PROCEDURE‘dETERMIТАTT(A,4)., •Value \т.,
'i t t e o e r 't ,, ’ARRAY'A., ‘BEGIM*
•r e a l ‘PRODUCT,TEMP,, ‘Itteger’i ,j ,r ,s ,, 'ARRAY’MUlT(/1IT/).,
•PROCEDURE ’EQUiLIBRATE(A,N.MULT)., ’v a l Ue Vt.,
'i t t e g e r ’t ., ’ARRAY‘A,MULT,, •8EGIT*
68
‘INTEGER*J,I.,
’REAL’MX., ‘FOR’lS-i'STEP'i’O N m V D O ’ ‘begin’
HX:"0.0. j
’FOK*J S-i’STEP'i’OUTIb'R ’DO’*IP *ABS(A(/1,J/)) *GT*
MX*THEN’MX.-ABS{A(/I„7/)).,
*i f *mx-o .o ‘t h e n ‘ |
|
‘b e g i n ’ |
• ! ( |
DETERMINANT 1-0,0., |
|
‘GOTO‘RETURN . |
|
’EN.)\,
ми1,Т(/1/)|-МХ.»
’lF*MX-/l,0*THEN” FOR‘j!-i’STEP*l‘UMTIb’N‘DOTA(/I
.J/)s-A(/I,J/)/MX
‘e n d ’ |
|
‘ENO’EQUILIBRATE., |
[ |
EQUluIBRATP(A,fi,MUbT)., |
j |
PRODUCTi-l.O., |
.; |
‘FOR ‘Rl-i *STEP ‘i‘UNTIL *№-i ’»0’ |
|
‘be g i n’ |
i |
|
f |
•"•s»R.. |
; |
TEMP:=ABS(A(/R,R/))., |
|
‘FOR‘j:-R+l‘STEP‘l*ONTib‘К’.»'‘IF ‘TEMP *ЬТ ’ABS(A(/R,1 |
|
/)) ‘ThE'l’ |
|
‘BEGIN* |
4 |
TEMP:-ABS(A(/R,J/').,
SJ“J 'END*.,
*IP ’TEMP“0.0 "THEN' ’BEGIN’
DETERMI4ANT:»0.0.,
’GOTO’RETURN
’END’.,
'IF'S»/a*T>iE**
’BEGIN*
PRODUCT;— -PRODUCT. , *FU*I;-R*STEP VUi'ITILVDO* *BEGI4’
TEMP:-A(/I,R/)., /.(/l,R/)r-A(/I,S/).,
A(/t .S/):»TEMP
’e n d ’
’e n d ’.,
PRODUCT l-PRODUCTXA(/R,R/)., ’FOR’lJ-R+i’STEP’l’UNTIL V d o ’
’b eg in ’
TBMP:-A(/I,R/)/A(/R,R/).,
'FOfl’j i-R+i’STEP’i’UMTlL V D O ’At/I.J/Js-At/I.J/J-
At/R.J/JXTEMP
’END’ ’e n d ’.,
TEMP r»FROjpCTIA(/M,N/).,
70