Trailing-Edge
-
PDP-10 Archives
-
decus_20tap1_198111
-
decus/20-0020/invers.alg
There are 2 other files named invers.alg in the archive. Click here to see a list.
100' NAME--INVERS
110'
120' DESCRIPTION--INVERTS A MATRIX USING THE EXCHANGE METHOD.
130'
140' SOURCE--UNKNOWN
150'
160' INSTRUCTIONS--THE SIZE OF THE MATRIX IS LIMITED FROM 1
170' TO 10 THOUGH THE PROGRAM CAN BE MODIFIED BY DELETING LINES
180' 270-310 AND BY ADDING A DIM STATEMENT FOR MATRIX A IN LINE
190' 270 IN ORDER TO INCREASE THE SIZE. THE MATRIX IS INPUT AS DATA
200' STARTING IN LINE 710 WITH THE FIRST NUMBER THE
210' DIMENSION OF THE MATRIX AND THE MATRIX VALUES ENTERED BY ROWS.
220'
230'
240' * * * * * * * * * MAIN PROGRAM * * * * * * * * *
250'
260 READ N
270 IF N < 1 THEN 290
280 IF N < 11 THEN 320
290 PRINT "ONLY WORKS FOR MATRICES OF SIZE 1 THROUGH 10"
300 PRINT "YOU HAVE A SIZE OF " N
310 STOP
320 FOR I = 1 TO N
330 FOR J = 1 TO N
340 READ A(I,J)
350 NEXT J
360 NEXT I
370 FOR K = 1 TO N
380 LET D = -1/A(K,K)
390 FOR J = 1 TO N
400 IF J = K THEN 420
410 LET A(K,J) = A(K,J) * D
420 NEXT J
430 LET D = -D
440 FOR I = 1 TO N
450 IF I = K THEN 530
460 LET E = A(I,K)
470 FOR J = 1 TO N
480 IF J = K THEN 510
490 LET A(I,J) = A(I,J) + A(K,J)*E
500 GO TO 520
510 LET A(I,K) = A(I,K) * D
520 NEXT J
530 NEXT I
540 LET A(K,K) = D
550 NEXT K
560 PRINT
570 FOR I = 1 TO N
580 FOR J = 1 TO N
590 IF J = 6 THEN 690
600 IF J = 10 THEN 690
610 PRINT A(I,J),
620 NEXT J
630 IF N = 5 THEN 660
640 IF N = 9 THEN 660
650 PRINT
660 PRINT
670 NEXT I
680 STOP
690 PRINT " ",
700 GO TO 610
710 DATA 3
720 DATA 1, .5, .33333333
730 DATA .5, .33333333, .25
740 DATA .33333333, .25, .2
750END