Re: Douady-Hubbard Potential




Adam Majewski wrote:
Hi Roger

Thx for your posts. Its so many informations. I need a few years to
study differential geometry to be able to discuss with you. (:-))
Can I ask different question.
I want to draw external rays of Mandelbrot set.
Can you show how to make pictures of rays like that on the page:
http://linas.org/art-gallery/escape/phase/phase.html

or tell me that "I need a few years to study differential geometry".
(:-))

Adam


Hello Adam

Same for me, it's impossible to me to follow him. I will try to help
you with more simple explanations, I find mathematithians sifficult to
understand. That's why I also found Linas' naming convention a bit
messy. For the Hubbard-Douady potential, you first need to know the
phi(c) function. We can still just give the forumla for the H-D
potential and don't care about that function, but you should if you
plan to understand what the potential and external rays are. Anyway,
for now, phi(c) is defined as

phi(c) = Zn ^ (.5^n)

for big enought "n" (and escape radious). "Zn" is the n-th iterate of
the initial point z0=0, and "^" menas power. Of course, Zn+1 = Zn^2 +
c. Its important to note that for C big enought (far from the
Mandelbrot set), phi(c) can be aproximated by c.

Basically this funcion phi(c) - called also the Bottcher coordinate
of c - transforms the outside of the Mandelbrot set into the outside of
the unit disk. It's a function that "morphs" the outside of the M set
into the outside of the disk, a kind of deformation. I think in
mathematics they call it an "holomorphic map", but from what I
understand from the papers on the subject of fractals, it seems to me
to mean just "smooth" map, with no holes, many-to-one points, and other
"ugly" deformations. Well.

Now, the H-D potential is a borrowed idea from the electrostatical
theory. Basically, the potential (also known as Green function) is

G(c) = log |phi(c)|

where the "| |" means absolute value (modulus), and the log() is the
natural logarithm (base e). Knowing the properties of the logarithms,
you can see that

G(c) = (log|Zn|) / (2^n)

I think this is a better definition than the one given by Linas. At
least, I find it more intuitive, and it's the one everybody uses. You
think on the M set as a kind of (vertically infinite) electrical
charge, and the potential function as the potential energy at any point
(the farther you are, the more cynetic energy you will have if you let
another charge to be attracted to M from that point). For a perfect
circle-shaped wire, the potential is radial and equal to log|z|. The
G(c) function is then defined as the potential that a point in the C
plane would have if we deformed the plane (and that point in it) such a
way that M becomes that perfect circle, that';s why G(c)=log|phi(c)|. I
guess you can imagine the situation.

You can derive some basic properties from the potential from the
definitions above:

. G(Zn+1) = G(Z)
. lim {z->inf, G(Zn) } = log |c|
. G(Z) = 0 in the interior of the Mandelbrot set
. G(Z) is armonic

This last one needs to know about derivatives to get it.

Before going into the gradient of this funcion and the external rays,
you can plot this potential to better understand how it looks like. Fot
that, you can directly plug the definition into your iteration loop of
the basic Mandelbrot plotter.

Just remember to make the maximun iterate cound big enough, and also
the bailout value (normally 2). You need these changes because the
definition of G(c) is for "n" aproaching its limit (infinite).

The problem with this aproach is that innacuracies can occur, and
you need huge amount of iterations. There is however another method to
calculate the potential. It's described in "The beauty of fractals",
and is derived from the definition above, by using the fact that Zn =
Zn-1^2 + c. The demonstration is a 5 lines of hand-writing, I can send
it to you by mail since I made it a few weeks ago :) The result is that

G(c) = log |c| + Sum{k=1,k=inf} (log |1+c/(zk^2)|) / (2^k)

(it's difficult to write a formula in text - have a look here to
"see" it: www.rgba.org/iq/trastero/potential/potential00.png)

Now, this formula converges quite fast (as you see, for big "c" it
converges to log|c| as expected). Actually, you don't need to make yor
escape radious big or use many iterations at all. It works almost
perfect even with the usual escape radious of 2 and very few iterations
- say 256.

The problem with this method is that it requires one division and
one logarithm per iteration, while the straightforward implementation
of the potential needs only one after the orbit is calculated. You can
try both.

You can also implement Linas' formula for the potential G(c)=2^(-m),
but I see a bit of banding when I do it, the best results (and more
accurate) are obtained with the log|c|+Sum... version.

I agree with Linas than the potential looks boring. But it's the
first step to understand the distance estimation formula and the
extenral rays. This is how it looks like

www.rgba.org/iq/trastero/potential/potential01.png

and this is the the picture for G(c) ^ (1/16)

www.rgba.org/iq/trastero/potential/potential02.png

Then, we can go for the gradient also. For that you need to know how
to manipulate derivatives in complex variables; I learned it recently.
Otherwise, by using normal derivatives, you have a lot longer formulas
- and it takes longer to do any demo - poor me. Using the complex
derivatives the result is the same, but more compact and elegant.

Anyway, I think it might be better better if I send you a mail for
the gradient and the distance estimation, or we will make a veeery long
post. Plus the fact that I'm still learning all this fascinating
stuff, so may be somebody else wants to add better explanations or
correct something in this potential introduction.

Inigo Quilez

.



Relevant Pages

  • Re: Why does the Mandelbrot set work?
    ... pixels according to how many iterations it takes to bailout. ... Mandelbrot set) was given the problem of iterating a formula like ... would be a series of colored concentric circles. ... the result is most astonishing and unexpected. ...
    (sci.math)
  • Re: Why does the Mandelbrot set work?
    ... The Mandelbrot set has always fascinated me for one ... pixels according to how many iterations it takes to ... the circle and that's it. ... result is most astonishing and unexpected. ...
    (sci.math)
  • Why does the Mandelbrot set work?
    ... pixels according to how many iterations it takes to bailout. ... Mandelbrot set) was given the problem of iterating a formula like ... would be a series of colored concentric circles. ... the result is most astonishing and unexpected. ...
    (sci.math)
  • Code Feedback Wanted (Generating more garbage)
    ... I've done a bit more hacking on my Lisp code for generating the ... "Numbers larger than this have escaped and are not part of the Mandelbrot Set") ... (loop for iterations below max-iterations ...
    (comp.lang.lisp)