To Be Continued ...
Discrete Dynamical Systems Software
Bruce B. Peckham
TUTORIAL
Obtain or create an executable version of the software
See "Download" link above.
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.
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
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.
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.
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.
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.)
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).
Graphics Management.
- Keyboard options.
Some keyboard options are also available. The window affected is the
window in which the mouse resides when the key is pressed.
- C - Clears the viewport.
- [ - Zooms out (by factor of 1.25)
- ] - Zooms in (by factor of .8)
- R - resets to default scale and orientation
- P - Picture of active window. Saves an encapsulated postscript file:
tbc-win1.eps or tbc-win2.eps.
- x - Zooms out x coordinate only (Similar for y, z)
- X - Zooms in x coordinate only (Similar for Y, Z)
- Left mouse: Translates: Press, drag, release.
- Left Mouse Button and Ctrl key together: Rotates in 3D: Press, drag, release.
(Minimal functionality)
- Graphics tab options.
Several options are available for plotting (locally saved) data sets. Select
Graphics tab to see options.
Most commonly used are "Assign cycled colors to all Sets", and "Plot All Sets".
Try these two now.
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
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.)
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.
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.
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.
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).
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.