## The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!

 Pages: 1 ... 4 5 [6]   Go Down
 Author Topic: Pertubation Theory Glitches Improvement  (Read 10870 times) Description: 0 Members and 1 Guest are viewing this topic.
knighty
Fractal Iambus

Posts: 819

 « Reply #75 on: December 20, 2016, 08:54:34 PM »

Hi,
The formula for glitch detection, unlike the one for series approximation error estimation, doesn't use interval arithmetics, only the derivative. the misterious precision parameter is not that misterious . It depends only on the size of the pixels in the rendered window. It should be a fractions of that pixel size/radius. I have left the value of the fraction (relatively) undefined in order to let the user choose the level of accuracy she/he wants. For example, without antialiasing one can take fraction=1 but when using antialiasing (say N x N) fraction should be < 1/N.

That said, it doesn't take into account the (possible) accumulation of rounding errors. Therefore, it is safer to use a small value for the fraction. 1e-3 for example seems a resonable choice.
 Logged
quaz0r
Fractal Molossus

Posts: 652

 « Reply #76 on: December 20, 2016, 09:24:28 PM »

i guess by "precision parameter" i meant your "pmax," which is found in both your glitch formula and your SA error formula.  it seems to be a mysterious value which can usually be [quite a bit] less than the full mantissa precision, but how to predict what the perfect value is at any given time seems to be a mystery?

also, does your glitch formula need to be checked on every iteration like paul's glitch formula, or could it be done less frequently?
 « Last Edit: December 21, 2016, 01:17:08 AM by quaz0r » Logged
knighty
Fractal Iambus

Posts: 819

 « Reply #77 on: December 21, 2016, 02:10:54 PM »

Well, IMHO it is not pmax that is mysterious. The mysterious part comes from the unknown effects of rounding error accumulation (that are not taken into account). Maybe the way I wrote the code is a little bit misleading? At some point the glich inequality looks like this:

2-pmax * LHS < RHS * fraction

if we set: fraction = 2-k

we can rewrite the inequality this way:

2-(pmax-k) * LHS < RHS

in the code I've posted, I have set k to a too big value (maybe in order to make the blobs have the same size as with Pauldelbrot's formula  ).

I did some experiments with k=10 which, so far, give good results.

For both formulas, I gess it is not, strictly speaking, necessary to do the check at every iteration if one can predict when the iterated point comes close to the "cancellation area". This is because the ( catastrophic ) cancellation happens at some iterations if any.
I believe it is even possible to predict where the cancellations occur while computing reference point orbit and/or series approximation and so, by using... err... interval arithmetic  and root finding. But this is another story.
 Logged
quaz0r
Fractal Molossus

Posts: 652

 « Reply #78 on: December 21, 2016, 02:57:27 PM »

Quote from: knighty
I believe it is even possible to predict where the cancellations occur while computing reference point orbit and/or series approximation and so, by using... err... interval arithmetic  ￼ and root finding. But this is another story.

that sounds like an interesting story indeed
 Logged
quaz0r
Fractal Molossus

Posts: 652

 « Reply #79 on: January 02, 2017, 09:20:26 PM »

ok i was going to try your glitch formula, though i am a bit confused about $\delta'$.  you gave the formula:

$\delta'_{n+1} = 2\delta'_n(z_n + \delta_n) + 1$

$\delta$ is initialized from the SA, but i am not sure how $\delta'$ is supposed to be initialized?

also conceptually im not sure how this $\delta'$ relates to glitch detection.  it seems like it implies that glitching can happen under more circumstances than simple precision loss?  i was also trying to remember how your SA truncation error formulas progressed.  didnt you start out using $SA'$ and then decide that something else should be used instead?  are you sure that $\delta'$ is the right thing to use here?

edit:  is $\delta'$ the same as the SA stuff claude came up with for initializing $z'$ for doing DE?
 « Last Edit: January 02, 2017, 10:13:57 PM by quaz0r » Logged
quaz0r
Fractal Molossus

Posts: 652

 « Reply #80 on: January 06, 2017, 07:32:05 AM »

ok assuming the $\delta'$ is what i think it is i implemented your glitch detection.  it seems like maybe it will work though currently i am not sure what $\delta'$ becomes when switching to a new secondary reference under claude's glitch correction algorithm.

also i recall claude suggesting that calculating $z'$ directly made more sense than using the perturbation formula, so that is how i implemented it.  since this glitch detection requires $\delta'$ anyway it would be nice to be able to use it to calculate the value of the derivative at the end of iteration, unless it would be problematic for some reason.  if it were too problematic to use then that would make this glitch detection formula that much more costly..
 Logged
knighty
Fractal Iambus

Posts: 819

 « Reply #81 on: January 06, 2017, 09:27:22 PM »

Hi,

$delta'$ is exactly the same as z'.
 Logged
quaz0r
Fractal Molossus

Posts: 652

 « Reply #82 on: January 07, 2017, 07:37:03 AM »

so are you saying that by $|\delta'_{n+1}|$ you in fact meant $|z'_{n+1}|$ ?  and if that is the case, then did you also mean $|\delta_{n+1}|$ to be $|z_{n+1}|$ ?  though here by $z$ i mean the current point, not the reference $z$.  i wish we had clearer terminology for this.  i think whenever you guys write $z$ you tend to mean the reference $z$, but then how are we supposed to refer to non-reference $z$'s ?  $z_{point-we-are-currently-calculating-not-the-reference}$ ?  it is further confused if you talk about non-perturbation formulas at the same time as perturbation formulas.

looking at claude's old perturbation document, it appears that he gives this formula for $\delta'$

$\delta'_{n+1} = 2(z'_n\delta_n + z_n\delta'_n + \delta_n\delta'_n)$

whereas the formula you gave for $\delta'$ is in fact the standard non-perturbation formula for $z'_{as-in-the-derivative-of-the-current-point-we-are-calculating-not-the-derivative-of-the-reference-point}$, though alongside that you gave the actual perturbation formula for $\delta$.  it seems perhaps something got confused here ?

also i noticed in the comments in the code you attached you say your glitch detection doesnt always work right.  shouldnt we expect it to work if you got the formulas right ?  so maybe they are not right..

i'll keep playing around with it but so far nothing i try seems to work..

actually one last thought about all of this:  when previously playing around with claude's glitch correction algorithm, i noticed it blows up spectacularly if any value more lax than the standard 10-3 is used with paul's glitch detection.  it seems claude's thing has requirements/conditions/pitfalls/whatever that are yet unknown or yet to be fully explained, and perhaps wont work nice with your glitch detection, or will need to have pmax tweaked just so..
 Logged
 Pages: 1 ... 4 5 [6]   Go Down