QBASIC Sample Codes, tips, hints, ideas.
Wednesday, 17 October 2012
CLS
'PROGRAM TO PRODUCE THE COFACTOR, ADJOINT AND INVERSE OF ANY 3 BY 3 MATRIX
'THIS VERSION USES THE READ/DATA STATEMENT
'INPUT THE DIMENSIONS OF THE MATRIX IN THE DATA STATEMENT BELOW
DATA 3,3
READ M, N
DIM A(M, N)
DIM C(M, N)
DIM INV(M, N)
'INPUT THE ELEMENTS OF THE ORIGINAL MATRIX
'IN THE ORDER OF TOP TO BOTTOM AND LEFT TO RIGHT
DATA 2,1,2,-4,3,1,2,3,5,1,2,3,4,5,6,7,8 'TESTING ELEMENTS
FOR I = 1 TO M
FOR J = 1 TO N
READ A(I, J)
NEXT
NEXT
PRINT " THE ORIGINAL MATRIX A"
FOR I = 1 TO M
FOR J = 1 TO N
PRINT USING "##"; A(I, J);
PRINT " ";
NEXT
NEXT
'THE COFACTOR MATRIX
C(1, 1) = (A(2, 2) * A(3, 3) - A(2, 3) * A(3, 2))
C(1, 2) = -(A(2, 1) * A(3, 3) - A(2, 3) * A(3, 1))
C(1, 3) = (A(2, 1) * A(3, 2) - A(2, 2) * A(3, 1))
C(2, 1) = -(A(1, 2) * A(3, 3) - A(1, 3) * A(3, 2))
C(2, 2) = (A(1, 1) * A(3, 3) - A(1, 3) * A(3, 1))
C(2, 3) = -(A(1, 1) * A(3, 2) - A(1, 2) * A(3, 1))
C(3, 1) = (A(1, 2) * A(2, 3) - A(1, 3) * A(2, 2))
C(3, 2) = -(A(1, 1) * A(2, 3) - A(1, 3) * A(2, 1))
C(3, 3) = (A(1, 1) * A(2, 2) - A(1, 2) * A(2, 1))
PRINT "THE COFACTOR MATRIX"
FOR I = 1 TO M
FOR J = 1 TO N
PRINT USING "###"; C(I, J);
PRINT " ";
NEXT
NEXT
PRINT " THE TRANSPOSE OF THE COFACTOR (ADJOINT OF THE MATRIX, A)"
FOR I = 1 TO N
FOR J = 1 TO M
PRINT USING "###"; C(J, I);
PRINT " ";
NEXT
NEXT
PRINT "THE DETERMINANT OF A IS ";
D = A(1, 1) * A(2, 2) * A(3, 3) + A(1, 2) * A(2, 3) * A(3, 1) + A(1, 3) * A(2, 1) * A(3, 2) - A(3, 1) * A(2, 2) * A(1, 3) - A(3, 2) * A(2, 3) * A(1, 1) - A(3, 3) * A(2, 1) * A(1, 2)
PRINT D
IF D <> 0 THEN
GOTO 50
ELSE GOTO 100
END IF
50 PRINT "THE INVERSE OF A IS"
FOR I = 1 TO N
FOR J = 1 TO M
INV(I, J) = C(J, I) * (1 / D)
PRINT USING "###"; INV(I, J);
PRINT " ";
NEXT
NEXT
100 END
SUB INVERSE
END SUB
Subscribe to:
Posts (Atom)
nRelate - All Sections
nRelate - All Sections
About Me
|