Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => General Discussion => Topic started by: quick yellow whale on January 15, 2017, 12:19:00 AM




Title: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 15, 2017, 12:19:00 AM
"arbitrarily complex" means that as you zoom in, the location of where you zoomed affects what you see, making it possible to keep zooming and getting more and more complex images. Simplest would mean uses the fewest number of operations in the formula when all operations that use complex numbers are converted to ones that use regular numbers.

The Mandelbrot set formula is one of the simplest I've seen so far, with this formula where the complex operations have been converted into regular operations:

<br />Z^x_0 = Z^y_0 = 0<br />Z^x_{n+1} = Z^x_n*Z^x_n - Z^y_n*Z^y_n + x;<br />Z^y_{n+1} = 2*Z^x_n*Z^y_n + y;<br />

This uses 4 multiplications, 2 additions, and 1 subtraction.

However, if the 2* is removed, the fractal that is produced seems to still be arbitrarily complex on the right side. Is there an even simpler formula that can produce an arbitrarily complex fractal?


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: youhn on January 15, 2017, 02:38:12 AM
The complexity only arises because the choice of the 2D project system. Try the formula in it's plain form and you will see it doesn't get much simpler than that:

(https://www.edge.org/sites/default/files/event-images/602_Mandelbrot1000.jpg)


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: Tglad on January 15, 2017, 07:51:13 AM
Note that z=z^2+c is a single iteration of a complex number, part of a more complicated escape time algorithm.
But Z=Z^2+C is a single equation (not an assignment) operating on the whole complex plane which defines the same set exactly. Very simple with very complex results.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: Tglad on January 15, 2017, 07:41:15 PM
Actually not quite right, the set valued formula only works for Julia sets (and with a little c), the Mandelbrot set is a bit harder to express in this way. Might need the language of vector bundles to write concisely.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 15, 2017, 11:50:34 PM
The complexity only arises because the choice of the 2D project system. Try the formula in it's plain form and you will see it doesn't get much simpler than that:

(https://www.edge.org/sites/default/files/event-images/602_Mandelbrot1000.jpg)

I'm looking for the simplest "real" formula that produces a complex fractal. My reasoning is that imaginary numbers don't exist in the real world, so computers can only do computations on real numbers, which means any fractal can only be realized using real numbers.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 16, 2017, 12:35:08 AM
computers can only manipulate 0s and 1s. With streams of 0s and 1s you can define real numbers, floats (which are NOT actual real numbers) or complex numbers alike.
Imaginary numbers don't not exist any more or less than real numbers don't exist. They are human-conceived abstractions that turned out to be super useful either way. Furthermore, there are great geometric justifications for complex numbers: Essentially pretty much everything about them follows from the fact that i corresponds to a quarter rotation in the euclidean plane. With that exact meaning, i actually smuggles its way into physics equations. - On one hand you can always avoid writing this i. On the other, lots of stuff becomes super awkward. This also is true here: z \to z^2+c is a lot simpler than \left(x,y\right) \to \left(x^2-y^2+a, 2xy+b\right).


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 16, 2017, 03:55:22 AM
computers can only manipulate 0s and 1s. With streams of 0s and 1s you can define real numbers, floats (which are NOT actual real numbers) or complex numbers alike.
Imaginary numbers don't not exist any more or less than real numbers don't exist. They are human-conceived abstractions that turned out to be super useful either way. Furthermore, there are great geometric justifications for complex numbers: Essentially pretty much everything about them follows from the fact that <Quoted Image Removed> corresponds to a quarter rotation in the euclidean plane. With that exact meaning, <Quoted Image Removed> actually smuggles its way into physics equations. - On one hand you can always avoid writing this <Quoted Image Removed>. On the other, lots of stuff becomes super awkward. This also is true here: <Quoted Image Removed> is a lot simpler than <Quoted Image Removed>.

When z \to z^2+c is calculated on a computer, a sequence of operations are performed for the calculation. I'm looking for the simplest sequence of operations that can produce a complex fractal. \left(x,y\right) \to \left(x^2-y^2+a, 2xy+b\right) is just a more precise definition of what the computer does to compute the Mandelbrot fractal than  z \to z^2+c.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: hobold on January 16, 2017, 06:00:51 AM
Let me just try to clarify my understanding. The words in this case seem to mean:

"complexity":
visual complexity, i.e. the original poster is interested in the generation algorithm which requires the lowest time to arrive at some interesting resulting image. The result does not necessarily have to have a mathematical structure that is related to the plane of complex numbers.

"formula":
the sequence of fundamental computational operations, i.e. the original poster is not interested in mathematical notation, but in algorithms and concrete programs for concrete computers.

Am I getting that right?


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 16, 2017, 06:21:21 AM
Let me just try to clarify my understanding. The words in this case seem to mean:

"complexity":
visual complexity, i.e. the original poster is interested in the generation algorithm which requires the lowest time to arrive at some interesting resulting image. The result does not necessarily have to have a mathematical structure that is related to the plane of complex numbers.

"formula":
the sequence of fundamental computational operations, i.e. the original poster is not interested in mathematical notation, but in algorithms and concrete programs for concrete computers.

Am I getting that right?

For "complexity" I'm not exactly sure how to explain it, but when you zoom into the Mandelbrot set the patterns you see as you zoom deeper are repeats of patterns that you passed before, as explained in this video:

https://www.youtube.com/watch?v=Ojhgwq6t28Y&list=LLcVqDkIMiDSYTKM0cqW3s_Q&index=13

It's this kind of "Turing-completeness" that I'm looking for.


For "formula" yes, I am looking for the simplest combination of real operations that can produce a complex fractal.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: youhn on January 16, 2017, 07:58:41 AM
I'm looking for the simplest "real" formula that produces a complex fractal. My reasoning is that imaginary numbers don't exist in the real world, so computers can only do computations on real numbers, which means any fractal can only be realized using real numbers.

Do "real" numbers then exists in the real world ... ?  :hrmm:

Our thinking methods (math, geometry, counting) are just simplified models to make some sense of our perception of the world. Negative numbers and imaginary numbers are just as usefull as real numbers, those names are just convention and nothing more.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 16, 2017, 08:36:52 AM
Do "real" numbers then exists in the real world ... ?  :hrmm:

Our thinking methods (math, geometry, counting) are just simplified models to make some sense of our perception of the world. Negative numbers and imaginary numbers are just as usefull as real numbers, those names are just convention and nothing more.

The key word is "real". In the real world only real things exist. And if you only count real things, then the numbers you get can only be real.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: hobold on January 16, 2017, 11:37:20 AM
Let's just clarify the topics further: a "real number" is one that can efficiently be handled by actually existing computing machinery?

(What I am trying to do here is to straighten out what I perceive to be misunderstandings between various participants in this thread.)

If I am getting this right, then the original question is not quite so specific, but more of an exploration. Let me try to phrase it completely differently (the original poster should correct me if I am totally off):

"Can the computer produce images that are at least as interesting as the Mandelbrot Set with a lower amount of computational work?"

Answers would ideally lead to steps of "improvement", i.e. either a reduced number of computational machine operations, for an equally interesting image; or a "better" image (whatever that may be exactly) with the same number of computational operations.

Such a chain of hypothetical "improvements" would naturally lead to the question of "best" such algorithm, i.e. the one that can no longer be improved or simplified.


I have no clue how realistic that search is, and I readily admit that it is a bit vague and philosophical. Still, some "naive" experimentation could lead to a faster generator of pretty pictures, even if it does not lead to truly new insights.

It seems obvious to me that the Mandelbrot Set is probably quite close to such a lower limit already. But it seems completely not obvious to me that the Mandelbrot Set is that lower limit.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 16, 2017, 12:02:05 PM
I'll stand by my comment though I recognize the spirit of your question.
Self-similarity also is a problem as basic definition of fractal complexity: You know what's self-similar? A cube. You can cut it into arbitrarily many other cubes. By the same token, a square or a line will do. And even a point: No matter how deep you zoom into a point, the image won't change at all!

That being said, if you are looking for visually interesting fractals, as the Mandebrot Set is one, I think that will always require some sort of non-linearity. - Mind you, non-linearity is not a guarantee for interesting stuff, but it's a root cause for that.
And this is why the Mandelbrot Set is so insanely simple: It adds one of the simplest types of non-linearity, a squared term, into the mix, and BAM, visually striking beauty.
No doubt here are other simple kinds of non-linearity to consider, which may result in even simpler formulae, but it certainly will be hard to beat out on the MSet.
One extremely simple thing you could do is to, instead of complex numbers, iterate over dual numbers with a constant \epsilon^2=0:
z \to z^2+c
\left(x,y\right) \to \left(x^2+a,2xy+b\right) - you just saved one multiplication and one addition!
However, while it still produces some interesting patterns, the end result isn't nearly as complex as what the standard definition gives you. Here is the result if you go for a Buddhabrot-Style rendering. Not actually sure what the plain old escape time method will give you.
(http://orig13.deviantart.net/0f9d/f/2009/189/8/0/sunset_fans_by_kram1032.png)


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 16, 2017, 04:43:56 PM
One way I'm thinking about finding such a formula is to make a program that generates formulas from every possible combination of variables {x, y, a, b} and operations {+, -, *, /} using up to three of each variable, with an operation between every two variables, and then create a fractal image from each formula using the escape-time method. Then I would look to see if any of the images produced are as complex as the Mandelbrot fractal.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: trafassel on January 16, 2017, 06:59:18 PM
Kali is the specialist in creating very simple fractal formulas.

See http://www.fractalforums.com/mandelbrot-and-julia-set/mandelbrot-on-real-numbers-t5375/msg26835/#msg26835
or
http://www.fractalforums.com/new-theories-and-research/very-simple-formula-for-fractal-patterns/



Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: DarkBeam on January 16, 2017, 10:17:24 PM
What looks simple in glsl might be complicated in javascript, java, basic, fortran etc.
The very word simple is meaningless in the world of fractals, raytracing and in math where nothing is really simple!
 :)


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 16, 2017, 10:35:36 PM
what are you talking about, there is nothing in math that ISN'T simple ;D


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: PieMan597 on January 16, 2017, 10:51:19 PM
what are you talking about, there is nothing in math that ISN'T simple ;D
Except needlessly confusing notation.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: claude on January 16, 2017, 11:42:08 PM
make a program that generates formulas from every possible combination

That's a nice idea, I might try it sometime.  The number of expressions gets big quickly though, with n slots in each formula there are (4^n + 4^(n - 1))^2 possible formula (you can reduce this quite a bit using symmetries, though I suspect it will remain O(16^n)).  But as you are interested in small n I think it'll be tractable.

EDIT: got the formula wrong: needs squaring instead of doubling because the choices for the second formula are independent of the choices for the first formula


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 17, 2017, 12:01:58 AM
Math notation, oddly enough, has for the longest of times not gotten the same scrutiny as math itself. I think that might start changing right now. But that's a very different topic :)
I'm curious what that survey of formulae will yield. With the proposed three occurrences per variable we'd get 160 distinct fractals. Though none of them would be, say, the normal Mandelbrot Set, since you wouldn't allow the 2 in y \to 2xy+b.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 17, 2017, 10:49:40 PM
I tried all combination of formulas that use exactly three variables. Some of the images were interesting, but none had a complexity similar to Mandelbrot. This is one of the more interesting ones and is a fractal, but doesn't have a complexity similar to Mandelbrot which I'm looking for.

Z^x_{n+1} = Z^y_n - Z^x_n + C_y
Z^y_{n+1} = Z^x_n*Z^x_n - C_x

Mandelbrot itself has 5 variables in the X equation and 4 in the Y, if you count the '2', so I'm going to have to optimize my program to narrow down the number of combinations before I go that high.

(http://i.imgur.com/aiTxcJZ.png)


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 23, 2017, 12:09:24 AM
After producing images for all formulas that use between 3 and 4 variables I got 196,365 images after removing lots of duplicates. There's too many images to go through manually, but sorting by image size allows viewing the more complex images. None of the interesting I found so far had the shape-stacking feature of the Mandelbrot set. There were also no interesting ones that didn't seem distorted or stretched in some way.

This is the formula for the most interesting one I've found so far:

X_{n+1} = C_x*C_x - X_n - Y_n
Y_{n+1} = X_n*X_n - Y_n + C_y

(http://i.imgur.com/wyeM7mh.png)



Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 23, 2017, 12:48:10 AM
With the kinds of operations you allow you aren't going to get any "interesting ones that don't seem distorted or stretched" except for very specific parameters. It's partially due to how these formulae generate their images in the first place: You keep folding \mathbb{R}^2 onto itself in very specific ways that happen to stretch and distort the space. - The 2 in the Mandelbrot formula is actually pretty vital in that regard. It in part makes sure the distortion happens in a fairly regular manner.
I realize this will explore complexity even more but I'd suggest  perhaps also enumerating, for a small range of integers or perhaps fractions, pre-factors for each term. Something like any fraction between \frac{1}{3} and \frac{3}{1} that you can build with the numbers between 1 and 3, just to give you some idea.
And if you are smart about it, you can reduce quite a bit of the complexity that is caused by some of what you do. For instance, changing around X and Y will just rotate your set by 90°. Multiplying X*Y is the same as multiplying Y*X.... stuff like that.

I like the one you found there. It has quite an interesting structure going on.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 23, 2017, 04:29:12 AM
With the kinds of operations you allow you aren't going to get any "interesting ones that don't seem distorted or stretched" except for very specific parameters. It's partially due to how these formulae generate their images in the first place: You keep folding <Quoted Image Removed> onto itself in very specific ways that happen to stretch and distort the space. - The 2 in the Mandelbrot formula is actually pretty vital in that regard. It in part makes sure the distortion happens in a fairly regular manner.
I realize this will explore complexity even more but I'd suggest  perhaps also enumerating, for a small range of integers or perhaps fractions, pre-factors for each term. Something like any fraction between <Quoted Image Removed> and <Quoted Image Removed> that you can build with the numbers between <Quoted Image Removed> and <Quoted Image Removed>, just to give you some idea.
And if you are smart about it, you can reduce quite a bit of the complexity that is caused by some of what you do. For instance, changing around X and Y will just rotate your set by 90°. Multiplying X*Y is the same as multiplying Y*X.... stuff like that.

I like the one you found there. It has quite an interesting structure going on.

I underestimated how many different combinations there are for two equations with 4 variables each, and 3 different operations between the variables. Manually looking at thousands of images is far too tedious. What I could try is create images with different combinations of constant coefficients in front of the variables for the most interesting equation I found to see if one combination removes the distortion and reveals shape stacking in deeper areas.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: Tglad on January 23, 2017, 09:31:22 AM
Surely you want to only search conformal transforms.?.. they are the only ones that will produce detail without stretching in one direction.
If you're only using multiplies and additions then you've only really got 2D rotations, squaring, cubing etc, and translations. But since multibrots are universal any combination is equivalent to a standard multibrot.

If you allow more primitives like complex sin, cos, exp etc then you can do more cool (and conformal) patterns, but then you have to decide on the relative complexity of each function.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 23, 2017, 09:58:33 AM
That's actually part of the reason why complex numbers are a good choice: All smooth functions over the complex numbers are conformal.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 23, 2017, 10:41:30 PM
Surely you want to only search conformal transforms.?.. they are the only ones that will produce detail without stretching in one direction.
If you're only using multiplies and additions then you've only really got 2D rotations, squaring, cubing etc, and translations. But since multibrots are universal any combination is equivalent to a standard multibrot.

If you allow more primitives like complex sin, cos, exp etc then you can do more cool (and conformal) patterns, but then you have to decide on the relative complexity of each function.

Is the "standard multibrot" the Mandelbrot set? I'm wondering if there exists a formula that is more complicated than the Mandelbrot one in complex terms, but is simpler than the two Mandelbrot formulas when reduced to the real plane.

Also, can every conformal function when represented as two equations in the real plane be converted into one equation in complex terms?


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: Tglad on January 24, 2017, 03:18:13 AM
Without thinking too thoroughly... yes and yes


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: kram1032 on January 24, 2017, 11:16:30 AM
you could simply take the split-complex numbers for an example of the first. You can emulate them in complex numbers with conditionals. (Something you can always do in principle) But it's awkward and probably no longer holomorphic (differentiable in the sense of the complex numbers) and as such probably also no longer conformal.
And I'm pretty sure all 2D conformal maps are indeed convertible to complex numbers.


Title: Re: Simplest formula for producing arbitrarily complex fractal?
Post by: quick yellow whale on January 28, 2017, 01:46:57 AM
After thinking about it some more, it would probably be easier to analytically check if a transform is conformal rather than generate an image for the transform and manually check if the image is distorted.