To Be Continued ...
Discrete Dynamical Systems Software

Bruce B. Peckham



TUTORIAL


  1. Obtain or create an executable version of the software

  2. See "Download" link above.
  3. Start execution of the software

    The executable should be named "tbc.ex". It should be in a directory where you have write permissions. If so, enter tbc.ex at the command line. Two graphics windows and a GUI labelled To Be Continued ... with a version number should appear. The GUI panel should have 10 "tabs" for choosing different modules within TBC.
  4. Choose a map to investigate.

    The default map in the Main Panel should be "Per. Forced Osc. Caricature". Depress and hold the left mouse button on the menu to see the list of maps available. Slide down to Henon and release the left mouse button. "Henon" should now appear as the Map selection. Click on the "Map Information" tab with the left mouse button. The Map Information tab should be active. This gives the formula for the map. It also allows the user to choose any two parameters to be "primary", and allows the user to set all other ("auxiliary") parameters. We will use the "Devaney book version", so we will set auxiliary parameters 3 and 4 (parameters c and d) equal to 1. (This is should already be the default choice of parameters 3 and 4).

    Iteration


  5. Iterating one point one iterate at a time.

    Select the `Iterator' tab. Select starting values for the two primary parameters by entering values in the Starting point row: a=1.4, b=-0.3. These may already be the default values. If not, select the third input window (with the left mouse button) in the `Starting Point' row to make it active. It should change color. Clear the current value (backspace, double click, or drag to select). Type in 1.4 and return. Do the same to set the second parameter to -0.3. These are the classic parameters for the Henon map for which the existence of a strange attractor has been only recently proven to exist. Enter starting "Phase" variables in the first two columns of the Starting Point row: x=.1, y=.1. Alternate start point selection: Hold the left mouse button on `Get starting point from ...' to see places to copy from. These will be useful later. Mouse points are selected with the right mouse button in the appropriate window. (Choose point with right mouse first, then read into `Starting Point:' via `Get starting point from ...' menu.) Now select the "Start" button to iterate the Henon map once (the default "# of Iterates" should still be 1). The current point values should now be (x,y,a,b)=(1.42, .1, 1.4, -0.3). Also, in the Phase Space Window there should appear a "+" at the starting point: (x,y)=(.1,.1), and an "x" at the ending point: (x,y)=(1.42,.1). Now select the "Continue" button to iterate from the "Current Point" (as opposed to iterating from the "Starting Point". The "Current Point" on the "Iterator" panel should be updated to (x,y)=(-.5864,1.42), and the Phase Space Window should add an "x" to the corresponding point in the plane. Select the "Continue" button several more times to see successive iterates.
  6. Saving the points on an orbit to a local data set.

    Select the "SAVE Orbit iterates:" button. The default "in data set #" should be set at 1. In order to see what you have done, select "Status of Data Sets" from the "Edit" pulldown menu. The number of points in data set 1 should be stated. All other data sets should be empty. The specified points were saved in Set 1 when you selected the "SAVE - Orbit iterates:" button. In order to list the points on the orbit, select "View All Data Sets" from the "Edit" menu. Alternatively, select "View Data Set" and type "1" when queried for the data set number. The coordinates of the points on the orbit should appear in the execution window. The four coordinates of each point correspond to the two phase variables (x and y) and the two parameters. Notice that all the third and fourth coordinates are the same since the parameters do not change as the map is iterated.

    Several other options for viewing, clearing, and concatenating data sets are available from this "Edit" menu as well. data set, saving the points in a data set to a permanent file, retrieving a previously saved data set from a permanent file, seeing the status on the number of points currently saved in each data set, concatenating sets, and saving/retrieving/clearing "ALL" data sets at once.
  7. Saving the points from a local data set to a permanent file..

    Several input/output options are available for saving permanent files via the "File" pulldown menu. Practice saving either a single data set or "all" nonempty data sets, quitting TBC, restarting TBC, and retrieving the data set(s). Additional data set manipulations are possible from this "File" menu as well.
  8. Iterating one point multiple times.

    Change the entry for "# of Iterates" next to the "Continue" button to 100. Hit the "Enter" key. Select the "Continue" button. The next 100 iterates should appear in the phase space window, with an "x" at the last point. Select "Continue" several more times. The parabolic shape of the Henon attractor should start to appear. (Remember that this is just a single orbit for the Henon map.)
  9. Using the `Plot ON' and `Clear each Continue' buttons

    (Flash and Delay options are disabled as of 6-6-11.) The "Plot ON" is a toggle. When not selected, the points on an orbit are calculated but only the last point calculated is plotted. This is useful either for ignoring transients or for saving time when you do not need to visualize the orbit(s).

  10. Graphics Management.


  11. Plotting several orbits at once.

    The software allows iterating whole data sets at once. It also allows certain ways of filling a data set. We will illustrate by creating a circle in the phase space as a data set to iterate. On the Iterator panel, obtain the dropdown menu from the "Fill starting data set from..." area. Select "Circle". Enter "2" for the "Data Set to fill?". Select "OK" for the 30 point default for the number of points on the circle. Select "OK" for the comment about the choice for the center of the circle. Change the radius of the circle from the default of 1.0 to 0.2. Change the "Active Point/Set" from its current setting of "Point" to "Data Set 2". Select the "Start" button to iterate the whole circle (including the center) once. The "+" is at the first point in the data set; the "x" is where the iterates of "+" ended up. If you continue to iterate several more times, you will again see the Henon attractor start to fill out.

    Computing fixed points, periodic points, and invariant manifolds


  12. Computing fixed points.

    Select the "Start Point" tab from the main panel. Choose the values for the "Guess Point" using the top "Get from..." dropdown menu: choose "starting iterator point". This copies the starting iterator point (the first point on the circle you just iterated in the previous step, if you have been proceeding in order in this tutorial), which is at (x,y,a,b)=(0,0.2,1.4,-0.3). Now find an actual fixed point using this as a starting guess for Newton's method: choose "Newton's method" from the second "Get from..." dropdown menu. Place the Newton's Method panel which pops up with the left mouse button. Leave the default method at "2 resonance surface tangents". This effectively fixes the two parameter values at 1.4 and -0.3, respectively, but allows the x and y values to change in order to find a fixed point. A left click on "Do It" should result in finding a fixed point at about (x,y)=(.88..., .88...). The values should be filled in in the "Base Point" row. In the execution window will appear some debugging information, as well as the point converged to, and the eigenvalues of the fixed point: 0.155946 and -1.923739. (This fixed point is a saddle: one eigenvalue inside the unit circle, one eigenvalue outside.)
  13. Computing stable and unstable manifolds of saddle points.

    We will compute the stable and unstable manifolds of the fixed point we just located in the previous step. You should have completed the previous step before starting this step. Select the `Manifold setup' tab. Select "Get current periodic point" to copy the fixed point from the "Single point" panel. Select "Compute Eigendata ... " to compute eigenvalues and eigenvectors. Change the radio button from "Eval 1" to "Eval 2" (the unstable eigenvalue).

    Select "Compute Manifold Fund. Int." to compute a fundamental interval of the unstable manifold. This fundamental interval - actually a linear approximation of a fundamental interval along the stable eigenspace - is saved in the data set specified in the input window below the "Compute Manifold Fund. Int." button. The default is data set 1. To see the points saved in data set 1, select "View Point Set" as described in the "Saving the Points on an Orbit" section above. To extend this local portion of the unstable manifold to the "whole" unstable manifold, we need to iterate this fundamental interval. On the "Iterate" panel, make sure the "Active Point/Set" is set to "Data Set 1", set the "# of Iterates" for "Start" to "0", and the "# of Iterates" for "Continue" to "1". Now select "Start" to see the initial data set. Note that it is along the "Evec 2" direction from the "(Un)stable Manifold Setup" panel. Select "Continue" to iterate this Data Set 1. Note that successive iterates of the data set alternate from one side to the other of the fixed point. This is consistent with the fact that the unstable eigenvalue has a negative sign (-1.9237...).

    We will now compute one branch of the stable manifold. Change the plotting color to green (using the "Point Set Options" menu). Change the eigenvalue toggle to "Eval 1". Change the "Num. Pts per fund. int." from the default of 10 to 100. Change the "Dist. to first point" from .1 to -.01. The negative sign means we will compute the branch of the unstable manifold which is opposite the direction of "Evec 1". Change the "Save in Data Set" to "2"; select "Save in Data Set". On the "Iterate" panel, change the "# of Iterates" for "Continue" to "-1" (we need to iterate the fundamental interval of the stable manifold backward to obtain the "whole" branch of the stable manifold. Make sure the "Active Point/Set" is set to "Data Set 2". Select "Start" and then "Continue" several times. Since at least some of the points iterate off to infinity, after iterating about 8 times, you will get an "out of bounds" error message. You can similarly compute the other branch of the stable manifold by changing the "Dist. to first point" to a positive number.

    Continuation

    To illustrate phenomena in this Continuation section, we will use a new family of maps: the Arnold Standard Family of circle maps: theta -> theta + b + a sin(theta). Select "Circle Maps embedded in Plane" and look at Map Information. Lots of complicated formulas, but not so bad if you realize that this is a two-parameter family of maps of the plane: parameters a and b, and planar variables determined in polar coordinates. The radial variable is the time-1 map of dr/dt=r(1-r). This makes the unit circle attracting for all points in the plane except the origin. The angular component x is the circle map. It takes on different forms depending on the choices of the parameters. We will work only with the simplest case, the Standard Family. This family is chosen by selecting values of 1 for both Auxiliary parameters.

    If we ignore the auxiliary parameters, we are left with a two-parameter family of maps of the plane. The sets of fixed points in the four-dimensional phase cross parameter space form a two-dimensional surface inside the four-dimensional space: FP:={(x,y,a,b):F_(a,b) (x,y) = (x,y)}. Similarly, there are two-dimensional surfaces of period-q points: Perq:={(x,y,a,b):F^q_(a,b) (x,y) = (x,y)}. In the sections below, we will be computing points, curves, and patches of these surfaces.
  14. Curves of fixed points in families (with at least one parameter) of maps.

    Find a "base point" from which to continue. (See Computing Fixed Points above.) Try a guess of (x,y,a,b)=(.9,0,0,.2). Newton's method should converge to (x,y,a,b)=(1,0,0,.2). Select the `Curve Continuation' tab. Change the Method to "1-Convergence perp to tan1 & newton 1". These two vectors are shown on the "Starting Point Panel". The newton 1 vector (the first of the two "Newton's fixed vectors") stays constant throughout the continuation. Because it is (0,0,0,1) (the default), Newton's method will converge to a point with the same parameter b value as the initial guess. Along with a choice for the tan1 vector that has no b component, this will guarantee that the points on the continued curve all have b value .2.

    The tan1 vector (the first of the two "Res surf tan vectors") is a tangent vector along the curve and changes as we continue along the surface. The default is (0,0,1,0), but we can compute a better approximation to this tangent vector by taking a tiny step in the a direction, using Newton's method to converge to a fixed point for these new parameters, (a,b)=(0+epsilon, .2), and look at the vector to this new point in the four-dimensional space from the base point (1,0,0,.2). Do this using "Get from|Newton's method" for tan1. Select "YES" for the question. You should get tan1 about (0, -.98, .19, 0). Repeating this Newton's method may get successively better approximations to the tangent vector.

    Now you are ready to start the curve continuation. Change the "Continue from:" toggle to "Base Point" and select "Go". Zoom in on the points plotted: the 1st window should have 11 +'s, and the 2nd window 11 points (the base point + 10 continuation points. On the "Starting Point Panel" will be updated versions of the Guess, Current Pt., and Tan1 vectors. Check to see that these vectors are consistent with your pictures. The "Continue from:" toggle should have changed automatically to "Current Point". Select "Go" again to compute 10 more points. Continuation is going so nicely, that we will try to take bigger steps from here: change the "Pseudo arc length step size" from .01 to .05. Select "Go" several more times. After about 50 total iterates, the projection of this curve to the parmeter plane (2nd window) turns around and heads backto the left. The projection to the phase plane (1st window) continues around in a circle. After several more Go's (about 140 iterates total) both the projections to the phase and parameter planes return close to their base point values. If you wish to save this computation (locally) for future use, you may copy the points from Data set 0 (where points are automatically saved) to another data set using the "Save in data set #" button. This is the same as was done on the Iterate panel above.

    Exercise: Try to do a similar continuation along the period-2 surface. Set the "Resonance Period" on the "Starting Point Panel" to 2; Guess (x,y,a,b)=(.9,0,3.14,.2). Newton's method (switch to 2 fixed vectors method) should converge to a period-2 point near (1,0,Pi,.2). The execution window will list both points on the period-two orbit as well as the eigenvalues of the second iterate for stability information. Use this as the base point for your continuation. You should sweep out the unit circle in the phase plane, and a line segment in the parameter plane. By zooming in on the parameter plane projection (and possible clearing the screen and/or changing the plotting color) you may be able to see that the line segment is traversed back and forth twice as the circle in the plhase plane is traversed once.

    Harder exercise. Do the same thing for a slice through the a period three surface. Hints: Your starting "a" parameter should be near 2/3 Pi or 4/3 Pi, but the projections to the parameter plane are so thin that you may need to allow Newton's method to converge to an appropriate "a" value. Do this by changing the Newton's fixed vectors from (0,0,1,0) and (0,0,0,1) to (0,1,0,0) and (0,0,0,1). This fixes the "y" value (along with the "b" value) rather than the "a" value (along with the "b" value). (What "method" should be chosen for Newton's method?) If you follow very carefully, you will see that the line in the parameter space is traced out in three complete back and forth cycles while the phase variables travel once around the unit circle.
  15. Surfaces of fixed points in families (with at least two parameters) of maps.

    We now turn to computing patches of surfaces of period-q points in two-parameter families. We will attempt to continue a base periodic point to a surface of periodic points. For the Arnold circle map family, it helps to know that the periodic points (for all periods) can be parametrized (surface parameters, not map parameters) by the angle of the point in the phase plane and the second map parameter, b. We will label periodic points by their rotation number - essentially the average proportion of the way around a circle an orbit travels per iterate - rather than just by period. A period-q point will have rotation number p/q for some p. We will start with fixed points with rotation number 0/1. First find a base point for the surface continuation, as you did for the curve continuation above. The point (x,y,a,b)=(1,0,0,0) works. Select the `Surface Continuation' tab from the Options Menu. Select as surface parameters "Arg (x)" for u, and "Param 2" for v. Select "Process u,v". This checks to see whether this combination is handled by the software. Under "Wrap?" select "Yes" for the u parameter and "No" for the v parameter. (The angular coordinate wraps around to where it started.) Select "Default Start,End,Grid". This selects from 1 to 2Pi for the u surface parameter, and 0 to 1 for the v parameter; 30 points will be computed for each of 10 values of Param2 (b). Clear the top viewport. Select "Go" and "OK". The continuation should compute 300 points on the "0/1" fixed-point surface. Each "line" of 30 points should project to go once around the unit circle in the phase plane, and one back and forth cycle on a horizontal line segment in the paramter plane. If you zoom out in the parameter plane, you should see a triangular region swept out.

    Exercise: Compute 300 points on the 1/2 surface (period-2 points, base point (1,0,Pi,0) - see the Hint at the end of the Curve continuation section above for suggestions on how to converge to this point) and the 1/3 surface. The respective triangular regions should be much thinner than the region for the fixed points.
  16. Bifurcation points in families (with at least one parameter) of maps.

    We will compute a saddle-node bifurcation potint which turns out to be on the right hand boundary of the triangular fixed-point region. Return to the curve continuation procedure that we did above for the fixed-point region for the curve at b=0.2. You will need to recompute the base point and tangent vector for the curve. If your tangent vector has a negative value for its third component, negate it using "Get from...|negated". On the `Curve Continuation' form, "Go" from the Base Point. Depending on what your "Pseudo arc length step size" was, you should have computed a small curve of fixed points which in the parameter space is heading to the right. Look in the execution window to see the eigenvalues of the last point (the 10th?) you just computed. Change the "# of points to compute:" to 1 so you can see how the eigenvalues of the succesive fixed points change. One of them should stay at about .36, while the other should be decreasing toward 1. (These fixed points are saddles.) A saddle-node bifurcation occurs when one of the eigenvalues is one. Keep continuing until the fixed point you found has an eigenvalue within .05 of 1. This will be our initial guess for Newton's method. Before we try to converge to the saddle-node point, however, we need to change the first Tangent vector because convergence is perpendicular to it, and it currently points along the curve of fixed points we were just computing, not along the tangent to the curve of saddle-nodes. (If this doesn't make sense this point, continue on anyway.) Change the vector to (0,0,0,1) so that the b parameter stays at 0.2. Then use the "Get from...|Newton's method|saddle-node" to compute a new base point. It should be: (0,-1,.2,.2).
  17. Curves of bifurcation points in families (with at least two parameters) of maps.

    We will now continue the saddle-node point we just found to a whole curve of saddle-node bifurcation points. This curve will turn out to project to the right hand boundary of the triangular fixed point region. First use "Get from...|Newton's method|saddle-node" to converge to a better first Res surf tan vector. Change the method on the `Curve Continuation' form to "s", and "Go" from the base point. The continued curve should project to the side of the triangle in the parameter plane. Succesive points all project to the same point in the phase plane ((x,y)=0,-1)), so the view in the top viewport will not be so interesting. If you "Go" from the Current Point several more times, the curve will eventully continue beyond the b=1 height which was the last curve you computed in the Surfaces of Fixed Points section above.

    Exercise: Compute the period-2 and period-3 saddle node curves which are the boundaries of the 1/2 and 1/3 triangular regions you computed in the Surfaces of Fixed Points section above.

    Exercise: Compute the saddle-node curves which are the boundaries for the 1/1, 1/2, 1/3,... regions for the periodically forces oscillator caricature. The small forcing amplitude portion (a < .1 or so) should be very similar to the regions you computed for the "Circle maps ...". But the continuation of the curves to higher forcing amplitude should be quite different. Among other things, the periodic points are no longer restricted to the unit circle, so the projections of the curves to the phase space are much more interesting. The unit circle is, however, the attracting invariant circle at a=0. NOTE: The first parameter is a rotation number, so it differs from the Circle maps formulas by a factor of 2PI. A base point for the 1/2 region, for example is at (1,0,.5,0) rather than at (1,0,Pi,0) as it was for the Circle maps.

    Happy computing.



    This page is maintained by Bruce Peckham (bpeckham@d.umn.edu) and was last modified on Tuesday, 07-Jun-2011 17:46:17 CDT.