Another possible way to accelerate MB set deep zooming

  • 170 Replies
  • 5249 Views

0 Members and 1 Guest are viewing this topic.

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #45 on: February 12, 2018, 09:53:04 AM »
The difference is because you are scaling b.

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #46 on: February 12, 2018, 11:57:05 AM »
The difference is because you are scaling b.
Then, if I understand correctly what you are doing, it becomes \( r=|a_{01}/a_{02}|b_{max} \) with my a's.
For the example I attached then find r = 1.25e-41 which works, but the s-orbit escapes already almost everywhere in the mini defeating the purpose of the method.
r=6e-20 is the value I find by manual tuning there.

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #47 on: February 12, 2018, 04:27:12 PM »
if |a01/a02| = 7e10 and bmax = 2.3e-41 you get r = 1.6e-30 not 1.25e-41. If you zoom at 6e-30 you'll see that it is the point where the period 111 root appears.
In this location I find that a bailout of 1e-25 works also. The numbers are given for nanomb particular algorithm. It may be different for you.

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #48 on: February 12, 2018, 07:46:22 PM »
if |a01/a02| = 7e10 and bmax = 2.3e-41 you get r = 1.6e-30 not 1.25e-41. If you zoom at 6e-30 you'll see that it is the point where the period 111 root appears.
In this location I find that a bailout of 1e-25 works also. The numbers are given for nanomb particular algorithm. It may be different for you.
Sorry I made a mistake: |a01/a02| = 0.27 and bmax = 4.6e-41 is what I get for the location. It seems I find the center of one of the bulbs attached to the mini.

If your program does something different from what was discussed so far I can't figure it out from your code, so there is not much to discuss then. Nevertheless, I think we agree r should be as large as possible, does your method really find such a value for every location?

My feeling is the term "escape radius" is a misnomer: we need an error condition with some sound justification to stop the super iteration which may not have the form |z|>r for some constant r, but how??

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #49 on: February 12, 2018, 11:42:52 PM »
A method I haven't seen fail yet is for the (K,M) polynomial for fp compute 3 more terms (K+1,M+1) and use that as error estimate.
Then "escape" if \( \Delta z > h^2 \) with h pixel radius. I have no idea why h^2 instead of h, just found this experimentally. Maybe it should be h*minbrot size or something like that.
I've tried to break it, but have not succeeded yet. No warranties :)

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #50 on: February 13, 2018, 11:50:11 AM »
If your program does something different from what was discussed so far I can't figure it out from your code, so there is not much to discuss then.
Nothing fundamentally different. I was pointing to the possible fact that my implementation is different from yours so the numbers could be different. That said, IMHO you need to check your computation of r again.  :D

Nevertheless, I think we agree r should be as large as possible, does your method really find such a value for every location?
Sure! but it is not critical. It is just like what happens with the regular escape radius: 1e20 is attained only one iteration after 1e10.
I believe "my" method should work for every location. I'm assuming that the MB set is not perturbed, we always begin at z=0. The idea is: if one approximates a high degree polynomial P with a low a low degree polynomial Q, Q will approximate well P in the area where they both agree about their roots. This is something that could be proven true (or false) when phrased in a precise manner.

My feeling is the term "escape radius" is a misnomer: we need an error condition with some sound justification to stop the super iteration which may not have the form |z|>r for some constant r, but how??
There is the question.  ;D

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #51 on: February 13, 2018, 05:52:08 PM »
That said, IMHO you need to check your computation of r again.  :D
Can you tell me what value you get for \( a_{01}/a_{02} \) in a1.kfr (or any other example you like) so I can check?
Edit: Probably found it, I was looking at SA coefficients instead of SSA, really dumb. For a1.kfr I get
r = 3.318071694457150e-30
However this results in s-orbit escaping inside most of the mini.
Largest escape r without problems I find is r=1e-13.
With the "last term error <h^2" method there is no real r but no point in the mini s-escapes.
« Last Edit: February 13, 2018, 07:38:19 PM by gerrit »

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #52 on: February 14, 2018, 04:24:48 AM »
r = |a01|/|a02|
already gives a good estimate.
I think I got my bugs out. Your method works great for me provided you meant \( |z|^2>r \) is the escape condition.
With \( |z|>r \) I get regions inside the mini escaping when mini is large in the view.

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #53 on: February 14, 2018, 01:35:41 PM »
Exactly! That is because we do the test when the reference returns to 0. If we do one regular iteration, z is squared then c is added.

Could you give more informations about your method?

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #54 on: February 14, 2018, 05:48:47 PM »
Exactly! That is because we do the test when the reference returns to 0. If we do one regular iteration, z is squared then c is added.
I don't understand the rationale behind your method, why does it work?
Quote
Could you give more informations about your method?
You mean "truncation error threshold >tol=h^2"?  I found one example where tol is too small, the original warped one we did. No-escape region doesn't cover entire mini (though most). Not surprising as the h^2 was just a guess.

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #55 on: February 15, 2018, 12:34:50 PM »
I don't know why exactly it works so this is just a sketch. It is more a hunch than anything else so I'm not sure about 90% of what follows  :fp: :
When approximating a polynomial P with another lower degree polynomial Q (let's say at a simple root of P) at some distance r, the roots of P and Q become different. Therefore, the distance at which Q approximate P well is less than r. If we don't know at which r the roots of P and Q disagree, let's take the smallest r where Q have a root (this is a second root because our approximation is around a root of P) and divide it by some number, say 10, for safety. I guess the higher the degree of Q is the lower the safety divisor number can be...  :gum:

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #56 on: February 15, 2018, 11:42:37 PM »
I don't know why exactly it works so this is just a sketch. It is more a hunch than anything else so I'm not sure about 90% of what follows  :fp: :
When approximating a polynomial P with another lower degree polynomial Q (let's say at a simple root of P) at some distance r, the roots of P and Q become different. Therefore, the distance at which Q approximate P well is less than r. If we don't know at which r the roots of P and Q disagree, let's take the smallest r where Q have a root (this is a second root because our approximation is around a root of P) and divide it by some number, say 10, for safety. I guess the higher the degree of Q is the lower the safety divisor number can be...  :gum:
So if period is p all the roots of P are at period p mini's. Then probably \( r<2^{-2p} \):
https://fractalforums.org/fractal-mathematics-and-new-theories/28/newton-raphson-zooming/481/msg2906#msg2906

That's too small in general though, but I found it's accurate (agree with your r) near -2 for minis on the real axis.

Just a useless comment...

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #57 on: February 19, 2018, 10:55:30 AM »
So if period is p all the roots of P are at period p mini's. Then probably \( r<2^{-2p} \):
That doesn't happen.

Offline gerrit

  • *
  • 3f
  • ******
  • Posts: 1477
« Reply #58 on: February 28, 2018, 05:14:38 AM »
Any ideas on glitch correction with the SSA? I tried doing SSA iterations on the first mini, then PT to finish off the escaped ones, collecting all glitches detected as usual. I then find a random glitch, find a period/nucleus in it with usual ball/Newton method, compute new SSA, then process glitches with SSA + PT followup etc. It seems to work but I'm not sure it's the best way to do it.

Offline knighty

  • *
  • Fractal Feline
  • **
  • Posts: 173
« Reply #59 on: March 04, 2018, 08:40:17 AM »
The only simple approach I can think of is to do exactly the same thing as with regular SA. Beside that I'm out of ideas.  :fp: :embarrass:


xx
Speeding up deep zooming using neural networks / deep learning?

Started by greentexas on Fractal Mathematics And New Theories

27 Replies
1262 Views
Last post December 13, 2017, 10:43:46 PM
by Byte11
xx
a way to accelerate Mandelbrot (etc) deep zoom world record attempts

Started by claude on Fractal Mathematics And New Theories

4 Replies
298 Views
Last post February 19, 2018, 04:46:10 PM
by claude
xx
How to avoid zooming too deep?

Started by noahfence on Mandelbulber

2 Replies
185 Views
Last post June 10, 2018, 02:47:48 AM
by mclarekin
xx
Mandelbrot set deep zooming in the web browser

Started by claude on Other

0 Replies
310 Views
Last post October 29, 2017, 11:00:15 PM
by claude
xx
Deep water

Started by kohlenstoff on Fractal Image Gallery

0 Replies
34 Views
Last post October 14, 2018, 09:36:02 PM
by kohlenstoff