I have a problem. I tried using perturbation theory for the Magnet Mandelbrot type I fractal, but after going a quadrillion zooms, the image becomes... well, you know what happens. The code:

``````Magnet1Mandelbrot {
;
; Magnetic Mandelbrot set type 1. Use Switch Mode to select a
; magnetic Julia set.
;
init:
z = @start
c = #pixel
x = real(z)
y = imag(z)
i = sqrt(-1)
loop:
z = ((z^2 + c - 1) / (2*z + c - 2))^2
bailout:
|z| <= @bailout && |z - 1| >= @lowerbailout
\$IFDEF VER60
perturbinit:
#dz = 0
dc = #dpixel
perturbloop:
#dz = ((2*z*#dz^2+c*#dz^2-2*#dz^2+2*z^2*#dz+2*c*z*#dz-4*z*#dz-2*c*#dz+2*#dz-z^2*dc+2*z*dc-dc)*(2*z*#dz^2+c*#dz^2-2*#dz^2+6*z^2*#dz+2*c*z*#dz-4*z*#dz+2*c*#dz-2*#dz+z^2*dc+2*z*dc+2*c*dc-3*dc+4*z^3+2*c*z^2-4*z^2+4*c*z-4*z+2*c^2-6*c+4))/((2*z+c-2)^2*(2*#dz+dc+2*z+c-2)^2)
\$ENDIF
default:
title = "Magnet 1 (Mandelbrot)"
helpfile = "Uf*.chm"
helptopic = "Html\formulas\standard\magnet.html"
magn = 0.5
maxiter = 100
periodicity = 0
param start
caption = "Perturbation"
default = (0, 0)
hint = "Starting value for each point. You can use this to \
'perturb' the fractal. Use (0, 0) for the classic set."
endparam
param bailout
caption = "Bailout value"
default = 100.0
min = 1
\$IFDEF VER40
exponential = true
\$ENDIF
hint = "This parameter defines how soon an orbit bails out while \
iterating. Larger values give smoother outlines; smaller values \
generally produce more interesting shapes around the set."
endparam
param lowerbailout
caption = "Convergent bailout value"
default = 0.00005
min = 0
\$IFDEF VER40
exponential = true
\$ENDIF
hint = "This parameter defines how soon a convergent orbit bails out while \
iterating. Smaller values give more precise results but usually \
require more iterations."
endparam
switch:
type = "Magnet1Julia"
seed = pixel
bailout = bailout
}
``````
I have a problem. I tried using perturbation theory for the Magnet Mandelbrot type I fractal, but after going a quadrillion zooms, the image becomes... well, you know what happens. ![6318fc526be8a.png](serve/attachment&amp;path=6318fc526be8a.png) The code: ```` Magnet1Mandelbrot { ; ; Magnetic Mandelbrot set type 1. Use Switch Mode to select a ; magnetic Julia set. ; init: z = @start c = #pixel x = real(z) y = imag(z) i = sqrt(-1) loop: z = ((z^2 + c - 1) / (2*z + c - 2))^2 bailout: |z| &lt;= @bailout &amp;&amp; |z - 1| &gt;= @lowerbailout \$IFDEF VER60 perturbinit: #dz = 0 dc = #dpixel perturbloop: #dz = ((2*z*#dz^2+c*#dz^2-2*#dz^2+2*z^2*#dz+2*c*z*#dz-4*z*#dz-2*c*#dz+2*#dz-z^2*dc+2*z*dc-dc)*(2*z*#dz^2+c*#dz^2-2*#dz^2+6*z^2*#dz+2*c*z*#dz-4*z*#dz+2*c*#dz-2*#dz+z^2*dc+2*z*dc+2*c*dc-3*dc+4*z^3+2*c*z^2-4*z^2+4*c*z-4*z+2*c^2-6*c+4))/((2*z+c-2)^2*(2*#dz+dc+2*z+c-2)^2) \$ENDIF default: title = &quot;Magnet 1 (Mandelbrot)&quot; helpfile = &quot;Uf*.chm&quot; helptopic = &quot;Html\formulas\standard\magnet.html&quot; magn = 0.5 maxiter = 100 periodicity = 0 param start caption = &quot;Perturbation&quot; default = (0, 0) hint = &quot;Starting value for each point. You can use this to \ &#039;perturb&#039; the fractal. Use (0, 0) for the classic set.&quot; endparam param bailout caption = &quot;Bailout value&quot; default = 100.0 min = 1 \$IFDEF VER40 exponential = true \$ENDIF hint = &quot;This parameter defines how soon an orbit bails out while \ iterating. Larger values give smoother outlines; smaller values \ generally produce more interesting shapes around the set.&quot; endparam param lowerbailout caption = &quot;Convergent bailout value&quot; default = 0.00005 min = 0 \$IFDEF VER40 exponential = true \$ENDIF hint = &quot;This parameter defines how soon a convergent orbit bails out while \ iterating. Smaller values give more precise results but usually \ require more iterations.&quot; endparam switch: type = &quot;Magnet1Julia&quot; seed = pixel bailout = bailout } ````

0

How did you end up with the perturbation equations? When finishing UF6, I looked at all the formulas in the Standard.ufm file to see if I could (somewhat easily) add perturbation support, but the Magnet formulas were not one of these.

How did you end up with the perturbation equations? When finishing UF6, I looked at all the formulas in the Standard.ufm file to see if I could (somewhat easily) add perturbation support, but the Magnet formulas were not one of these.

Ultra Fractal author

0

There is a perturbation calculator built in with this program called 'et' https://code.mathr.co.uk/et
Some simplifications were made using wxmaxima.

There is a perturbation calculator built in with this program called &#039;et&#039; https://code.mathr.co.uk/et made by Claude Heiland-Allen. Some simplifications were made using wxmaxima.

0

Perturbation calculations only work when all the terms in the formula are "small". See here for an explanation:
https://www.ultrafractal.com/help/writing/formulas/perturbationequations.html

In this case, if you look at the nominator of the equation, it ends with 2c^2 - 6c + 4. All these terms (and others) are "large", so you can't calculate this with double precision and expect to be able to zoom in past the double precision limit. So the Magnet formula simply doesn't lend itself to perturbation calculations.

Perturbation calculations only work when all the terms in the formula are &quot;small&quot;. See here for an explanation: https://www.ultrafractal.com/help/writing/formulas/perturbationequations.html In this case, if you look at the nominator of the equation, it ends with 2*c^2 - 6*c + 4. All these terms (and others) are &quot;large&quot;, so you can&#039;t calculate this with double precision and expect to be able to zoom in past the double precision limit. So the Magnet formula simply doesn&#039;t lend itself to perturbation calculations.

Ultra Fractal author

0

Makes sense. So the coefficients have to be small. Otherwise, it won't work.
But is there a better solution to make these coefficients "small"?

Makes sense. So the coefficients have to be small. Otherwise, it won&#039;t work. But is there a better solution to make these coefficients &quot;small&quot;?

0

By the way, ever heard of "rebasing" and "Bivariate Linear Approximation"? These are two new developments made by Zhuoran on FractalForums. BLA proves to be much better than series approximation.
Fraktaler 3 -- Rebasing
Fraktaler 3 -- Bivariate Linear Approximation

By the way, ever heard of &quot;rebasing&quot; and &quot;Bivariate Linear Approximation&quot;? These are two new developments made by Zhuoran on FractalForums. BLA proves to be much better than series approximation. [Fraktaler 3 -- Rebasing](https://fraktaler.mathr.co.uk/#rebasing) [Fraktaler 3 -- Bivariate Linear Approximation](https://fraktaler.mathr.co.uk/#bivariate-linear-approximation)

0

Makes sense. So the coefficients have to be small. Otherwise, it won't work.
But is there a better solution to make these coefficients "small"?

I think the conclusion is that the math simply doesn't work, so you can't use perturbation calculations with e.g. the Magnet formulas.

I haven't yet looked into the new developments that you mentioned, thanks for the links!

&gt;Makes sense. So the coefficients have to be small. Otherwise, it won&#039;t work. &gt;But is there a better solution to make these coefficients &quot;small&quot;? I think the conclusion is that the math simply doesn&#039;t work, so you can&#039;t use perturbation calculations with e.g. the Magnet formulas. I haven&#039;t yet looked into the new developments that you mentioned, thanks for the links!

Ultra Fractal author

0

For this FractalForums user, it worked with their own Java-based fractal zoomer (superheal, https://fractalforums.org/index.php?topic=4452.msg31028#msg31028 ). I was baffled, and I don't get it how they managed to pull it off...
Maybe the way how Fractal Zoomer and UF handle perturbation theory work differently, because they have a different language or something?

For this FractalForums user, it worked with their own Java-based fractal zoomer (superheal, https://fractalforums.org/index.php?topic=4452.msg31028#msg31028 ). I was baffled, and I don&#039;t get it how they managed to pull it off... Maybe the way how Fractal Zoomer and UF handle perturbation theory work differently, because they have a different language or something?

0

Also to mention that perturbation is not optimized for convergent fractal formulas...

Also to mention that perturbation is not optimized for convergent fractal formulas...

0

Tried it with the Nova fractal, it only worked with the diverging bailout conditions. Is there a way to make perturbation work with the converging bailout conditions or any custom bailout condition?

Tried it with the Nova fractal, it only worked with the diverging bailout conditions. Is there a way to make perturbation work with the converging bailout conditions or any custom bailout condition?

0
221
views
9
replies
2
followers
live preview
Enter at least 10 characters.
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified Saving...
Saved
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing