Title: How to pick c for interesting orbits? Post by: makc on April 10, 2010, 02:15:32 AM I was playing with this thing that draws 3d lines in (z.re, z.im, iteration) space, and found there are a lot of boring orbits that either converge over few iterations, or keep playing ping-pong between two same numbers:
(http://xs.to/image-D28A_4BBFBEF3.jpg) So my question is, how should I pick random c for interesting orbits? Title: Re: How to pick c for interesting orbits? Post by: reesej2 on April 10, 2010, 08:55:36 AM My suggestion is to randomly choose a point within a radius of, say, 1 from the origin. Then compute the distance estimate of that point. THEN compute the distance estimates for several randomly selected nearby points (within a radius of r). Of the points you just calculated, take the one with the least distance estimate value, and then repeat with a slightly smaller r (say, r / 2).
The reason I think this'll work is that it should make your point approach a random point on the border of the set. The closer to the boundary a point is, the more likely it is to have a high period--and the higher the period, the more interesting the orbit. It's not surefire, of course, but I bet it's better than random chance. Title: Re: How to pick c for interesting orbits? Post by: Timeroot on April 11, 2010, 08:31:45 PM The two effects you described - converging to a single point, and playing ping pong (giggle) - are from the two main shapes: every point in the main cardioid, or bulbous part, will end up converging. And every part in the period-2 bulb, off to the "left", will end up alternating between two values. One thing you could try is choosing a random number between, say, 0.5 and 0.55. Let this random number be the radius. Then chose a random angle, from the origin. Call this "u". Then, your c will be the value of u*(1-u). This basically chooses random points just barely outside the main cardioid. There will still be a few points that ping pong, but it should give you a pretty interesting selection of orbits.
Title: Re: How to pick c for interesting orbits? Post by: makc on April 11, 2010, 09:57:50 PM Then chose a random angle, from the origin. Call this "u". Then, your c will be the value of u*(1-u). I don't quite follow this, you mean u an angle, or a random number in r = 0.5 to 0.55 ring?Title: Re: How to pick c for interesting orbits? Post by: Timeroot on April 12, 2010, 06:15:09 AM A random number in the r=0.5 to 0.55 ring. :) Then, u is the random number. In psuedocode, where rand() gives a float between 0 and 1:
r=0.5+rand()/20; a=(rand()-0.5)*2*pi; u=r*e^(i*a); c=u*(1-u); if you don't want to (or can't) do the e^(i*a), and would rather do it in an (real,imag) type format or something, use u=(r*cos(a),r*sin(a)); Hope this helps (or even works!) ;D Title: Re: How to pick c for interesting orbits? Post by: makc on April 12, 2010, 03:03:51 PM if I unwrapped u(1-u) correctly, it's cx = ux * (1 - ux) + uy * uy; cy = uy * (1 - ux) - ux * uy; and it works, if by "works" we mean not 1 or 2 same points over and over, but now it's 3 or 4 or 5 same points, so most of orbits look like boring skyscrapers. on the other hand, some slowly converging, or slowly diverging orbits produce interesting organic-like spirals. I guess at this point I just have to load iteration count colored mandelbrot image and use it as a mask to pick orbits next to set border.
Title: Re: How to pick c for interesting orbits? Post by: cKleinhuis on April 12, 2010, 03:22:59 PM i think you would like to generate interesting julia shapes,
in my opinion the distance estimation would help here, all points within a distance threshold are candidates for nice julia shapes and an animation path within that treshold would give very interesting julia shapes the problem with the circle is that you cross areas of the mandelbrot where the julia shape is not very interesting ... ;( Title: Re: How to pick c for interesting orbits? Post by: lkmitch on April 12, 2010, 05:47:32 PM Every point in the interior of a component (bulb or cardioid) will have an orbit that settles into a limit cycle. The points with non-periodic orbits are exactly on the boundary of the Mandelbrot set. Many are easy enough to find empirically, like Misiurewicz points, which are at the tips of dendrites or at the intersections of multiple dendrites. For points on the boundaries of components, the main cardioid and the head have easily-described boundaries. Just use an angle that is not a fraction times 2pi radians and your point won't have a periodic orbit. For other components, I believe that there are some derivative analyses that can get you arbitrarily close to the edge, but they're not necessarily easy to figure out.
Title: Re: How to pick c for interesting orbits? Post by: David Makin on April 12, 2010, 11:39:18 PM If you really want interesting orbits then change to a formula that produces strange attractors such as the Gumowski–Mira :)
Title: Re: How to pick c for interesting orbits? Post by: makc on April 13, 2010, 12:01:48 AM I tried GumowskiMira before (http://wonderfl.net/code/280895877fbf249e892e42f1705cf31a49e87fb6) and I didn't see them any more interesting than Mandelbrot ones (http://wonderfl.net/code/9845741d6fac7dfe266e874e95a1917df00bdfba)
Title: Re: How to pick c for interesting orbits? Post by: David Makin on April 13, 2010, 12:20:11 AM I tried GumowskiMira before (http://wonderfl.net/code/280895877fbf249e892e42f1705cf31a49e87fb6) and I didn't see them any more interesting than Mandelbrot ones (http://wonderfl.net/code/9845741d6fac7dfe266e874e95a1917df00bdfba) Ah, well not all orbits of the Mira are strange attractors. What you actually need to find areas with orbits of strange attraction on say a Julia fractal is to colour it based on the Lyapunov exponents, or even the estimated fractal dimension of the orbits. If you have Ultra Fractal then you can use my "mmf4.ufm:Attractors" formula - read all the parameter hints etc. for help on using it. Alternatively (and possibly less complicated) download and try Chaoscope. Title: Re: How to pick c for interesting orbits? Post by: Timeroot on April 13, 2010, 01:32:31 AM Every point in the interior of a component (bulb or cardioid) will have an orbit that settles into a limit cycle. The points with non-periodic orbits are exactly on the boundary of the Mandelbrot set. Many are easy enough to find empirically, like Misiurewicz points, which are at the tips of dendrites or at the intersections of multiple dendrites. For points on the boundaries of components, the main cardioid and the head have easily-described boundaries. Just use an angle that is not a fraction times 2pi radians and your point won't have a periodic orbit. For other components, I believe that there are some derivative analyses that can get you arbitrarily close to the edge, but they're not necessarily easy to figure out. Actually, dendrite tips and Misiurwicz points will have periodic orbits. Only the "irrational angle" points will have strange attractors. If you want interesting escaping orbits, taking Misiurwicz points with very small perturbations would produce iteresting pictures of the instability... Haha, "iteresting" was a typo. But it might actually be a cool word: iterating+interesting=iteresting, and interesting fractal. :dink: Title: Re: How to pick c for interesting orbits? Post by: reesej2 on April 13, 2010, 02:57:18 AM Hm... If you want to go REALLY crazy, pick an irrational angle (sqrt(2) * pi radians or similar) and do a binary search to find a point on the boundary at that angle (so start with bounds of r = 0.5 and 1.5, say, then test the middle. If it's in the set, your new bounds are 1 and 1.5; otherwise, your bounds are 0.5 and 1). Of course you'd have to store the angle in some format other than as a double, since you can't accurately store an irrational like that. Maybe store it as a linear function of the square root of 2 of something (so, two doubles, a and b, where your value is a * sqrt(2) + b.) Maybe pick random a and b, making sure that a is nonzero. |