SCOPE 34 - Practitioner's Handbook on the Modelling of Dynamic Change in Ecosystems


Appendix           

BASIC PROGRAMS FOR SOME KEY ALGORITHMS

This Appendix contains computer programs in the BASIC language for some of the key algorithms mentioned in the main text, as follows:

DIFFEU Solving differential equations using the Euler method.
DIFFEQ Solving differential equations using the midpoint rule.
DIFFER Solving differential equations using the Runge-Kutta approximation.
PREDAT Plotting the trajectory of predator-prey populations.
MARKl Computing the Markov transition matrix.
MARK2 Testing transition frequencies for the Markov property.
MARK3 Test of the stationarity of a Markov chain.
MARK4 Computing successive Markov probabilities.
AMARK Calculating the properties of an absorbing Markov chain. 
EMARK Calculating the properties of an ergodic Markov chain.

 
  DIFFEU: SOLVING DIFFERENTIAL EQUATIONS USING THE EULER METHOD

0010 REM * *  SOLVE DIFFERENTIAL EQUATION USING EULER METHOD
0011 REM * *  WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0012 REM * *  ORIGINAL PROGRAM FEBRUARY 1980
0013 REM
0014 REM * * PROGRAM COMPUTES THE VALUES FOR A DEFINED FUNCTION REPRESENTING 
0015 REM * * A DIFFERENTIAL EQUATION IN x AND Y, FOR A GIVEN STEP SIZE BETWEEN
0016 REM * * A START AND END VALUE OF X, WITH A GIVEN STARTING VALUE OF Y
0017 REM
0018 REM * * DEFINE FUNCTION IN TERMS OF x AND Y
0019 REM
0020                DEF FNF(X, Y) =0.1 *Y
0024 REM
0025 REM * * INPUT START AND END TIMES, STARTING VALUE AND STEP SIZE
0026 REM
0030                DISP "START TIME";
0040                INPUT A
0050                DISP " END TIME";
0060                INPUT Z
0070                DISP "STARTING VALUE";
0080                INPUT Y
0090                DISP "TIME STEP" ;
0100                INPUT H
0104 REM
0105 REM * * PRINT INITIAL VALUES
0106 REM
0110                PRINT A,Y
0114 REM
0115 REM * * SUBROUTINE TO PRINT SUCCESSIVE VALUES
0116 REM
0120                FOR X=A TO Z-H STEP H
0130                         LET D = FNF(X, Y)
0140                         LET Y=Y+D*H
0150                         PRINT X+H,Y
0160                NEXT X
0165 REM
0170           END

END OF LISTING

DIFFEQ: SOLVING DIFFERENTIAL EQUATIONS USING THE MIDPOINT RULE

0010 REM * * SOLVE DIFFERENTIAL EQUATION USING MIDPOINT RULE
0011 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0012 REM * * ORIGINAL PROGRAM WRITTEN JANUARY 1980, ANNOTATED JANUARY 1982 0013 REM
0014 REM * * PROGRAM COMPUTES THE VALUES OF A DEFINED FUNCTION REPRESENTING 
0015 REM * * A DIFFERENTIAL EQUATION IN X AND Y, FOR A GIVEN STEP SIZE BETWEEN 
0016 REM * * A START AND END VALUE OF X, WITH A GIVEN STARTING VALUE OF Y.
0017 REM * * THE MIDPOINT RULE IS USED IN CALCULATING VALUES
0018 REM
0019 REM * * DEFINE FUNCTION IN TERMS OF x AND Y
0020 REM
0021                DEF FNF(X,Y)=0.1*Y
0024 REM
0025 REM * * INPUT START AND END TIMES, STARTING VALUE AND STEP SIZE
0026 REM
0030                DISP "START TIME";
0040                INPUT A
0050                DISP " END TIME" ;
0060                INPUT Z
0070                DISP "STARTING VALUE";
0080                INPUT Y
0090                DISP "TIME STEP";
0100                INPUT H
0104 REM
0105 REM * * PRINT INITIAL VALUES
0106 REM
0110                PRINT A,Y
0114 REM
0115 REM * * SUBROUTINE TO PRINT SUCCESSIVE VALUES
0116 REM
0120                FOR X=A TO Z-H STEP H
0130                          LET D1 =FNF(X,Y)
0140                          LET D2=FNF(X+H/2,Y+D1*H/2)
0150                          LET Y=Y+D2*H
0160                          PRINT X+H,Y
0170                NEXT X
0175 REM
01BO         END

END OF LISTING

DIFFER: SOLVING DIFFERENTIAL EQUATIONS USING THE RUNGE-KUTTA APPROXIMATION

0010 REM * * SOLVE DIFFERENTIAL EQUATION USING RUNGE-KUTTA
0011 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0012 REM * * ORIGINAL PROGRAM WRITTEN JANUARY 1980, ANNOTATED JANUARY 1982 
0013 REM
0014 REM * * PROGRAM COMPUTES THE VALUES OF A DEFINED FUNCTION REPRESENTING 
0015 REM * * A DIFFERENTIAL EQUATION IN X AND Y, FOR A GIVEN STEP SIZE BETWEEN 
0016 REM * * A START AND END VALUE OF X, WITH A GIVEN STARTING VALUE OF Y.
0017 REM * * THE RUNGE-KUTTA SOLUTION IS USED IN CALCULATING VALUES
0018 REM
0019 REM * * DEFINE FUNCTION IN TERMS OF X AND Y
0020 REM
0021                DEF FNF(X,Y)=0.1*Y
0024 REM
0025 REM * * INPUT START AND END TIMES, STARTING VALUE AND STEP SIZE
0026 REM
0030                DISP "START TIME";
0040                INPUT A
0050                DISP " END TIME" ;
0060                INPUT Z
0070                DISP "STARTING VALUE";
0080                INPUT Y
0090                DISP "TIME STEP" ;
0100                INPUT H
0104 REM
0105 REM * * PRINT INITIAL VALUES
0106 REM
0110                PRINT A,Y
0114 REM
0115 REM * * RUNGE-KUTTA SUBROUTINE TO PRINT SUCCESSIVE VALUES
0116 REM
0120                FOR X=A TO Z-H STEP H
0130                          LET T4=A+X*H
0140                          LET T3=T4-H/2
0150                          LET T2=T4-H
0160                          LET K1 =FNF(T2,Y)
0170                          LET Z3=Y+K1*H/2
0180                          LET K2=FNF(T3,Z3)
0190                          LET Z3=Y+K2*H/2
0200                          LET K3 = FNF(T3,Z3)
0210                          LET Z3=Y+K3*H
0220                          LET K4=FNF(T4,Z3)
0230                          LET Y=Y+(K1 +2*K2+2*K3+K4)*H/6
0240                          PRINT X + H, Y
0250                NEXT X
0255 REM 
0260           END

END OF LISTING

PREDAT: PLOTTING THE TRAJECTORY OF PREDATOR-PREY POPULATIONS

0010 REM PROGRAM TO PLOT TRAJECTORY OF PREDATOR-PREY POPULATIONS
0020 DEF FNX(X)=4*X-0.25*X*X-2*X*Y
0030 DEF FNY(Y)=X*Y-3*Y
0040 ERASE
0050 INIMAGE DIS,2
0060 FRAME 8,5.6
0070 DISP "LIMITS OF X-AXIS" ;
0080 INPUT X8,X9
0090 DISP "LIMITS OF Y-AXIS" ;
0100 INPUT Y8, Y9
0110 SCALE X8,X9,Y8,Y9
0120 XAXIS 0,1
0130YAXIS 0,1
0140 DISP "TIME INTERVAL";
0150 INPUT T8
0160 DISP "TOTAL TIME" ;
01701NPUT T9
0180 DISP "NO OF PLOTTED POINTS";
0190 INPUT P
0200 DISP " STARTING VALUES-X, Y" ;
0210 INPUT X,Y
0220 IF X<0 THEN 330
0230 IF Y<0 THEN 330
0240 MOVE X, Y
0250 FOR I = 1 TO P STEP 1
0260 FOR T = 0 TO T9/P STEP T8
0270 LET X=X+FNX(X)*T8
0280 LET Y=Y+FNY(Y)*T8
0290 NEXT T
0300 PLOT X, Y
0310 NEXT I
0320 GOTO 200
0330 END

END OF LISTING

MARK1: COMPUTING THE MARKOV TRANSITION MATRIX

0010 REM * * PROGRAM TO COMPUTE MARKOV TRANSITION MATRIX
0020 REM * * FROM A SEQUENCE OF N INTEGERS
0021 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0022 REM * * PROGRAM WRITTEN AND ANNOTATED JANUARY 1982
0023 REM
0024 REM * * PROGRAM COMPUTES THE FREQUENCIES OF THE TRANSITIONS FROM ONE 
0025 REM * * STATE TO ANOTHER FROM A SEQUENCE OF INTEGERS REPRESENTING THE 
0026 REM * * SUCCESSIVE STATES. FREQUENCIES AND TRANSITION PROBABILITIES
0027 REM * * ARE PRINTED FOR SUBSEQUENT ANALYSIS.
0028 REM
0029 REM * * DIMENSION STATEMENT DEPENDS ONLY ON NUMBER OF STATES
0030 REM
0031                DIM P(20,20)
0034 REM
0035 REM * * INPUT NO OF STATES AND NO OF INTEGERS
0036 REM
0040                 DISP "NO OF STATES";
0050                 INPUT M
0060                 DISP "NO OF DATA VALUES";
0070                 INPUT N
0074 REM
0075 REM * * CLEAR WORKING MATRIX
0076 REM
0080                          FOR I = 1 TO M STEP 1
0090                                   FOR J = 1 TO M STEP 1
0100                                            LET P(I,J)=0
0110                                   NEXT J
0120                          NEXT I
0124 REM
0125 REM * * INPUT SUCCESSIVE INTEGERS AND COMPUTE FREQUENCIES
0126 REM
0130                 INPUT I
0140                 FOR K=2 TO N STEP 1
0150                          INPUT J
0160                          IF J<1 THEN 150
0170                          IF J>M THEN 150
0180                          LET P(I,J) = P(I,J) + 1
0190                          LET I=J
0200                 NEXT K
0204 REM
0205 REM * * PRINT OBSERVED FREQUENCIES AND COMPUTE PROBABILITIES
0206 REM

0210                PRINT "OBSERVED FREQUENCIES"
0220                PRINT
0230                PRINT
0240                PRINT
0245 REM
0250                FOR I=1 TO M STEP 1
0260                         LET S=O
0270                         FOR J= 1 TO M STEP 1
0280                                  LET S=S+P(I,J)
0290                                  PRINT P(I,J),
0300                                  NEXT J
0310                         FOR J=1 TO M STEP 1
0320                                  LET P(I,J) = P(I,J)/S
0330                         NEXT J
0340                         PRINT
0350                NEXT I
0354 REM
0355 REM * * PRINT TRANSITION PROBABILITIES
0356 REM
0360                PRINT
0370                PRINT
0380                PRINT
0390                PRINT "TRANSITION PROBABILITIES"
0400                PRINT
0410                PRINT
0420                PRINT
0425 REM
0430                FOR I = 1 TO M STEP 1
0440                         FOR J= 1 TO M STEP 1
0450                                  PRINT P(I,J),
0460                         NEXT J
0470                         PRINT
0480                NEXT I
0485 REM 
0490           END
END OF LISTING

 MARK2: TESTING TRANSITION FREQUENCIES FOR THE  MARKOV PROPERTY

0005 REM * * PROGRAM TO TEST TRANSITION FREQUENCIES FOR THE MARKOV PROPERTY 
0006 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0007 REM * * WRITTEN AND ANNOTATED JANUARY 1982
0008 REM
0009 REM * * THE PROGRAM READS A MATRIX OF TRANSITION FREQUENCIES HELD AS
0010 REM * * DATA AND COMPUTES A CHI-SQUARE TEST THAT THE TRANSITIONS ARE 
0011 REM * * FROM AN INDEPENDENT EVENTS PROCESS. REJECTION OF THE NULL
0012 REM * * HYPOTHESIS INDICATES THE ALTERNATIVE HYPOTHESIS THAT THE
0013 REM * * TRANSITIONS HAVE THE MARKOV PROPERTY.
0014 REM
0018 REM * * DIMENSION STATEMENT DEPENDS ON NO OF STATES
0019 REM
0020                DIM T(6,6),P(6,6),C(6)
0024 REM
0025 REM * * INPUT NO OF STATES
0026 REM
0030                DISP "NO OF STATES";
0040                INPUT M
0044 REM
0045 REM * * READ FREQUENCIES FROM DATA STATEMENTS AND ZERO ROW ACCUMULATORS 
0046 REM
0050                FOR I = 1 TO M STEP 1
0060                         FOR J = 1 TO M STEP 1
0070                                  READ T (I, J)
0080                         NEXT J
0090                         LET C (I)=0
0100                NEXT I
0104 REM
0105 REM * * COMPUTE TRANSITION PROBABILITIES AND ROW TOTALS
0106 REM
0110                LET Z=0
0120                FOR 1=1 TO M STEP 1
0130                         LET S=0
0140                         FOR J=1TOMSTEP1
0150                                  LET S=S + T(I,J)
0160                                  LET Z=Z + T(I,J)
0170                         NEXT J
0175 REM
0180                         FOR J=1 TO M STEP 1
0190                                  LET P(I,J) = T(I,J)/S
0200                         NEXT J
0210                NEXT I
0214 REM
0215 REM * * COMPUTE COLUMN TOTALS
0216 REM
0220                FOR J = 1 TO M STEP 1
0230                         FOR I = 1 TO M STEP 1
0240                                  LET C(J) = C(J) + T(I,J)
0250                         NEXT J
0260                         LET C(J) = C(J)/Z
0270                NEXT J
0274 REM
0275 REM * * COMPUTE AND PRINT CHI-SQUARE AND DF
0276 REM
0280                LET L = 0
0290                FOR I = 1 TO M STEP 1
0300                         FOR J = 1 TO M STEP 1
0310                                  LET L=L + T(I,J) * LOG(P(I,J)/C(J))
0320                         NEXT J
0330                NEXT I
0335 REM
0340                LET L=L*2
0350                PRINT
0360                PRINT
0370                PRINT
0380                PRINT "CHI-SQUARE= ";L;" WITH "; (M=1)1\2;" DF"
0384 REM
0385 REM * * DATA STATEMENTS OF TRANSITION FREQUENCIES
0386 REM
0391                DATA58,1B,2
0392                DATA 15,86,39
0393                DATA 5,35,51
0415 REM 
0420           END

END OF LISTING

MARK3: TESTING THE STATIONARITY OF A MARKOV CHAIN

0005 REM * * TEST OF STATIONARITY OF MARKOV CHAIN
0006 REM * * WRITTEN BY J.N.R.JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0007 REM * * WRITTEN AUGUST 1982
0008 REM
0009 REM * * THE PROGRAM TESTS THE STATIONARITY OF A SERIES OF MARKOV
0010 REM * * TRANSITION SUB-MATRICES IN EITHER TIME OR SPACE. THE TEST
0011 REM * * IS DISTRIBUTED LIKE CHI-SQUARE, AND TEST VALUES GREATER THAN
0012 REM * * THOSE TABULATED FOR THE GIVEN DEGREES OF FREEDOM INDICATE
0013 REM * * NON-STATIONARITY.
0017 REM
0018 REM * * DIMENSION STATEMENT DEPENDS ON NUMBER OF STATES
0019 REM
0020                DIM N(6,6),P(6,6),O(6,6)
0024 REM
0025 REM * * INPUT NO OF STATES AND SUB-MATRICES
0026 REM
0030                DISP "NO OF STATES";
0040                INPUT M
0050                DISP "NO OF SUBMATRICES";
0060                INPUT T
0064 REM
0065 REM * * READ AND SUM SUB-MATRICES
0066 REM
0070                MAT Q = ZER(M,M)
0080                FOR I = 1 TO T STEP 1
0090                         MAT READ N(M,M)
0100                         MAT Q = Q + N
0110                NEXT I
0114 REM
0115 REM * * COMPUTE AND PRINT TRANSITION MATRIX
0116 REM

0120                FOR I = 1 TO M STEP 1
0130                         LET R = 0
0140                         FOR J = 1 TO M STEP 1
0150                                  LET R=R+Q(I,J)
0160                         NEXT J
0165 REM
0170                         FOR J = 1 TO M STEP 1
0180                                  LET Q(I,J)=Q(I,J)/R
0190                         NEXT J
0200                NEXT I
0205 REM
0210                PRINT "MATRIX OF TRANSITION PROBABILITIES"
0220                PRINT
0230                PRINT
0240                MAT PRINT Q
0250                PRINT
0260                PRINT
0264 REM
0265 REM * * COMPUTE AND PRINT TEST STATISTIC
0266 REM
0270                RESTORE
0275 REM
0280                FOR K= 1 TO T STEP 1
0290                         LET S = 0
0300                         MAT READ N(M,M)
0310                         FOR I=1 TO M STEP 1
0315 REM
0320                                  LET R = 0
0330                                  FOR J = 1 TO M STEP 1
0340                                           LET R = R + N(I,J)
0350                                  NEXT J
0355 REM
0360                                  FOR J = 1 TO M STEP 1
0370                                           LET P(I,J) = N(I,J)/R
0380                                  NEXT J
0385 REM
0390                                  FOR J= 1 TO M STEP 1
0400                                           LET S = S + N(I,J) * LOG(P(I,J)/Q(I,J)
0410                                  NEXT J
0415 REM
0420                            NEXT I
0425 REM
0430                NEXT K
0435 REM
0440                            LET C =2 * S
0450                            LET D = (T -1) * M * (M-1)
0460                            PRINT" CHI-SQUARE = " ;C
0470                            PRINT "WITH             ";D;"DEGREES OF FREEDOM"
0480                            PRINT
0490                            PRINT
0500                            PRINT "IF THIS CALCULATED VALUE EXCEEDS THE TABULATED VALUE"
0510                            PRINT "OF CHI-SQUARE FOR THE GIVEN NO OF DEGREES OF FREEDOM"
0520                            PRINT "THE HYPOTHESIS OF STATIONARITY SHOULD BE REJECTED"
0525 REM
0530 REM * * SUCCESSIVE SUBMATRICES OF FREQUENCIES SHOULD BE"
0540 REM ** GIVEN IN THE DATA STATEMENTS WHICH FOLLOW
0545 REM
0601                            DATA
0602                            DATA
0603                            DATA
0604                            DATA
0895 REM 
0900           END

END OF LISTING

   MARK4: COMPUTING SUCCESSIVE MARKOV PROBABILITIES

0005 REM * * PROGRAM TO COMPUTE MARKOV PROBABILITIES AFTER N STEPS
0006 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0007 REM * * WRITTEN MAY 1979, ANNOTATED JANUARY 1982
0008 REM
0009 REM * * PROGRAM CALCULATES THE TRANSITION PROBABILITIES OF A MARKOV
0010 REM * * PROCESS AFTER N SUCCESSIVE TIME STEPS, PRINTING THE ORIGINAL
0011 REM * * MATRIX OF TRANSITION PROBABILITIES AND THE PROBABILITIES AFTER
0012 REM * * N TIME STEPS HAVE TAKEN PLACE. THE INTERMEDIATE PROBABILITIES
0013 REM * * ARE NOT PRINTED, IN CONTRAST TO MARK3.
0017 REM
0018 REM ** DIMENSION STATEMENT DEPENDS ON NUMBER OF STATES
0019 REM
0020                            DIM T(6,6),P(6,6),R(6,6)
0024 REM
0025 REM * * INPUT NO OF STATES AND NO OF TIME STEPS
0026 REM
0030                DISP "NO OF STATES";
0040                INPUT M
0050                DISP "NO OF STEPS";
0060                INPUT N
0064 REM
0065 REM * * READ ORIGINAL TRANSITION MATRIX AS DATA AND PRINT
0066 REM
0070                PRINT "ORIGINAL MATRIX"
0080                PRINT
0085 REM
0090                FOR I = 1 TO M STEP 1
0100                         FOR J = 1 TO M STEP 1
0110                                  READ T(I,J)
0120                                  LET P(I,J) = T(I,J)
0130                                  PRINT T(I,J),
0140                         NEXT J
0150                         PRINT
0160                NEXT I
0164 REM
0165 REM * * CALCULATE SUCCESSIVE PROBABILITIES
0166 REM
0170                FOR L = 1 TO N STEP1
0175 REM
0180                         FOR I=1TOMSTEP1
0190                                  FOR J = 1 TO M STEP 1
0200                                           LET R(I,J)=0
0210                                           FOR K = 1 TO M STEP 1
0220                                                    LET R(I,J) = R(I,J) + T(I,K) * P(K,J)
0230                                            NEXT K
0240                                   NEXT J
0250                         NEXT I
0255 REM
0260                           FOR I = 1 TO M STEP 1
0270                                    FOR J = 1 TO M STEP 1
0280                                             LET P(I,J) = R(I,J)
0290                                    NEXT J
0300                           NEXT I
0305 REM
0310                NEXT L
0314 REM
0315 REM * * PRINT FINAL TRANSITION PROBABILITIES
0316 REM
0320                 PRINT
0330                 PRINT
0340                 PRINT "STEP";L-1
0345 REM
0350                 FOR I = 1 TO M STEP 1
0360                          FOR J = 1 TO M STEP 1
0370                                   PRINT P(I,J),
0380                          NEXT J
0390                           PRINT
0400                 NEXT I
0404 REM
0405 REM ** DATA STATEMENTS
0406 REM
0411                DATA 0.77,0.18,0.05
0412                DATA 0.08,0.65,0.27
0413                DATA 0.07,0.32,0.61
0495 REM 
0500          END

END OF LISTING

AMARK: CALCULATING THE PROPERTIES OF AN ABSORBING MARKOV CHAIN

0005 REM * * PROGRAM TO COMPUTE PROPERTIES OF AN ABSORBING MARKOV CHAIN
0006 REM * * WRITTEN BY J.N.R.JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0007 REM * * WRITTEN OCTOBER 1978 FROM AN ALGORITHM BY J.G.KEMENY
0008 REM * * ANNOTATED JANUARY 1982
0009 REM
0010 REM * * PROGRAM CALCULATES THE BASIC PROPERTIES OF A MARKOV TRANSITION 
0011 REM * * MATRIX WITH ONE OR MORE ABSORBING STATES. IN ADDITION TO THE 
0012 REM * * FUNDAMENTAL MATRIX, THE PROBABILITIES TO ABSORPTION FROM
0013 REM * * EACH STATE ARE CALCULATED AND PRINTED
0014 REM
0018 REM * * DIMENSIONS DEPEND ON NUMBER OF STATES
0019 REM
0020                DIM Q(10, 10),N(10, 10),R(10, 10)
0030                DIM T(10),U(10)
0034 REM
0035 REM * * READ NO OF ABSORBING AND NO OF TRANSIENT STATES
0036 REM
0040                READ M,N
0044 REM
0045 REM * * READ MATRIX OF TRANSIENT PROBABILITIES
0046 REM
0050                MAT READ Q(N,N)
0054 REM
0055 REM * * READ MATRIX OF TRANSIENT TO ABSORBING PROBABILITIES
0056 REM
0060                MAT READ R(N,M)
0064 REM
0065 REM * * PREPARE IDENTITY MATRIX AND VECTOR
0066 REM
0070                MAT N = IDN(N,N)
0080                MAT U=CON(N,1)
0084 REM
0085 REM * * PRINT TRANSIENT TO TRANSIENT PROBABILITIES
0086 REM
0090                PRINT "TRANSIENT TO TRANSIENT PROBABILITIES"
0100                MAT PRINT Q
0110                PRINT
0114 REM
0115 REM * * PRINT TRANSIENT TO ABSORBING PROBABILITIES
0116 REM
0120                PRINT" TRANSIENT TO ABSORBING PROBABILITIES"
0130                MAT PRINT R
0140                PRINT
0144 REM
0145 REM ** COMPUTE AND PRINT FUNDAMENTAL MATRIX
0146 REM
0150                MAT Q=N-Q
0160                MAT N=INV(Q)
0170                PRINT "FUNDAMENTAL MATRIX"
0180                MAT PRINT N
0190                PRINT
0200                MAT T=N*U
0210                MAT PRINT T
0220                PRINT
0224 REM
0225 REM * * COMPUTE AND PRINT ABSORPTION PROBABILITIES
0226 REM
0230                MAT Q=N*R
0240                PRINT "ABSORPTION PROBABILITIES"
0250                MAT PRINT Q
0694 REM
0695 REM **  DATA HELD AS DATA STATEMENTS
0705 REM
0795 REM * * MATRIX OF TRANSIENT PROBABILITIES
0796 REM  
0801                DATA 0.936, 0.064, 0.000, 0000
0802                DATA 0.000, 0.921, 0.079, 0.000
0803                DATA 0.000, 0.000, 0.951,0.049
0804                DATA 0.000, 0.000, 0.000, 0.961
0844 REM
0845 REM * * MATRIX OF ABSORBING PROBABILITIES
0846 REM
0850                DATA 0.000, 0.000.0.000, 0.039
0895 REM
0900          END

END OF LISTING


EMARK: CALCULATING THE PROPERTIES OF AN ERGODIC MARKOV CHAIN


0005 REM * * PROGRAM TO CALCULATE THE PROPERTIES OF AN ERGODIC MARKOV CHAIN
0006 REM * * WRITTEN BY J.N.R. JEFFERS, INSTITUTE OF TERRESTRIAL ECOLOGY
0007 REM * * WRITTEN AUGUST 1980 FROM AN ALGORITHM BY J.G. KEMENY
0008 REM * * ANNOTATED FEBRUARY 1982
0009 REM
0010 REM * * PROGRAM CALCULATES THE BASIC PROPERTIES OF AN ERGODIC MARKOV
0011 REM * * CHAIN. IN ADDITION TO THE LIMITING PROBABILITIES FOR EACH STATE
0012 REM * * THE PROGRAM CALCULATES THE MEAN FIRST PASSAGE TIMES AND THE
0013 REM * * FIRST PASSAGE TIMES IN EQUILIBRIUM.
0014 REM
0018 REM
0019 REM
0020                DIM P(10,10),M(10, 10),Z(10, 10)
0030                DIMA(10,10),B(10,10)
0034 REM
0035 REM * * READ NO OF STATES AND MATRIX OF TRANSITION PROBABILITIES
0036 REM
0040                READ N
0050                MAT READ P(N,N)
0054 REM
0055 REM * * CONSTRUCT IDENTITY MATRIX
0056 REM
0060                MAT Z=IDN(N,N)
0064 REM
0065 REM * * PRINT MATRIX OF TRANSITION PROBABILITIES
0066 REM
0070                PRINT "TRANSITION PROBABILITIES"
0080                PRINT
0090                MAT PRINT P
0100                PRINT
0110                PRINT
0120                PRINT
0124 REM
0125 REM * * COMPUTE AND PRINT LIMITING PROBABILITIES
0126 REM
0130                MAT Z=Z-P
0135 REM
0140                FOR I=1 TO N STEP 1
0150                        LET Z(I,N)=1
0160                NEXT I
0165 REM
0170                MAT M=INV(Z)
0180                MAT A=ZER(1,N)
0185 REM
0190                FOR J = 1 TO N STEP 1
0200                      LET A(1,J)=M(N,J)
0210                NEXT J
0215 REM
0220                PRINT "LIMITING PROBABILITIES"
0230                PRINT
0240                MAT PRINT A
0250                PRINT
0260                PRINT
0270                PRINT
0274 REM
0275 REM * * COMPUTE AND PRINT MEAN FIRST PASSAGE TIMES
0276 REM
0280                MAT M=IDN(N,N)
0290                MAT M=M-P
0295 REM
0300                FOR I = 1 TO N STEP 1
0310                        FOR J=1 TO N STEP 1
0320                                LET M(I,J)=M(I,J)+A(1,J)
0330                        NEXT J
0340                NEXT I
0345 REM
0350                MAT Z=INV(M)
0355 REM
0360                FOR I = 1 TO N STEP 1
0370                      FOR J = 1 TO N STEP 1
0380                              LET M(I,J) = (Z(J,J) -Z(I,J))/A(1 ,J)
0390                      NEXT J
0400                NEXT I
0405 REM
0410                PRINT "MEAN FIRST PASSAGE TIMES"0420 PRINT
0430                MAT PRINT M
0440                PRINT
0450                PRINT
0460                PRINT
0464 REM
0465 REM * * COMPUTE AND PRINT FIRST PASSAGE TIMES IN EQUILIBRIUM
0466 REM
0470                MAT B=A*M
0475 REM
0480                PRINT "FIRST PASSAGE TIMES IN EQUILIBRIUM"
0485                PRINT
0490                MAT PRINT B
0494 REM
0495 REM * * DATA HELD AS DATA STATEMENTS
0496 REM
0497 REM * * NUMBER OF STATES
0498 REM
0500                DATA 4
0504 REM
0505 REM * * MATRIX OF TRANSITION PROBABILITIES
0506 REM
0510                DATA 0.38, 0.18, 0.00, 0.44
0520                DATA 0.45, 0.32, 0.21, 0.02
0530                DATA 0.31, 0.04, 0.17,0.48
0540                DATA 0.40, 0.16, 0.22, 0.21
0595 REM
0600          END

END OF LISTING

 

Back to Table of Contents

 

The electronic version of this publication has been prepared at
the M S Swaminathan Research Foundation, Chennai, India.