27 lines
599 B
Plaintext
27 lines
599 B
Plaintext
#include once "matmult.bas"
|
|
#include once "rowech.bas"
|
|
#include once "matinv.bas"
|
|
|
|
operator ^ (byval M as Matrix, byval n as integer ) as Matrix
|
|
dim as uinteger i, j, k = ubound( M.m, 1 )
|
|
if n < 0 then return matinv(M) ^ (-n)
|
|
if n = 0 then return M * matinv(M)
|
|
return (M ^ (n-1)) * M
|
|
end operator
|
|
|
|
dim as Matrix M = Matrix(2,2), Q
|
|
dim as integer i, j, n
|
|
M.m(0,0) = 1./3 : M.m(0,1) = 2./3
|
|
M.m(1,0) = 2./7 : M.m(1,1) = 5./7
|
|
|
|
for n = -2 to 4
|
|
Q = (M ^ n)
|
|
for i = 0 to 1
|
|
for j = 0 to 1
|
|
print Q.m(i, j),
|
|
next j
|
|
print
|
|
next i
|
|
print
|
|
next n
|