1 REM ***** DETERM ***** 2 REM ***** MATRIX DETERMINANT USING GAUSSIAN ELIMINATION 3 DIM Q$(9) 4 PRINT "DO YOU WANT INSTRUCTIONS"; 5 INPUT Q$ 6 IF Q$="YES" THEN 500 7 IF Q$="NO" THEN 105 8 PRINT "A YES OR NO ANSWER PLEASE" 9 GOTO 5 10 DATA 2,1,2,3,4 20 DATA 1,2 21 DATA 3,4 105 PRINT "TYPE 1 FOR DETERMINANT PRINT-OUTS, OTHERWISE TYPE 0"; 106 INPUT P 107 PRINT 110 REM: N IS THE ORDER OF THE DETERMINANT 120 READ N 130 REM: DETERMINANT ELEMENTS ARE DENOTED A(I,J) 140 R I=1 TO N 150 FOR J=1 TO N 160 READ A(I,J) 170 NEXT J 180 NEXT I 185 LET D=1 190 REM: BEGIN INTERATION FOR ELIMINATION OF ELEMENTS 194 IF P=0 THEN 200 195 PRINT "FIRST DETERMINANT IS THE ORIGINAL DETERMINANT" 196 PRINT "GIVEN IN THE DATA DTATEMENTS." 200 FOR K=1 TO N-1 209 IF P=0 THEN 214 210 PRINT "DETERMINANT NO.";K 211 PRINT 212 GOSUB 700 214 GOSUB 550 215 IF P=0 THEN 220 216 PRINT "DETERMINANT NO.";K;"WITH INTERCHANGED ROWS" 218 GOSUB 700 220 REM: B IS FOREMPORARY STORAGE 225 LET B=A(K,K) 230 REM: D IS THE VALUE OF THE DETERMINANT 240 LET D=D*B 242 B(K)=B 243 IF P=0 THEN 250 245 PRINT "MULTIPLY ANSWER BY";B(K)"" 250 REM: EACH ELEMENT IN ROW K IS DEVIDED BY A(K,K) 260 FOR I=K TO N 270 LET A(K,I)=A(K,I)/B 280 NEXT I 290 REM: BEGIN TO ELIMINATE ELEMENTS FROM THE LAST N-K ROWS 300 FOR I=K+1 TO N 310 REM: SAVE ELEMENT OF ROW I 320 LET B=A(I,K) 330 REM: ELIMINATE ELEMENTS FROM ROW I 340 FOR J=K TO N 350 LET A(I,J)=A(I,J)*A(K,J) 360 NEXT J 370 NEXT I 380 NEXT K 384 IF P=0 THEN 390 385 PRINT "FINAL DETERMINANT" 387 GOSUB 700 390 REM: EVALUATE DETERMINANT BY MINORS 391 IF P=0 THEN 400 392 PRINT "ANSWER IS GIVEN BY:" 393 FOR K=1 TO N-1 394 PRINT B(K);"TIMES"; 395 NEXT K 396 PRINT A(N,N) 397 PRINT 400 LET D=D*A(N,N) 410 PRINT "DETERMINANT = ";D 420 GOTO 999 500 PRINT "THIS PROGRAM EVALUATES A DETERMINANT BY GAUSSAIN" 501 PRINT "ELIMINATION. INFORMATON IS NEEDED ON THE ORDER OF" 502 RINT "THE DETERMINANT AND THE VALUE OF ITS" 503 PRINT "ELEMENTS. TYPE IN THE ORDER OF THE DETERMINANT IN" 504 PRINT "DATA STATEMENT AT LINE 10, FOR EXAMPLE: 10 DATA N" 506 PRINT "TYPE IN THE ELEMENTS BY ROW IN DATA STATEMENTS BEGINNING" 507 PRINT "AT LINE 20 AND NOT EXCEEDING LINE 95, THUS:" 508 PRINT " 20 DATA A(1,1),A(1,2),...A(1,N)" 509 PRINT " 21 DATA A(2,1),A(2,1),...A(2,N)" 510 PRINT " ETC. THEN TYPE 'RUN' AGAIN." 520 STOP 550 REM: SUBROUTINE FOR INTERCHANGING WS 560 FOR I=K+1 TO N 570 IF ABS(A(K,K)) >= ABS(A(I,K)) THEN 640 580 FOR J=1 TO N 590 T(J)=A(K,J) 600 A(K,J)=A(I,J) 610 A(I,J)=T(J) 620 NEXT J 630 D=-D 640 NEXT I 650 RETURN 700 REM: SUBROUTINE FOR PRINTING DETERMINANTS 710 FOR Q=1 TO N 720 FOR R=1 TO N 730 PRINT A(Q,R), 740 NEXT R 760 PRINT "" 770 NEXT Q 790 PRINT "" 800 RETURN 999 END