Prof.Chip Ross

 A Quick Introduction to OrbitsXP's Capabilities

The OrbitsXP program is a tool for studying how orbits of various functions behave. Throughout all documentation, we usually simply refer to OrbitsXP as Orbits .

In particular, OrbitsXP is designed to draw beautiful, highly detailed graphs of orbit and bifurcation diagrams, as well as display orbits of points in various useful ways. (Note the images presented in this help file are tiny (eg, 300x300 pixel) JPEG'd images and don't represent the quality Orbits is capable of. Orbits can draw images up to 3600x3600 pixels , which look great when printed).

  • Bifurcation Diagrams
Bifurcation diagram in color | Use of color in bifurcation diagrams...Here points of periods 1 to 4 for fc(x) = x2 + c are plotted according to the slope of the nth iterate. Red and blue for slopes bigger than 1 or less than -1 (resp) indicate repelling periodic points. Orange and yellow for slopes from 0 to 1 or -1 to 0 (resp) show attracting cycles.
Bifurcation diagram in color | Another use of color in bifurcation diagrams...Here points of periods 1 to 4 are plotted according to the prime (lowest) period of the point. Yellow, green, blue, red here show points of periods 1,2,3 and 4, respectively. Plotting on black backgrounds brings out the colors on website or slide presentations; white backgrounds are for printed diagrams. Given N, Orbits plots all points of periods 1 through N, points whose periods divide N, or just points whose prime (ie, lowest) period is N.
detailed bifurcation | Here is a somewhat more detailed bifurcation diagram, showing points up to period 8.
Bifurcation diagram in color Points of a single prime period can be plotted. Only points of prime (lowest) period 8 are shown here. It's easy to make "zooms" with the cursor box; drag it to the desired shape and location using the mouse and precise location and shape via the arrow keys. The picture below this one is the resulting "zoom".

You can climb back out of zooms as each level's parameters are remembered. Cursor box locations are also recalled making it possible to trace back down into a zoom as well.

Bifurcation diagram in color The "+" is a precision cursor that can be dragged around by mouse and then put into precise location with the arrow keys. (The "x" is the usual windows cursor). [They don't look too good in these jpeg reductions, sorry!]

This whole picture is the zoom into the white "cursor box" rectangle of the picture above. Orbits pictures can be drawn in any ratio; here the height is twice the width to match the zoom. There's a new zoom cursor box in this picture as well, and the resulting zoom is below.

Orbits draws pictures in sizes from 150x150 pixels to over 3600x3600 - much too big to fit on a computer screen, but useful for very detailed printing.

Bifurcation diagram in color | Here's the zoom from the picture above, only we've plotted all points up to period 8. The prime (lowest) periods of the points can be automatically labeled by Orbits as shown here. Two period doubling bifurcations are thus illustrated: one "3-to-6". The other is harder to see...
Bifurcation diagram in color | This is the same picture as above, only with a different way of labeling periods.

  • Orbit Diagrams
Orbit diagram in color | Of course, Orbits can draw the usual orbit diagram. It can also plot the actual orbits of points on either the orbit or bifurcation diagrams, as dots or a "phase portrait". Here we plot the orbit of a point near the repelling fixed point at the top of the image. It moves away (down) and lands near the other repelling fixed point, then becomes attracted to the two-cycle.
Orbit diagram in color | Here's a "density plot": pixels are plotted brighter according to how many times the points they represent have been "hit" by an orbit... We've also drawn another phase portrait showing chaotic behavior at c=-2. This orbit starts at a value slightly less than 2. The left/right pattern of phase portraits is user assignable; here they're all on the left, whereas the pattern in the picture above alternates left/right/left/right...

  • Plots of f(x) and its Iterates

animation In an auxiliary window, Orbits animates in real time the graph of fcN(x) for the value of C under the main window's cursor as the cursor is moved around. The animation is utterly smooth; much better than the .gif animation shown here, but this animation gives the idea.

This .gif animation simulates how the graph of the fourth iterate of x^2+C evolves as the cursor across the screen from c=0.4 to -3. This animation has some 35 frames; the actual animations would have hundreds.

functions | Another of Orbits 's tasks is to plot functions y=fC(x) and their iterates in the usual way, with the horizontal and vertical axes representing x and y. In this figure the first four iterates of f-1.76(x)=x^2-1.76 are graphed. "Fat dots" can be used to mark the iterates, eg four dots on a curve mark it as f ^4. Here you can see where the points of prime period 2 are, for example, by observing where f ^2 and f ^4 , but not f itself, intersect on the line y=x (near the points (0.5, 0.5) and (-1.5, -1.5)). "Shallow" slopes at three crossings of f ^3 also suggest that this function has an attracting 3-cycle.
functions | Here Orbits has plotted each iterate in a different color, matching those of the second bifurcation diagram at the top of the page.

functions | Orbits can draw "cobweb" diagrams (left-hand picture), even though I don't think they're too useful - two lines (a vertical and horizontal) for each iterate confuse me. I like phase portraits much better. On the right, a short phase-portrait animation showing the orbit of -1.615 being attracted to the attracting three cycle which x2-1.76 has. Not so clear that the cobweb diagram shows the same thing. | animation
functions | On the left, a function is undergoing a period doubling bifurcation, from period 4 (in fuschia) to period 8 (in yellow). Has the bifurcation occured? It's hard to tell if the period 8 function has crossed y=x two more times. Orbits can exaggerate the distance from a function to y=x. The right-hand image shows the result in orange and we can see (and easily find the coordinates of) the new points of prime period 8. | functions

  • Any Reasonable Function

functions | Orbits allows you to type in a function of your choice at run time. Here for example we've asked for a plot of the bifurcation diagram (for low periods) for fc(x) = (x2 + c) / (2.5 + (sin X)2).
functions | Here is a zoom into the above image. There are many interesting features, especially the "closed loops".

  • Mandelbrot Set and Julia Sets

mandelbrot set | Orbits can draw the Mandelbrot set and make "zooms". This part of the program is still under development - there are many things I plan to add. This picture shows the orbit of 0 for the c value under the cursor. Such orbits are plotted in real time as the cursor is dragged around.
m-set | A typical zoom.
julia sets | Also under development is Orbits 's capability to draw filled Julia sets. Level sets of points "escaping to infinity" can be colored one way, and those for points attracted to an attracting cycle a different way. Here is a Julia set with an attracting 7-cycle. There are many things to add to Orbits here also, eg, two different ways to locate repelling periodic points.
j-sets | Another Julia set, also with an attracting 7-cycle.

  • Important Information

Assignable parameters in Orbits include: left, right, top and bottom of screen, window width and height, plotting dot size, inter-pixel search/plot factors in both horizontal and vertical directions. Also, "tick-mark" spacing on each axis, font size used for labeling axes.

Orbits's pictures are saved as bitmap files. These can be brought into any standard graphics program for labeling and resaving in any standard format. As it saves a bitmap file, Orbits also makes another file listing all the parameters' values for later reference. Orbits also reads in text files of parameter values for ease in setting up specific diagrams.

Any reasonable one-parameter family of functions can be etered at run time in the easy-to-use "Post fix notation" format, whereby two operands are given, followed by the operator: eg X+C becomes X C +; X*X+C becomes X X * C +; arctan(X^2+C)/sin(X) becomes X 2 ^ C + arctan X sin /, etc. In addition to the parameter C represented by the horizontal axis in bifurcation and orbit diagrams, four other constants A,B,D and E can be built into the functions.

Return to Chip's Home Page
© 2005 by Chip Ross
Associate Professor of Mathematics
Bates College
Lewiston, ME 04240


orbit02

Main Screen Overview Orbits

Orbits uses most of the screen to present information in a large graphics window. Various controls for choosing what is to be shown and how to show it are available in a series of "control pages" on the left side of the screen. General controls appear to the right of the control pages. The way to use this program is to set up various parameters on the appropriate control pages, and then draw the resulting picture. When you start Orbits, it is ready to draw a bifurcation diagram "out of the box"; just press the green "Full Screen" button.


Intro 02 Conventions

Orbits Conventions

Entering Values into Orbits

In general, to change the value of some parameter in Orbits, and the program isn't currently at work making a drawing, you first press the key corresponding to that parameter. A small dialog box opens. It presents you with the current value of the parameter, and you can enter a new one in the text-box or cancel the process. Any parameter that can be changed in Orbits is colored blue. Note Orbits is case-sensitive; e.g. h and H represent different parameters.

For example, when Orbits begins, the upper left corner of the screen looks like:

One parameter Orbits uses is N, for the number of iterations to use. It's currently set to 4; currently Orbits is ready to plot a bifurcation diagram showing points up to period 4. To change this number to, say, 8, press the capital "N" key on the keyboard. Orbits responds with:

Type the number 8 into the box and press "OK", and the value "8" appears:

Alternatively...

Some parameters such as N are supplied with buttons marked "<" and ">". A press of these buttons lowers or raises the value of N by one.

Lots of Parameters Orbits has many parameters. Most all of them are supplied with "tool tips", helpful descriptions that appear when you rest the mouse over them. For example:


Intro 02 Conventions

Main Drawing Window and Cursors

Orbits' Main Drawing Window

Orbits has two drawing windows. The big one, the "Main Window", has three cursors (See image below):

  1. The regular arrow-shaped Windows cursor changes to an "X" shape when over the Main Window; it moves with the mouse, and its coordinates are given in the "Mouse Coordinates" box above the Main Window.

  2. A "Precision Cursor". Shaped "+", this can be moved two ways:
    1. Mouse Control. Drag with the mouse by holding holding the Alt-key and the left mouse button down.
    2. Arrow Key Control (Precision). This is for precise movement. Move in tiny regular increments by holding the Alt-key and pressing one of the four arrow keys.
    Its coordinates are given in the "+" Coordinates box above the Main Window. It is used for superimposing orbits as phase portraits on bifurcation/orbit diagrams, for example.

  3. A "Cursor Box", which we refer to as the Box. This can be moved in two ways:
    1. Mouse Control (Gross) Movement. Use the mouse to bring the "X" cursor somewhere inside the box. Hold the Shift-key and the left mouse button down; drag the Box to a new location. It "snaps to" (auto-aligns with) the coordinate gridlines (unless the box for this is unchecked).
    2. Arrow Control (Precision) Movement. Again use the mouse to bring the "X" cursor somewhere inside the box. Hold the Shift-key and use the arrow keys for precise Cursor Box placement.
    The Cursor Box can also be resized in two ways:
    1. Mouse Control (Gross) ReSize. Use the mouse to bring the "X" cursor near one of the corners. Hold the left mouse button down; drag this corner to a new location. It "snaps to" (auto-aligns with) the coordinate gridlines (unless the box for this is unchecked).
    2. Arrow Control (Precision) ReSize. Again use the mouse to bring the "X" cursor near a Box corner. Just press the arrow keys to precisely move that Box corner.
    The coordinates of the upper-left and lower-right hand corner of the Box are given in two boxes above the Main Window, as is the Box's size. Two primary uses of the Box:
    • A drawing can be made in the whole Main Window, or just inside the Box (to save time or explore)
    • The Box is used to make "zooms".


Orbits' Control Pages

Orbits' has several Control Pages. One of these is always in view on the left side of the screen, with the blue Bifurcation Diagram Control Page in view at start-up. This section of the help file explains what these Control Pages do. Control Pages are individually selected by pressing the appropriate command buttons on the side of the screen.

Detailed help for each Control Page is given. Here's a quick summary.


Intro 04 Drawing Bifurcation Diagrams

Using Orbits to Draw Bifurcation Diagrams

WARNING! Know the difference between bifurcation diagrams and orbit diagrams! When Orbits starts up, it is ready to draw the bifurcation diagram for fc(x) = x2 + c for points of periods 1 through 4. Attracting periodic points will be shown in yellow (for slopes from 0 to 1) and light blue (for slopes from -1 to 0); repelling periodic points will appear red (for slopes bigger than 1) and blue (for slopes less than 1). Press the green "Full Screen" button (see image below) and you should get the image shown in our example: (This is a low resolution JPG sample; your picture should look much nicer).
The left-hand picture appears when the "Full Screen" Button is pressed

The control page for drawing Bifurcation Diagrams is in view by default. Here is a description of the controls.


Intro 05 Drawing Orbit Diagrams

Using Orbits to Draw Orbit Diagrams

WARNING! Know the difference between bifurcation diagrams and orbit diagrams! When Orbits starts up, it is ready to draw a bifurcation diagram for fc(x) = x2 + c. To have Orbits draw an orbit diagram, first select the Control Page for Orbit Diagrams:

Press the green "Full Screen" button (see image below) and you should get the image shown in our example: (This is a low resolution JPG sample; your picture should look much nicer).
The left-hand picture appears when the "Full Screen" Button is pressed

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for Orbit Diagrams press the button labeled "orb D":

Here is a description of the controls.


Intro 06 Main Drawing Window Controls

Orbits' Main Drawing Window Controls

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for the Main Drawing Window press the button labeled "win":

Here is a description of the controls.


Intro 07 Function and Constants Controls

Orbits' Function and Constants Controls

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for the Functions & Constants press the button labeled "fns":

Here is a description of the controls.


Intro 07 Cobweb and Phase Portrait Controls

Orbits' Cobweb and Phase Portrait Controls

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for Cobweb Diagrams and Phase Portraits press the button labeled "orbs":

Here is a description of how to make Cobweb and Phase Portraits. To see the actual numbers produced in plotting orbits, click the "Show Stats" command button on Orbits' main screen.


Intro 10 Find Good Stuff Control Page

Finding Good Stuff with Orbits'

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for "Find Good Stuff", press the button labeled "find":

Here is a description of the controls.


Intro 09 Option Control Page

Orbits' Options Control Page

The Control Page for drawing Bifurcation Diagrams is in view by default when Orbits begins. To select the Control Page for setting various Options press the button labeled "opts":

Some of Orbits' runtime options are set here.


Orbits' Main Screen Commands

Orbits' has several Main Screen Commands. This section of the help file explains what these do. Detailed help for these are given. Here's a quick summary.


Clearing the Screen, Saving Pictures, Reading Parameter Files in Orbits


Making Zooms with

Making Zooms with Orbits


Two Windows in Orbits


Big Pictures and

Big Pictures and Orbits


Miscellaneous

Important miscellaneous items are discussed here:

  • Postfix Notation Explaining why for example, instead of A+B*C, you write A B C * +.
  • Serial Numbers Get one so I can keep in touch, and you can save your pictures.
  • Help File Omission There's so much to be done!


Prof.Chip Ross

 Entering Functions and Constants in OrbitsXP Using Post-Fix Notation

To make it easier on me, the programmer, I decided that entering functions in Orbits would make use of "post-fix" notation. User-chosen functions can be entered by pressing F5 to bring up the "Select Function" Dialog Box. "Critical value" functions (see the "Orbit Diagram Control Page") are also entered in this way, and - this is cool - so can any parameter (this is discussed at the very bottom of this page).

We are accustomed to writing functions (or, expressions, really) using "in-fix" notation, in which an operator appears between its two operands, as in x+2. In-fix notation requires using conventions and parenthesis to "control" which operations are done first. For example, in A*(B+C^D), convention dictates the exponentiation be done first, then the parenthesis tell us to perform addition next and the multiplication is done last, even though it's the first operation you see reading left to right.

In "Post-Fix" notation, an operator follows its two operands. An expression is evaluated left-to-right, and operations are performed in the order they appear; parenthesis are not used at all. For example, "10 - 3 * 4 " in in-fix becomes "10 3 4 * - " in post-fix. The post-fix expression is evaluated as follows: 10 is encountered, and put on a previously empty "stack". 3 is encountered next, and it goes on the stack top. 4 is encountered, and it now become the stack top. Finally a "binary" operator " * " is encountered. The top two items on the stack are "popped" (removed) from the stack and multiplied in the order 3*4 (in-fix) and the result, 12, is put on the stack. Next, the operator " - " is found, and again the top two items are popped from the stack, and subtracted in the order 10-12. The result, -2, is returned to the top of the stack, and represents the value of the expression.

Perhaps its best to give some examples. Note when converted to post-fix, the operands appear in the same order relative to one another as in the original in-fix expression. (The first three functions are those "built-in" to Orbits. They will perform much faster than their user-entered equivalents as they're "hardwired" into the program).

In-Fix Expression | Post-Fix Equivalent | Notes
X * X + C | X X * C +
C * X * (1 - X) | C X * 1 X - *
A * (B + C ^ D) | A B C D ^ + *
C * sin (X) | C X sin * | "sin" is a unary operator: it has one operand, X. Since this is post-fix notation, the operator sin comes after its operand in the expression.
sqrt (sin (-C + A^2)) | C n A 2 ^ + sin sqrt | In the in-fix expression, the "-" is not subtraction, but rather, another unary operator which negates its single operand. In post-fix notation we use an "n" (or, equivalently, "neg") to represent this. Note again the "n" operator follows its operand in the post-fix expression.

Post-fix term used by Orbits | Meaning
A, B, C, D, E | These are five constants that can be built into any expression. Note that "C" is the C in a one-parameter family of functions; in particular it is changed dynamically by Orbits in creating bifurcation and orbit diagrams. Once such a plot is made, however, the value of "C" reverts back to whatever value it was set to on the Functions and Constants Control Page. The other four constants simply have static values.
X | The usual variable. You can use "little x" if you prefer; it means the same thing. (Orbits is case sensitive everywhere else except for entering your own functions. We recommend sticking to the capitals and smalls as illustrated on this page, however).
+, -, *, /, ^ | Standard binary operators. Note " ^ " uses Visual Basic's built-in " ^ " operator to find A^B.
pi | Orbits accepts regular numbers typed into an expression (eg, 1.32 or 100). Orbits also recognizes "pi" and will use 3.14159... in its place. Orbits does not know e=2.7182...; if you enter "e" in an expression Orbits thinks you mean the constant "E" discussed above. This is because Orbits is not case sensitive when entering functions. Use "1 exp". Note if you need a negative number such as -5.6, it must be entered as "5.6 n". (See the "n, neg" entry below. A "-" is interpreted as the subtraction binary operator by Orbits.)
n, neg | This special operator negates its operand. The in-fix expression "-5 * -4" is rendered as "5 n 4 n * " in post-fix, for example, whereas "2 - 5 * -4" would be "2 5 4 n * - ". "n" and "neg" are the same; "neg" is provided for clarity.
sin, cos, tan, atan, acos | Standard trig functions, including arc-tangent and arc-cosine functions. Computing arc-tangent uses Visual Basic's built in function "Atn"; arc-cos(X) is then computed as Atn( -X / sqrt(1-X * X )) + pi/2. Remember they appear after their operand in post-fix expressions; for example the in-fix expression sin(cos(X)) is written "x cos sin" in post-fix.
exp, sqrt, sqr, abs | These find e-to-the-, square root of, square of, and absolute value of X, respectively.

Domains and Errors. When Orbits makes any calculations, they're first check for "validity": Orbits will not take the square root of a negative number, divide by zero, or find the arc-cosine of a number greater than 1 for example. When such a error occurs, the current calculation stops and Orbits moves onto the next one. The graph of sqrt(sin(X)) would simply have gaps in it at points not in the domain, but the process of plotting would not halt as soon as the first gap is found...Orbits also stops the current calculation if outputs get too "big". Luckily, these checks keep Orbits from crashing for the most part.

Entering Parameters using Post-fix Notation. Parameter values can be entered using post-fix notation. For example, to enter a value of "the square root of pi over 2" for C, first press capital-C and you'll be prompted to enter C. You can type "# pi 2 / sqrt" (no quotes) and Orbits will compute this and store the corresponding numerical value 1.25331414.


Prof.Chip Ross

 OrbitsXP Serial Numbers

As a way of keeping in contact with people who use this program, I am using a rudimentary Serial Number scheme. There's no fee to obtain a Serial Number; just email me for one at sross@bates.edu - include your name email and school. I will send you a number and new copy of Orbits which "knows" that number.

Orbits looks for the Serial Number in a file called "SerialNumber.txt" which needs to be in the same folder as OrbitsXP.exe.

If Orbits can't find this file, it is fully functional except the ability to save files & pictures is removed, and it prints its name on the main screen.


Prof.Chip Ross

 Plans for the OrbitsXP Help File

The Orbits Help File needs a lot of work. Eventually it needs:

  • A complete "Glossary" listing:
    • all program parameters (eg, X, the value the right side of the Main Drawing Window represents)
    • all Orbits jargon (eg, "Statistics Box")
    • all related mathematics definitions
  • A complete index (the current one was just for me to "see how to do it") with complete cross-referencing
  • Complete instructions for how to draw the Mandelbrot set and filled Julia sets and choose color schemes.
  • Thorough proofreading!
I'd appreciate any suggestions. Send them to sross@bates.edu.


Definition: Bifurcation Diagram

Bifurcation Diagram

WARNING! What many people call the "bifurcation diagram" is more appropriately called the "orbit diagram". Our definition of bifurcation diagram is that of Devaney, Strogatz, et al. Beware of books and websites that define bifurcation diagram as we do, but then illustrate it using the orbit diagram. The two diagrams are quite different!

For each c value on the horizontal axis, the Bifurcation Diagram shows on the vertical axis the locations of periodic points for members of a family of functions such as fc(x)=x2+c.

Points through period 4 for fc(x) = x2 + c are plotted in the figure below. They are colored blue if on repelling cycles and red if on attracting cycles. The program's automatic period labeling feature has supplied the periods.

As an example, let c=-1.7. Then f-1.7 (x) = x2 - 1.7 has a point q=-1.562 with prime period 4. The next three members of the orbit of this point are r= 0.740,s=-1.153 , and t=-0.372 (all values rounded to 3 decimal places; the actual numbers are irrational) and they are marked with big dots below. They are on a repelling cycle. It's easy to check that 2 is a repelling fixed point of x2 - 2 (see the magenta star), while 0 and -1 are on an attracting prime period two cycle for x2 - 1 (marked by the green stars).


Definition:

 For f(z)=z^2+C, the Julia set is the closure of the set of periodic repelling points.


Definition: Orbit

Fundamental Definitions

Orbit, Iterates. For a given function f, the orbit of a point p is the sequence of numbers
p, f(p), f(f(p)),...,.
The numbers in this list are called the iterates of p, and we speak of computing these values as "iterating the function".

We write iterates of p using exponents: f 3(p) means f(f(f(p))), for example, and it does not mean f(p) multiplied by itself three times.

Period. Such a point p is periodic with period N if the orbit repeats every N positions, ie, if f N(p) = p.

Prime Period, Fixed Point. If N is the smallest number for which f N(p) = p, we say p has prime period N. So if a point has prime period N, then it also has period 2N, 3N, 4N - any multiple of N. If N = 1, then f (p) = p, and we say p is a fixed point of f.

N-cycle. If p has prime period N, the N iterates of p make up the N-cycle to which p belongs.

Attracting Cycle. (Casual defn) An N-cycle p, f(p), f(f(p)),...,f N-1(p) is attracting if as sequences, orbits of points close to p converge to the orbit of p.

Repelling Cycle. (Casual defn) An N-cycle p, f(p), f(f(p)),...,f N-1(p) is repelling if as sequences, orbits of points close to p don't converge to the orbit of p.


Definition: Bifurcation Diagram

Orbit Diagram

WARNING! What many people call the "bifurcation diagram" is more appropriately called the "orbit diagram". Our definition of bifurcation diagram is that of Devaney, Strogatz, et al. Beware of books and websites that define bifurcation diagram as we do, but then illustrate it using the orbit diagram. The two diagrams are quite different!

For each c value on the horizontal axis, the Orbit Diagram shows on the vertical axis the long term behavior of the orbit of some point (usually a critical point) for members of a family of functions.

Below is the orbit diagram for fc(x) = x2+c. At each c value on the horizontal axis, the first 1200 members of the orbit of the critical number 0 were calculated, and then the next 150 members calculated and plotted . At c = -0.8 (say), after 1200 iterations, the orbit of 0 has been attracted to a 2-cycle, and we wound up plotting those two points 75 time each! But at c = -2, the orbit of 0 behaves chaotically, and we see 150 points scattered up and down the vertical line at c = -2.