M-set "auto-zoom" method

  • 2 Replies
  • 171 Views

0 Members and 1 Guest are viewing this topic.

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1352
« on: February 20, 2018, 05:08:21 AM »
I came up with a method to zoom into an initial image of interest to arbitrary depth (depending on patience) to create an even more interesting image.
Basic idea is to take a location c and do a Newton iteration on finding the zero of the Greens function.
The Greens function is \( G(c)=e^{-\log(2) m(c)} \) where \( m(c) \) is the smoothed iteration count:
\( m(c) = n_{escape}-\log(\log(|z|)/\log(2) \), and z is the value after escape. It is zero on the boundary and increases away from it, and has the properties of a potential field around a charge object (the M-set).
The usual distance estimate is obtained by solving \( G(c+\Delta c)=0 \) by linearizing (using derivative of G).
As G is real and c is complex there are infinitely many solutions and the distance estimate is obtained by selecting the one with smallest \( d=|\Delta c | \).
Newtons method is then obtained by stepping c by \( \Delta c \), where \( \Delta c = -d \frac{z/|z|}{z'/|z'|} \), which is the distance including direction. (\( d = |z|\log(|z|)/|z'| \).)

It does not find anything interesting but I like it as a method to "complexify" an image. Note the convergence is not quadratic because G has an essential singularity (meaning all the derivatives are zero), not sure if there is a fix for that. Typically you get closer to the boundary (zoom factor) by a factor 10-100 every iteration.

Considerable speedup is obtained by a partial "line search", meaning instead of shifting by \( \Delta c \) you shift by \( \alpha \Delta c \) and you search for the best \( \alpha \). Theoretically \( 1/2\leq \alpha\leq 2 \).
Optimal \( \alpha \) seems constant in practice but varying by location. So I run Newton+line search for a few iterations, the skip the line search and just use the best \( \alpha \).

I'll post some images in my image thread.

Offline claude

  • *
  • Fractal Freak
  • **
  • Posts: 715
    • mathr.co.uk
« Reply #1 on: February 20, 2018, 05:37:53 AM »
\( \Delta c = -d \frac{z/|z|}{z'/|z'|} \), which is the distance including direction. (\( d = |z|\log(|z|)/|z'| \).)
why do it in two steps with absolute values that cancel out?  I've played with directional de before, without knowing the theory behind it, just \( z \log(|z|) / z' \)... an early example https://math.stackexchange.com/questions/1153052/interior-distance-estimate-for-julia-sets-getting-rid-of-spots

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1352
« Reply #2 on: February 20, 2018, 05:43:29 AM »
why do it in two steps with absolute values that cancel out?  I've played with directional de before, without knowing the theory behind it, just \( z \log(|z|) / z' \)... an early example https://math.stackexchange.com/questions/1153052/interior-distance-estimate-for-julia-sets-getting-rid-of-spots
For clearer exposition.