home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mathaids
/
misc
/
euler.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
3KB
|
70 lines
10 REM*********************************
11 REM* ***
12 REM* LINEAR MODEL SIMULATION PGM ***
13 REM* ***
14 REM* EULER INTEGRATION ***
15 REM* ***
16 REM* DISK NAME IS 'EULER' ***
17 REM* BY K.VANSLETTE REV.A ***
18 REM* ***
19 REM*********************************
20 REM
25 PRINT
30 PRINT " - RUNGA-KUTTA INTEGRATION PROGRAM -"
35 PRINT "THE PARAMETERS ARE -"
40 PRINT " 1) NUMBER OF MODEL COMPARTMENTS"
45 PRINT " 2) NUMBER OF ENVIROMENTAL INPUTS"
50 PRINT " 3) MATRIX OF COMPARTMENTAL RATE COEF"
55 PRINT " 4) VECTOR OF INITIAL COMPARTMENT SIZES"
60 PRINT " 5) MATRIX OF ENVIROMENTAL INPUT COEF"
65 PRINT " 6) VECTOR OF ENVIROMENTAL INPUT SIZES"
70 PRINT " 7) NUMBER OF ITERATIVE STEPS"
75 INPUT "ENTER NUMBER OF COMPARTMENTS (1-7)"; N
80 N = N - 1
85 INPUT "ENTER NUMBER OF MODEL INPUTS (1-3)"; NN
90 NN = NN - 1: GOTO 100
95 PRINT " ": RETURN
100 DIM A(N, N), B(N, NN), XX(100, N), X(N)
105 DIM AX(N), XD(N), XP(N), XQ(N), XR(N)
110 DIM Z(NN), BB(N), S(N), P(N)
115 PRINT "ENTER MATRIX OF COMPARTMENT RATE COEF-"
120 FOR I = 0 TO N
125 FOR J = 0 TO N: PRINT "ROW"; J; " COL"; I: INPUT " COEF"; A(I, J)
130 NEXT J: NEXT I: GOSUB 95
135 PRINT "ENTER INITIAL COMPARTMENT VALUES - "
140 FOR I = 0 TO N: PRINT "PART"; I: INPUT " VALUE"; XX(0, I): NEXT I: GOSUB 95
145 PRINT "ENTER MATRIX OF INPUT COEFFICIENTS - "
150 FOR I = 0 TO N
155 FOR J = 0 TO NN: PRINT "ROW"; J; " COL"; I: INPUT " COEF"; B(I, J)
160 NEXT J: NEXT I: GOSUB 95
165 PRINT "ENTER THE SIZES OF THE INPUTS - "
170 FOR I = 0 TO NN: PRINT "PART"; I: INPUT " VALUE"; Z(I): NEXT I: GOSUB 95
175 INPUT "ENTER NUMBER OF ITERATIONS (1-3)"; KK
180 FOR I = 0 TO N: REM SAVE INIT VALUES
185 X(I) = XX(0, I): NEXT I
190 REM
195 REM
200 REM *** START SIMULATION ***
205 FOR IJ = 1 TO 100
208 PRINT "--UNIT TIME"; IJ
210 DT = 1 / KK
212 PRINT "DT ="; DT
215 FOR JJ = 1 TO KK
218 PRINT "ITERATION"; JJ
220 FOR I = 0 TO N
222 PRINT "I ="; I
225 AX(I) = 0
230 FOR J = 0 TO N: AX(I) = AX(I) + A(I, J) * X(J): NEXT J
235 FOR K = 0 TO NN: AX(I) = AX(I) + B(I, K) * Z(K): NEXT K
240 NEXT I
245 FOR I = 0 TO N: X(I) = X(I) + DT * AX(I): NEXT I
250 NEXT JJ
255 FOR I = 0 TO N: XX(IJ, I) = X(I): NEXT I
260 NEXT IJ
265 REM END OF SIMULATION
270 REM
275 REM
300 REM START OUTPUT
305 END