Like many others, I was intrigued when I first saw pictures of Julia
sets
and Mandelbrod sets, and I had lots of fun generating them on a
computer.
But does this have anything to do with physics? Is there a dynamic
system
whose behavior is modeled by the startlingly simple equation that so
surprisingly
generates all those pretty pictures:
z -> z^2 + c
To get a continuous time evolution, we need the “Nth
iterative root” of this map, a map f(z), such that:
z->f(z)->f2(z)->f3(z)-> ...
->fN(z) = z^2 + c
For large N, we would start to get something like a dynamic system in
continuous time.
Taking the Nth iterative root of a function is apparently a difficult
subject.
I’ll just list a few cases where the answer is simple.
The map
z-> z + c
has as Nth root
z-> z+c/N
The map
z-> az
has as Nth root
z-> (a^(1/N)) z
Note that already, we come across multi-valuedness: there are N Nth
roots
of a complex number. We will come back to multi-valuedness later.
Mobius transformations
:
z-> (az+b)/(cz+d)
form a group, and they are a representation of the group of 2X2 matrices
( a b )
( c d )
So taking the Nth root of this matrix, will produce coefficients for an
Nth root Mobius transformation.
Actually, finding a group of matrices which have the same group
structure
as functions under composition, is an interesting approach. An online
article
on this is by
Aldrovandi and Freitas Consider a non-linear dynamical
system with 1 variable:
dz/dt = f(z)
Expand f(z) into a Taylor polynomial:
f(z) = a0z^0 + a1z^1 + a2z^2 + ....
Using some fairly easy differentiation rules, we can write this in a
matrix form:
In a slightly modified form this matrix is called the Bell matrix of
the function f.
It turns out that Bell matrices form a group, and that compositions of
functions
correspond to multiplications of their Bell matrices and vice versa.
So all we need to do is find the Nth root of the Bell matrix, and we
will have the required Nth iterative root!
The problem is, that to truncate the infinite Bell matrix into a finite
one,
we need the higher columns and rows to get progressively less
important.
But in our case, they don’t.
At this point, I found the web site of Markus
Mueller
. Apparently, he had succeeded in making continuous iterations of the
real
case (Verhulst dynamics). He has some nice pictures of it on his web
page,
and he was kind enough to explain his method to me.
First, he reverse-iterates a point a number of times by using the
inverse iteration: z->sqrt(z-c). It turns out the reverse
iteration has
an attractive fixed point (z0). Near this fixed point, it becomes
increasingly
well approximated by linear dynamics:
(z-z0) -> lambda * (z-z0)
So near this point, we can find continuous iterates. The nice idea that
Markus
Mueller had was to then simply forward iterate back to the original
point,
using “ordinary” iteration.
Because Markus Mueller uses real numbers, the multi-valuedness of the
square
roots and the Nth roots of lambda are not so worrying. Each choice of
either
the positive square root or the negative square root leads to a
different
fixed point. We choose a combination with a small real-valued Nth root
of
lambda, since that’s the only one that will give smooth
real-valued continuous
iterates.
This method appears to work quite well numerically.
However, the time evolution generated in this way apparently cannot be
that
of a dynamical system in 1 variable. This can be seen by the fact that
for
example it crosses the line z=0 may times in time, but each time
follows
a different trajectory afterwards: The value of z(t) itself does not
define
a state from which z(t+dt) is uniquely determined.
I decided to try the method on complex numbers instead of just reals.
After
all, it is the complex numbers which give the nice Julia pictures.
Again,
we run into a multi-valuedness problem. To produce some pictures, I
initially
just ignored the multi-value problem, by simply choosing roots. Again,
the
method works numerically, and soon I was having Lissajous-like curves
on
my screen, that winded through the complex plane. But unfortunately,
there
were usually self intersections. These intersections are bad, because
they
means that we do not have a dynamical system uniquely defined by z(t).
After some thought, I realized that he self-intersections were in fact
linked
to the multi-valuedness: If all maps and their inverses the
story were
single-valued, then we should not get self intersections.
There is a way to get rid of multi-valuedness: Use a Riemann surface!
In
our case, we need a Riemann surface that I will call
“unwrapped-C”. It is
basically the Riemann surface of the complex logarithm.
In unwrapped-C, each number (u) can be written as 2 real numbers
u=(R,theta).
These are just polar coordinates of the complex plane, except that
theta
is no longer limited to a 2pi interval.
To multiply in unwrapped-C, we use
u1*u2 = (R1*R2,theta1+theta2)
This is the same as in ordinary C, but we retain the extra multiples of
2pi.
There is now a unique Nth root, or pth power:
u1^p = (R1^p, p*theta)
The tricky part is now to add a constant (c). On the ordinary complex
plane,
adding a constant is just a translation. If we construct the Riemann
surface
of unwrapped-C, we make a number of copies of C, cut them open along a
line
from infinity to the origin, and the glue them together like
multi-story
spiraling parking garage. On this surface, we can do a translation by a
constant
(c) just as in C. But look at the line extending from –c to
the origin. If
we take a small region that contains part of this line, and translate
it
by c, we see that the small region gets sliced in 2: each half ending
in
a different floor of the parking garage.
We will just accept the fact there is a discontinuity in this map, and
define
z->z+c as a translation in the local copy of C within
unwrapped-C.
OK, so we now have a map z->z^2+c whose inverse is single
valued, at the cost of a discontinuity. So lets make pictures!
The pictures I made use a coordinate system in which the horizontal
axis is theta, and the vertical axis is log(R). If we draw a Julia set
on
it, we will get a periodic wall paper of deformed ordinary Julia sets.
Since continuous iterations will involve back-iterating to the fixed
point, I thought we might as well start near the fixed point. The fixed
points are small red dots. Around the fixed point, I make a small
circle of starting M points.
I then iterate these points N times, using the iterative Nth root of a
“normal” iteration. These N points are joined in a
line. The M lines of N points are then normally iterated. On each line,
I also put 1 small rectangle, so that you can see what a
“normal” iteration does: it jumps from rectangle to
rectangle along a curve.
The blue lines can be interpreted as time evolutions of the stateof the
system in continuous time.
I also insert red lines going from –c to the origin. If a
curve hits this line, it will “jump”.
So what do we get?
The first example is c=0, so z-> z^2.
(Click to enlarge)
This case can also be solved exactly. There is a fixed point at z=1,
and
a fixed point at z=0. The point z=0 is grotesquely deformed at
-infinity (of the vertical scale),
because of the use of logarithm. The point z=1 is unstable, the state
will
evolve away from it after an infinitely small perturbation. In our
coordinates,
the dynamics looks like an explosion: The system goes away from z=1 at
ever
increasing rate. That is, using logarithmic scale. If we used linear
scale,
we would see that the lines in the black part of the Julia picture all
move to z=0.
Next we try to slightly move c. We use c=-0.2.
(Click to enlarge)
We again get a seemingly well behaved picture, at least for a certain
region
in the plane. One thing that was surprising to me, is that the border
between
the interior and exterior is not a separatrix. This might have been a
problem,
because the border is an infinitely long line (like the coast of
Britain).
But we get orbits that cross the border, and points in the exterior
are supposed to go to infinity, while those on the interior attract to
a fixed
point! The clever way that the system fulfills both, is by becoming an
oscillation
of infinite amplitude, but sampled at a certain sample rate, can appear
to
be always finite at each snapshot!! In other words, an infinite
oscillation
that looks finite when viewed through a stroboscope. Check that
rectangles
on lines that cross the border are either all outside or all inside the
interior.
Next is an example with c = -1.
(Click to enlarge)
This time, we are getting some trouble from the red lines
attached to copies
of –c. But there are still quite large regions with smooth
dynamics, even
some regions that appear to stay smooth for all time. Not only the
lines
0-(-c) are discontinuous, also image of those lines under
z->z^2+c. So
the discontinuities get worse and worse, although certain regions
appear to be safe from them.
Finally an example with c = 0.012+i0.66
(Click to enlarge)
This value of c lies outside the Mandelbrod set. We therefore know
that images of the point c will end up in infinity. So images of the
discontinuities
across our red lines will presumably also end up at infinity. It seems
that in this case, there may be no safe place from discontinuities.
It seems that the dynamical systems we find, are pretty weird. An
extraordinary
properly is "stroboscopy", infinite oscillation that appears finite
when
viewed through a stroboscope.
It is possible that a better picture of the dynamics can be found by
finding a more suitable Riemann surface to plot it on.