home *** CD-ROM | disk | FTP | other *** search
-
- '
- ' Lyapunov Space
- '
- ' written by scott dhomas trenn
- ' 797 Mitchell Street, Fredericton, NB, E3B 3S8, CANADA
- ' INTERNET: wilkie@jupiter.sun.csd.unb.ca
- '
-
- REM $OPTION Y+
-
- DEFINT a-z
-
- SCREEN 1,640,400,LOG2(16),4
- WINDOW 1,,(0,0)-(640,400),16+32+128+256,1
-
- PALETTE 0, .67,.67,.67 : PALETTE 1, 0,0,0
- PALETTE 13, 1,1,0 : PALETTE 7, 1,0,.8 : PALETTE 15, .8,.9,.8
-
- LogOf2# = LOG(2)
-
- IterationsStable = 100
- IterationsChaotic = 10
- xOrigin = 542
- xScale = 71
- yOrigin = 399
- ySize = 380
- rMin# = 1e-129#
- rMax# = 4#
-
- PRINT "Lyapunov Space";
- LOCATE 2,1
- FOR lp = 0 TO 15 : COLOR lp : PRINT "*"; : NEXT lp
-
- rStep# = (rMax# - rMin#) / (ySize+1)
- rChaotic# = 3.56994571869#
-
- DIM counts(15), ranges#(15,2)
- FOR lp = 0 TO 15 : READ ranges#(lp,0), ranges#(lp,1), ranges#(lp,2) : NEXT lp
- DATA 0, 0, 0
- DATA 1, 0, 0
- DATA 15, - .09, 0
- DATA 14, - .20, - .09
- DATA 13, - .34, - .20
- DATA 12, - .485, - .34
- DATA 11, - .66, - .485
- DATA 10, - .88, - .66
- DATA 9, - 1.12, - .88
- DATA 8, - 1.44, - 1.12
- DATA 7, - 1.84, - 1.44
- DATA 6, - 2.43, - 1.84
- DATA 5, - 3.40, - 2.43
- DATA 4, -10.00, - 3.40
- DATA 3, -55.00, -10.00
- DATA 2, 0, 0
-
- r# = rMin#
- FOR yCor = yOrigin TO yOrigin-ySize-1 STEP -1
- x# = .5
- total# = 0
-
- ' Eliminate transients
- FOR n = 1 TO 50 : x# = (r# * x#) * (1-x#) : NEXT n
-
- ' Plot logistic system
- IF r# < rChaotic# THEN
- Iterations = IterationsStable
- ELSE
- Iterations = IterationsChaotic
- END IF
-
- Total! = 0
- FOR n = 1 TO Iterations
- x# = (r# * x#) * (1-x#)
- Total# = Total# + (LOG(ABS(r# - 2*r#*x#))/LogOf2#)
- NEXT n
- Lyap# = Total# / Iterations
-
- IF Lyap# > 0 THEN
- COLOR 1 : INCR counts(1)
- ELSEIF Lyap# < ranges#(14,1) THEN
- COLOR 2 : INCR counts(2)
- ELSE
- t = 2
- DO
- IF Lyap# > ranges#(t,1) AND Lyap# <= ranges#(t,2) THEN
- COLOR ranges#(t,0) : INCR counts(t)
- EXIT LOOP
- END IF
- INCR t
- LOOP
- END IF
-
- xCor = XOrigin + Lyap# * xScale
- IF xCor < 0 THEN xCor = 1 : COLOR 15
- PSET (xCor, yCor)
- LINE -STEP (10,0)
-
- r# = r# + rStep#
- NEXT yCor
-
- LOCATE 6,1
- FOR lp = 0 TO 15 : PRINT lp, counts(lp) : NEXT lp
-
- WHILE INKEY$ = "" : SLEEP : WEND
- WINDOW CLOSE 1
- SCREEN CLOSE 1
-
- END
-