Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => Theory => Topic started by: David Makin on December 18, 2009, 01:58:02 PM




Title: Any function you like....
Post by: David Makin on December 18, 2009, 01:58:02 PM
Hi all, after this:

http://www.fractalforums.com/mandelbulb-renderings/a-new-class-of-bulb/msg9988/#msg9988 (http://www.fractalforums.com/mandelbulb-renderings/a-new-class-of-bulb/msg9988/#msg9988)

And something Jos Leys pointed out to me, i.e. that for the Mandelbulb Julias because the rotations do not affect the magnitude then for the analytical distance estimate for z^p+c (Julias where p is real) because we only need the magnitude of the final derivative in the end then the running derivative can be done using just the magnitude rather than the full triplex value, i.e. to get the derivative we simply iterate:

dz = p*dz*m^(p-1)

where dz is the (both running and final) magnitude of the derivative, p is the power/degree (real) and m is the current magnitude of the main iteration.

Putting the above ideas together I came up with the following for the main iterate:

Convert the triplex (or any multi-dimensional number) to the magnitude and the relevant unit vector, if the magnitude is 0 return the constant as the new value else...
New magnitude=magnitude^p
Apply *any* function f() you like to the unit vector.
If the function used is such that the result may not maintain unity then normalise the result throwing away the magnitude - special case a zero result e.g. return 1 (real) if zero generally (or another appropriate unit vector depending on your function e.g. based on numeric or geometric limits).
Now simply multiply the new unit vector by the new magnitude and add the constant.

When doing the above then the optimisation of using just the magnitude for the analytical derivative for Julia Sets still applies for any function f using power p.

Note that using the optimisation of just using the magnitude for the derivative on the Mandelbrot versions does work to some extent but the calculations really require the full vector derivative because of the "+1" added on each iteration.


Title: Re: Any function you like....
Post by: David Makin on December 18, 2009, 03:00:47 PM
I should add that Paul also suggested a method using *any* function, here:

http://www.fractalforums.com/theory/the-christmas-tree-3d-mandelbrot-set/msg10213/#msg10213 (http://www.fractalforums.com/theory/the-christmas-tree-3d-mandelbrot-set/msg10213/#msg10213)

That method also allows the possibility of the optimised (magnitude only) Julia derivative for z^p+c where p is real.


Title: Re: Any function you like....
Post by: kram1032 on December 18, 2009, 04:33:05 PM
any pics of that sofar? :)


Title: Re: Any function you like....
Post by: David Makin on December 18, 2009, 05:32:15 PM
any pics of that sofar? :)

Well not for *any* function but for rotational functions using angles other than the normal Mandelbulb ones.
I have formulas in my updated 3D wip formula for using the "simultaeneous" rotation around 2 or all 3 2D angles, these formulae do not preserve the unity of the vector so one version produced this:

"Hairy Ball"

(http://fc07.deviantart.net/fs51/f/2009/328/e/6/Hairy_Ball_by_MakinMagic.jpg)
http://makinmagic.deviantart.com/art/Hairy-Ball-144652915 (http://makinmagic.deviantart.com/art/Hairy-Ball-144652915)

But renormalising as I described gets rid of the "hairiness" :)

Others using different angles, in some cases also with the described renormalising:

http://makinmagic.deviantart.com/art/Terraformed-Mars-144722355 (http://makinmagic.deviantart.com/art/Terraformed-Mars-144722355)
http://makinmagic.deviantart.com/art/A-Martian-Delicacy-144901891 (http://makinmagic.deviantart.com/art/A-Martian-Delicacy-144901891)
http://makinmagic.deviantart.com/art/Under-Red-Skies-145191644 (http://makinmagic.deviantart.com/art/Under-Red-Skies-145191644)
http://makinmagic.deviantart.com/art/Centauri-Prime-145239769 (http://makinmagic.deviantart.com/art/Centauri-Prime-145239769)
http://makinmagic.deviantart.com/art/The-Lost-Isle-145246194 (http://makinmagic.deviantart.com/art/The-Lost-Isle-145246194)
http://makinmagic.deviantart.com/art/Temple-of-the-Anointed-145450385 (http://makinmagic.deviantart.com/art/Temple-of-the-Anointed-145450385)
http://makinmagic.deviantart.com/art/Summer-on-the-Tundra-145532566 (http://makinmagic.deviantart.com/art/Summer-on-the-Tundra-145532566)
http://makinmagic.deviantart.com/art/Shropshire-Crags-146372767 (http://makinmagic.deviantart.com/art/Shropshire-Crags-146372767)
http://makinmagic.deviantart.com/art/Limestone-pavement-146400211 (http://makinmagic.deviantart.com/art/Limestone-pavement-146400211)

If I remember correctly (without checking) I think "Summer on the Tundra" was the same formula as "Hairy Ball" except with renormalisation added.


Title: Re: Any function you like....
Post by: kram1032 on December 18, 2009, 05:44:17 PM
I see :)

well in that case you know already that they look great :D


Title: Re: Any function you like....
Post by: David Makin on December 18, 2009, 11:16:48 PM
I should add that the optimisation of using the magnitude only for the derivative will only work for formulas with the basic form a*z^p + c.
As soon as you do something like a*z^p + b*z^p1 + c then you have to use the full vector derivative.