1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        MARKOV:   COMPUTES FOR AN ERGODIC MARKOV CHAIN SEVERAL
4  REM                  BASIC QUANTITIES
5  REM        36701 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
9000  REM  MARKOV--COMPUTES QUANTITIES FOR ERGODIC MARKOV CHAIN
9002  READ N
9004  DIM P[20,20],M[20,20],Z[20,20],K[20,20],W[20,20]
9006  DIM A[1,20],B[1,20]
9008  MAT Z=IDN[N,N]
9010  MAT A=ZER[1,N]
9012  MAT K=ZER[N,N]
9014  MAT M=ZER[N,N]
9016  MAT W=ZER[N,N]
9018  MAT A=ZER[1,N]
9020  MAT B=ZER[1,N]
9022  MAT  READ P[N,N]
9024  PRINT "TRANSITION PROBABILITIES"
9026  MAT  PRINT P
9028  MAT Z=Z-P
9030  FOR I=1 TO N
9032  LET Z[I,N]=1
9034  NEXT I
9036  MAT M=INV(Z)
9038  FOR J=1 TO N
9040  LET A[1,J]=M[N,J]
9042  NEXT J
9044  GOSUB 9120
9046  PRINT "LIMITING PROBABILITIES"
9048  MAT  PRINT A,
9050  MAT M=IDN[N,N]
9052  MAT M=M-P
9054  FOR I=1 TO N
9056  FOR J=1 TO N
9058  LET M[I,J]=M[I,J]+A[1,J]
9060  NEXT J
9062  NEXT I
9064  MAT Z=INV(M)
9066  GOSUB 9120
9068  PRINT "FUNDAMENTAL MATRIX"
9070  MAT  PRINT Z
9072  LET Z=Z[1,1]/A[1,1]
9074  FOR I=1 TO N
9076  FOR J=1 TO N
9078  LET K[I,J]=Z*A[1,J]-Z[I,J]
9080  IF ABS(K[I,J])>.000001 THEN 9084
9082  LET K[I,J]=0
9084  NEXT J
9086  NEXT I
9088  GOSUB 9120
9090  PRINT "POTENTIAL OPERATOR"
9092  MAT  PRINT K
9094  FOR I=1 TO N
9096  FOR J=1 TO N
9098  LET M[I,J]=(Z[J,J]-Z[I,J])/A[1,J]
9100  NEXT J
9102  NEXT I
9104  GOSUB 9120
9106  PRINT "MEAN FIRST PASSAGE TIMES"
9108  MAT  PRINT M
9110  MAT B=A*M
9112  GOSUB 9120
9114  PRINT "FIRST PASSAGE TIMES IN EQUILIBRIUM"
9116  MAT  PRINT B,
9118  GOTO 9128
9120  FOR I=1 TO 3
9122  PRINT 
9124  NEXT I
9126  RETURN 
9128  MAT K=ZER
9130  FOR I=1 TO N
9132  LET K[I,I]=2*Z[I,I]/A[1,I]-1
9134  NEXT I
9136  MAT W=M*K
9138  FOR I=1 TO N
9140  LET M[I,I]=1/A[1,I]
9142  NEXT I
9144  MAT K=Z*M
9146  FOR I=1 TO N
9148  FOR J=1 TO N
9150  IF I <> J THEN 9156
9152  LET W[I,J]=0
9154  GOTO 9160
9156  LET W[I,J]=W[I,J]+2*(K[I,J]-K[J,J])
9158  LET W[I,J]=W[I,J]-M[I,J]^2
9160  NEXT J
9162  NEXT I
9164  GOSUB 9120
9166  PRINT "VARIANCES OF FIRST PASSAGE TIMES"
9168  PRINT 
9170  MAT  PRINT W
9172  GOSUB 9120
9174  PRINT "LIMITING VARIANCES"
9176  PRINT 
9178  FOR I=1 TO N
9180  PRINT A[1,I]*(2*Z[I,I]-1-A[1,I]),
9182  NEXT I
9184  PRINT 
9186  GOSUB 9120
9188  PRINT "TRANSITION MATRIX OF REVERSE CHAIN"
9190  PRINT 
9192  FOR I=1 TO N
9194  FOR J=1 TO N
9196  LET K[I,J]=A[1,J]*P[J,I]/A[1,I]
9198  NEXT J
9200  NEXT I
9202  MAT  PRINT K
9900  DATA 3
9901  DATA .5,.25,.25
9902  DATA .5,0,.5
9903  DATA .25,.25,.5
9999  END 
