Math
Home


A Doheny Page

A Bifurcation Example - A brief explanation




	We start out with a number x, and a function (formula)  applied
to the number. For example, suppose x is the number; then 2·x is a
function. If we start out with x = 1, then 2·1 = 2 when the function is
applied to 1. So applying the function to a given number means we merely
double the number (when the function is 2x).
Next, we can iterate a function. Using the above example, we
start with the number 1; the result of applying the function is 2. Now we
take 2 and apply the function; we get four. Iterating means we start with
a number, get another number when we apply the function, then apply
the function to the number we got. Do this over and over, and we get
successive iterations of a function on a number. The number that we
start with, 1 in this case, is called the seed value.
After successive iterations, we may settle into an "orbit"; that is,
we might apply the function to a number, and get 1. Then we apply it to 1,
and we get 2. Then to 2, and we get 3. Then, we apply the function to 3,
and we get 1. Well, if this happens, we'll be stuck in the sequence
1, 2, 3, 1, 2, 3, ... This would be an orbit of three numbers. What's
interesting about "chaotic" functions is that we'll be stuck in some small
orbit, and a small change, or "perturbation" of the function will result in an
orbit with lots of numbers - infinitely many, actually.
The gif of the chaotic function on the previous page is of the
function: f(x) = l · x · (1 - x)
where x is between 0 and 1, and l is between 0 and 4. The seed
value is x = .5.
A BASIC program to generate the bifurcation(written in QBASIC,
the Microsoft BASIC with DOS).

rem the first three lines set up the screen, and an array
rem is created to keep track of points in the same orbit.
dim a(500)
screen 12
window(0,0)-(4,1)
cls

rem the seed value is 1/2
x = .5

rem the seed value is iterated 50 times
for l = 0 to 4 step .002
y = x
for n = 1 to 50
y = l * y * (1 - y)
next n

rem the point is placed on the screen
pset (l , y)

rem the array (500 points, max) is started for the points within the orbit for the given value of l
a(1) = y
for m = 1 to 499
y = l * y * (1 - y)
for n = 1 to m
if abs(a(n) - y) < .001 then goto 20
pset (l,y)
next n
a(m + 1) = y
next m

20 next l


To return to the Dalton College Homepage, click icon.
Kevin R. Doheny (kdoheny@carpet.daltonstate.edu)