10 REM PROGRAM D15_LRNZ SCREEN 12 LINE (0, 0)-(640, 10), 10, BF LINE (0, 0)-(10, 480), 10, BF LINE (630, 0)-(640, 480), 10, BF LINE (0, 470)-(640, 480), 10, BF COLOR 13: LOCATE 3, 29: PRINT "FINITE AMPLITUDE CONVECTION AND THE ONSET OF CHAOS": REM SLEEP 2 LOCATE 6, 19: PRINT "FROM THE ORIGINAL MODEL OF EDWARD LORENZ": REM SLEEP 2 COLOR 11: LOCATE 8, 5: PRINT "THE NATURE OF THERMAL CONVECTION DEPENDS ON THE LAPSE RATE": REM SLEEP 2 LOCATE 9, 8: PRINT "CONVECTION DIES OUT 0 < R <1": REM SLEEP 2 LOCATE 10, 8: PRINT "CONVECTION WITH DAMPING OSCILLATIONS 1 < R < 24.7": REM SLEEP 2 LOCATE 11, 8: PRINT "CONVECTION WITH GROWING OSCILLATIONS (CHAOS) 24.8 < R": REM SLEEP 2 IF R > 100 THEN R = 55: IF R < 0 THEN R = .99 COLOR 14: LOCATE 12, 42: INPUT "ENTER LAPSE RATE R = ", R COLOR 12: LOCATE 14, 5: PRINT "TYPE OF DISPLAY": REM SLEEP 2 LOCATE 15, 8: PRINT "PLOT OF PARADIGM SHIFTS = 1": REM SLEEP 2 LOCATE 16, 8: PRINT "BUTTERFLY DIAGRAM = 2": REM SLEEP 2 COLOR 14: LOCATE 17, 10: INPUT "YOUR CHOICE = ", NCH COLOR 10 DO WHILE INKEY$ = "" LOCATE 24, 25: PRINT "HIT ANY KEY TO START CONVECTION": SLEEP 1 TT = TIMER + .25 DO UNTIL TIMER > TT LOCATE 24, 25: PRINT " " LOOP LOOP CLS COLOR 15 60 SGMA = 10: B = 8 / 3 70 X0 = .2: Y0 = -8: Z0 = 24 80 DT = .01: SRT = 1 / SQR(2) REM COLORKEY DIM R(14), G(14), B(14) R(1) = 54: G(1) = 0: B(1) = 54 R(2) = 24: G(2) = 0: B(2) = 40 R(3) = 0: G(3) = 0: B(3) = 48 R(4) = 0: G(4) = 0: B(4) = 63 R(5) = 0: G(5) = 36: B(5) = 60 R(6) = 16: G(6) = 48: B(6) = 63 R(7) = 0: G(7) = 56: B(7) = 0 R(8) = 36: G(8) = 63: B(8) = 0 R(9) = 63: G(9) = 63: B(9) = 0 R(10) = 63: G(10) = 48: B(10) = 0 R(11) = 63: G(11) = 36: B(11) = 0 R(12) = 63: G(12) = 24: B(12) = 0 R(13) = 54: G(13) = 0: B(13) = 0 R(14) = 36: G(14) = 0: B(14) = 0 SCREEN 12: CLS WINDOW (0, 0)-(16 * R, 12 * R) FOR I = 1 TO 14 HUE = 65536 * B(I) + 256 * G(I) + R(I) PALETTE I, HUE NEXT I YA = .3 * R: ZA = R * .95 YB = -.3 * R: ZB = R * .95 IF NCH = 2 THEN CIRCLE (8 * R + 6 * YA, 6 * ZA), (9 + I / 1000) CIRCLE (8 * R + 6 * YB, 6 * ZB), (9 + I / 1000) END IF IF NCH = 1 THEN LINE (0, 175)-(640, 175) REM DOUBLE APPROXIMATION FINITE DIFFERENCE SCHEME IF R < 24.8 THEN NDT = 1000 ELSE NDT = 3000 100 FOR I = 1 TO NDT 110 X1 = X0 + DT * (SGMA * (Y0 - X0)) 120 Y1 = Y0 + DT * (-X0 * Z0 + R * X0 - Y0) 130 Z1 = Z0 + DT * (X0 * Y0 - B * Z0) 140 X2 = X1 + DT * (SGMA * (Y1 - X1)) 150 Y2 = Y1 + DT * (-X1 * Z1 + R * X1 - Y1) 160 Z2 = Z1 + DT * (X1 * Y1 - B * Z1) 170 XNEW = (X2 + X0) / 2 180 YNEW = (Y2 + Y0) / 2 190 ZNEW = (Z2 + Z0) / 2 200 ON NCH GOTO 300, 320 300 IF INT(I / 5) = I / 5 THEN PSET (I / 5, 175 - 50 * YNEW / R), 15 LOCATE 1, 1: PRINT I / 5, 175 - 50 * YNEW / R 310 GOTO 400 320 RA = SQR((YNEW - YA) ^ 2 + (ZNEW - ZA) ^ 2) 325 RB = SQR((YNEW - YB) ^ 2 + (ZNEW - ZB) ^ 2) 330 IF RA < RB THEN RMIN = RA ELSE RMIN = RB 340 HUE = INT(RMIN * 20 / R) + 1: IF HUE > 14 THEN HUE = 14 350 PSET (8 * R + 6 * YNEW, 6 * ZNEW), 15: REM HUE LINE (8 * R + 6 * Y0, 6 * Z0)-(8 * R + 6 * YNEW, 6 * ZNEW), HUE 400 X0 = XNEW 410 Y0 = YNEW 420 Z0 = ZNEW FOR KKK = 1 TO 1500 NEXT KKK 500 NEXT I