home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mathaids
/
misc
/
rungaint.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
3KB
|
96 lines
10 REM*********************************
11 REM* ***
12 REM* LINEAR MODEL SIMULATION PGM ***
13 REM* ***
14 REM* RUNGA-KUTTA INTEGRATION ***
15 REM* ***
16 REM* DISK NAME IS 'RUNGA' ***
17 REM* BY K.VANSLETTE REV.A ***
18 REM* ***
19 REM*********************************
20 REM
25
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 PRINT "START INTEGRATION..."
195 REM
200 REM *** START SIMULATION ***
205 FOR IJ=1 TO 100
208 PRINT "--TIME UNITS=";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 "FIRST=";I
225 XD(I)=0
230 FOR J=0 TO N:XD(I)=XD(I)+A(I,J)*X(J):NEXT J
235 FOR K=0 TO NN:XD(I)=XD(I)+B(I,K)*Z(K):NEXT K
240 NEXT I
242 PRINT "FIRST EST."
245 FOR I=0 TO N:AX(I)=X(I)+(DT/2)*XD(I):NEXT I
250 FOR I=0 TO N
255 XP(I)=0
260 FOR J=0 TO N:XP(I)=XP(I)+A(I,J)*AX(J):NEXT J
265 FOR K=0 TO NN:XP(I)=XP(I)+B(I,K)*Z(K):NEXT K
270 NEXT I
272 PRINT "SECOND EST."
275 FOR I=0 TO N:AX(I)=X(I)+(DT/2)*XP(I):NEXT I
290 FOR J=0 TO N:XQ(I)=XQ(I)+A(I,J)*AX(J):NEXT J
295 FOR K=0 TO NN:XQ(I)=XQ(I)+B(I,K)*Z(K):NEXT K
300 NEXT I
310 FOR I=0 TO N:AX(I)=X(I)+DT*XQ(I):NEXT I
320 FOR I=0 TO N:REM L340
325 XR(I)=0
330 FOR J=0 TO N:XR(I)=XR(I)+A(I,J)*AX(J):NEXT J
335 FOR K=0 TO NN:XR(I)=XR(I)+B(I,K)*Z(K):NEXT K
340 NEXT I
342 PRINT"FINAL EST."
345 FOR I=0 TO N:X(I)=X(I)+DT*(XD(I)/6+XP(I)/3+XQ(I)/3+XR(I)/6):NEXT I
350 NEXT JJ
355 FOR I=0 TO N:REM STORE SIZES
360 XX(IJ,I)=X(I):NEXT I
365 NEXT IJ
370 REM END OF SIMULATION
400 REM --- OUTPUT ---
405 PRINT" - RUNGA-KUTTA INTEGRATION OUTPUT -"
410 PRINT "THE NUMBER OF COMPARMENTS IS";N+1
415 PRINT "THE SIMULATION HAS FINISHED 100 UNITS"
420 PRINT "THE MATRIX OF RATE COEFFICIENTS IS-"
425 FOR I=0 TO N
430 FOR J=0 TO N:PRINT TAB(J*10);A(I,J);:NEXT J
435 PRINT:NEXT I
440 PRINT"END OF PROGRAM..."
445 END