Logo by Jimpan1973 - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Did you know ? you can use LaTex inside Postings on fractalforums.com!
 
*
Welcome, Guest. Please login or register. April 19, 2024, 07:10:25 PM


Login with username, password and session length


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


Pages: 1 [2] 3   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Hausdorff dimension of the Mandelbulb  (Read 19923 times)
Description: Has anyone calculated the fractal dimension of it ?
0 Members and 1 Guest are viewing this topic.
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #15 on: August 25, 2010, 05:15:24 AM »

I tried box counting the scale -2 mandelbox today, and if my code is right then its box counting dimension is about 2.8.
The code is below so let me know if you see a mistake. I measured the dimension by estimating what the dimension tends to as count increases.
I use a kind of distance estimate by keeping track of the radius of each box as it is transformed in the iterations. The whole box is only outside if the centre of the box is more than 6 + radius away from 0,0,0. (I'm using 6 as the escape distance, even though 4 may be sufficient.)
 
Code:
   int count = 10;
  uint64 numBoxes[100];
  float dimension[100];
  for (int b = 0; b<100; b++)
  {
    count = count * 2;
    numBoxes[b] = 0;
    float boxDiameter = 2.f / (float)count;
    for (uint64 x = 0; x<count; x++)
    {
      float X = (0.5f+(float)x) * boxDiameter;
      for (uint64 y = 0; y<count; y++)
      {
        float Y = (0.5f+(float)y) * boxDiameter;
        for (uint64 z = x + y%2; z<count; z++) // starting at x means we only do half the work by exploiting symmetry
        {
          float Z = (0.5f+(float)z) * boxDiameter;
          Vector3 start(X,Y,Z);
          Vector3 point = start;
          float radius = 0.5f*boxDiameter;
          numBoxes[b]++; // in anticipation of it being inside
          for (int i = 0; radius<4.f; i++)
          {
            if (point.x > 1.f)
              point.x = 2.f - point.x;
            else if (point.x < -1.f)
              point.x = -2.f - point.x;
            if (point.y > 1.f)
              point.y = 2.f - point.y;
            else if (point.y < -1.f)
              point.y = -2.f - point.y;
            if (point.z > 1.f)
              point.z = 2.f - point.z;
            else if (point.z < -1.f)
              point.z = -2.f - point.z;
            float size = point.magnitudeSquared();
            if (size < 0.25f)
            {
              point *= 4.f;
              radius *= 4.f;
            }
            else if (size < 1)
            {
              point /= size;
              radius /= size;
            }
            point *= -2.f; // scale 2
            radius *= 2.f;
            point += start;
            float mag = max(abs(point.x), max(abs(point.y), abs(point.z)));
            if (mag > 6.f + radius)
            {
              numBoxes[b]--; // wasn't inside
              break;
            }
          }
        }
      }
    }
    dimension[b] = logf(2.f*(float)numBoxes[b]) / logf((float)count);
    printf("dimension %f", dimension[b]);
  }
so it is more solid than a Menger sponge. (sequence that limit estimated from: 2.9861, 2.9518, 2.92, 2.8916, 2.871, 2.857)
« Last Edit: August 27, 2010, 04:36:38 AM by Tglad » Logged
Prokofiev
Safarist
******
Posts: 98



« Reply #16 on: August 26, 2010, 09:59:30 AM »

Nice result, Tom !  smiley.
Although I'm not quite sure I understand your algorithm, here  huh? Are your boxes cubic or spheric ? Why should "the radius of each box be transformed in each iteration" ?
Could you give more explanation ? More details on the parameters and intermediary results ?
How many transformations were applied ? what is the range in sizes of boxes ? Does the log-log plot look linear ?

It would be interesting to test your code on the Sierpinski teraedron, or the Menger sponge, to be sure.

Now what about the scale 2 Mandelbox (standard one?) ?
Logged

Sincerely,
Alexis
Prokofiev
Safarist
******
Posts: 98



« Reply #17 on: August 26, 2010, 10:10:58 AM »

I see your point here:
but a double koch curve (from a to be then back) is twice as much, at every stage of box counting for instance there will be twice as many boxes filled with the curve.
It makes sense. So we could say:
- The size of a 2-meters Sierpinki trangle is 3 m^d
- The size of a 3-meters Sierpinski triangle equals 5.7 m^d, that is 5.7 times the unit Sierpinski triangle.
- we can also compare fractals with similar dimensions and say "this one is "larger" than that one".
- Or choose a unit fractal and say "this coast equals 1535 unit Koch curves".

With this measure I don't see why one could not estimate the "area" of the boundary of the mandelbrot set in square meters.
Logged

Sincerely,
Alexis
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #18 on: August 27, 2010, 01:56:41 AM »

Yes I think that's right. You can also compare the size of fractals with different dimensions by determining the crossover resolution where they are the same size. Here's a recent discussion- http://www.fractalforums.com/mathematics/how-long-is-the-coastline-of-great-britain/
"I don't see why one could not estimate the "area" of the boundary of the mandelbrot set in square meters"
According to wikipedia no-one knows yet whether it has a lebesque measure (an area in the traditional sense)
I also found this:
Quote
Shishikura proved that, excluding certain points on the boundary, the boundary's two-dimensional area itself is zero. "This means the boundary is as thick as it could possibly be without occupying an area," Milnor says. "He's pinned it down quite precisely."
Whether that is just the lebesque measure of area, or the hausdorff measure or something else I don't know.

I have updated the code and results above to be a bit more accurate, and fixed the radius which was twice what it should have been. I am not sure how valid the algorithm is, but looks ok to me. The boxes are cubic, if I just count individual points in the set then the number of points (and indeed the dimension) becomes dependent on the number of iterations since like a menger sponge it is nowhere dense. We want to know if any point in each little box could be inside the set, so I approximate the transformation of the whole box by storing it as a centre + radius, and scaling the radius whenever the point gets scaled. This allows you to determine when a box is partially inside, since its centre can grow at max *2 + 2 when its radius is around 6, this means any radius of >4 can not escape from a distance of 6 away.
The numbers tend towards a value but the convergence is slow so I use this site to find an exponential fit (from http://zunzun.com/) so giving an estimated limit.
The equivalent for the menger sponge gives this sequence 2.86406, 2.82157, 2.811604, 2.80002, 2.792933, 2.786642, 2.782381 so looks roughly on course to give the right result around 2.72. But as with the previous, convergence is incredibly slow with this method. Its version of the code is:
Code:
  int count = 10;
  uint64 numBoxes[100];
  float dimension[100];
  for (int b = 0; b<100; b++)
  {
    count = count * 2;
    numBoxes[b] = 0;
    float boxDiameter = 1.5f / (float)count;
    for (uint64 x = 0; x<count; x++)
    {
      float X = 1.5f + (0.5f+(float)x) * boxDiameter;
      for (uint64 y = 0; y<count; y++)
      {
        float Y = 1.5f + (0.5f+(float)y) * boxDiameter;
        for (uint64 z = x + y%2; z<count; z++) // starting at x means we only do half the work by exploiting symmetry
        {
          float Z = 1.5f + (0.5f+(float)z) * boxDiameter;
          Vector3 start(X,Y,Z);
          Vector3 point = start;
          float radius = 0.5f*boxDiameter;
          numBoxes[b]++; // in anticipation of it being inside
          for (int i = 0; ; i++)
          {
            if (point.x > 1+radius && point.x < 2-radius && point.y>1+radius && point.y < 2-radius)
            {
              numBoxes[b]--;
              break;
            }
            if (point.x > 1+radius && point.x < 2-radius && point.z>1+radius && point.z < 2-radius)
            {
              numBoxes[b]--;
              break;
            }
            if (point.z > 1+radius && point.z < 2-radius && point.y>1+radius && point.y < 2-radius)
            {
              numBoxes[b]--;
              break;
            }
            if (radius > 0.5f) // obviously the above can never be true in this case
            {
              break;
            }
            point *= 3.f;
            radius *= 3.f;
            point.x = fmodf(point.x, 3.f);
            point.y = fmodf(point.y, 3.f);
            point.z = fmodf(point.z, 3.f);
          }
        }
      }
    }
    dimension[b] = logf(2.f*(float)numBoxes[b]) / logf((float)count);
    printf("dimension %f", dimension[b]);
  }
« Last Edit: August 27, 2010, 03:20:38 AM by Tglad » Logged
Prokofiev
Safarist
******
Posts: 98



« Reply #19 on: August 27, 2010, 11:29:30 AM »

Applying transformations to boxes seem a bit risky to me  huh?.  And just rescaling the boxes might too approximative, there are foldings and inversions in your transformation.  I don’t know exactly if it over-estimates or under-estimates the reallity. It is not the definition of the box-counting.
Why not just iterate all the transforms first and then divide into smaller and smaller boxes afterwards, in the usual way  ? It is the most simple way, to me, especially if you choose to divide the size of the boxes by 2. We would then be sure.

The quote about Shishikura is interesting, Where did you find it ?

by the way, I created the Mandelbox article for the french Wikipedia, here http://fr.wikipedia.org/wiki/Mandelbox. With a link to your site, of course.
Logged

Sincerely,
Alexis
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #20 on: August 27, 2010, 01:44:57 PM »

"Why not just iterate all the transforms first and then divide into smaller and smaller boxes afterwards, in the usual way"
I tried this but the number of iterations I used was affecting the resulting dimension... hmmm tricky, maybe someone else here on fractalforums could give it a try. The mandelbulb sounds trickier still, since to count the border you need do decide which are the border boxes.

Nice article in french, its better than the english version smiley
Logged
Prokofiev
Safarist
******
Posts: 98



« Reply #21 on: August 27, 2010, 03:31:26 PM »

I tried this but the number of iterations I used was affecting the resulting dimension... hmmm tricky, maybe someone else here on fractalforums could give it a try.
I am not suprized by that. The dimension must be calculated with the highest possible number of iterations. That's the only way to get as close as possible to the dimension on the "real thing".

Pity i am such an awful programmer (I used to program a very long time ago). undecided
Logged

Sincerely,
Alexis
Prokofiev
Safarist
******
Posts: 98



« Reply #22 on: August 27, 2010, 04:05:17 PM »

The mandelbulb sounds trickier still, since to count the border you need do decide which are the border boxes.
A voxel of the boundary has less than 6 neighbours. The best way to get rid of the inside.
Logged

Sincerely,
Alexis
Prokofiev
Safarist
******
Posts: 98



« Reply #23 on: September 01, 2010, 06:42:26 PM »

I have been doing some research in the papers about our problem and asked several questions around. 
I give you some news:

1) The Hausdorf dimension of any subset of the boundary of the Mandelbrot set is 2. Tglad, you were right and I was wrong. Strangely, even the tip of the antenna has dimension 2  surprised. It comes from Shishikura's paper : "for any open set U which intersects ∂M, we have H-dim(∂M ∩ U) = 2". Whatever the subset, you always find a dense subset of points around which the dimension is 2. (because of embedded copies of the Mandelbrot set all over the place?).

2) The boundary of the power-8 mandelbrot set has also dimension 2. It was confirmed to me by Jacques Carette, (he worked under Douaddy and Hubbard). Shishikura's result goes for any "rational map f0  of degree d (>1)  which has a parabolic fixed point ζ with multiplier exp(2πip/q) (p,q∈Z,gcd(p,q)=1) and that the immediate parabolic basin of ζ contains only one critical point of f0". This also applies to the map z^8+c. And any subset of its boundary has dimension 2, for the same reason explained in 1).

so: The entire boundary of the cross-section of the power-8 mandelbulb in the xy-plane has dimension 2.
We're getting somewhere  wink

Now if you give some "thickness" to this boundary in the z direction, for example a cartesian product with a segment (dim=1), whatever small, (a cylinder is the cartesian product of a circle and a segment), then you definitively have a set with Hausdorff dimension 2+1 = 3.
And if the mandelbulb has dimension 3 in any neighbourhood of the xy-plane, whatever small, then the entire set has dimension 3.
« Last Edit: September 02, 2010, 11:56:13 AM by Prokofiev » Logged

Sincerely,
Alexis
fractower
Iterator
*
Posts: 173


« Reply #24 on: September 01, 2010, 09:29:32 PM »


The final step seems a valid way to argue that HD = 3 for the power 8 bulb. For example an extrusion of any object with HD = N by an orthogonal axis results in an object with HD=N+1. So the extrusion of a 2D Mandelbrot will have HD=3 without really increasing the entropy (physicist not mathematician.)

Another way to say this is stretched taffy is qualitatively different from bulby goodness. Integer HDs seem to miss this distinction.

Logged
Tglad
Fractal Molossus
**
Posts: 703


WWW
« Reply #25 on: September 02, 2010, 12:33:15 AM »

Maybe that is why you can't have a real 3d mandelbrot... since a simple extruded mandelbrot (mandelbrot based prism) already has a full 3 dimensional boundary, the surface simply can't be any rougher than that. Or maybe you need to go to the next level down...
So a mandelbrot has area 2d and edge 2d
Any extruded mandelbrot has volume 3d and surface 3d
But I think the pursuit that lead to the mandelbulb was looking for: volume 3d, surface 3d and all lines over its surface being 2d. i.e. not just a fractal surface but fractal paths over every surface.

I wonder if there is a shape with volume 3d, surface 3d and all circumference lines being 3d? That would be nuts.
« Last Edit: September 02, 2010, 05:55:13 AM by Tglad » Logged
fractower
Iterator
*
Posts: 173


« Reply #26 on: September 02, 2010, 06:50:26 AM »

I don't want to give up on the holy bulb just yet. Prokofiev was able to demonstrate that the HD=3. I was just pointing out that that is not quite the complete answer. I suspect Tglad's path defination is a good metric to consider. For example the distance between any two points on the boundery of the Mandelbrot is infinite. Carette's result would seem to indicate the same for the xy plane (assuming a connectivity) of the power 8 bulb. If the same could be said for all paths in some small volume we would be closer.

I have not done a lot of bulb diving. Are there taffy regions in the power 8 bulb? It probably only takes one to propigate to all scales.
Logged
Prokofiev
Safarist
******
Posts: 98



« Reply #27 on: September 02, 2010, 11:31:02 AM »

An interesting result is that we didn't make any hypothesis on the formula (except that it equals Mandelbrot's one in the xy-plane), so this result is valid for any variant of a 3D Mandelbrot set such as the ones mentionned in  Daniel White's page or in Nylander's page (and post).

Now, of course it would be interesting to see if any cross-section by any plane has dimension 2,  and if any subset of these cross-sections have dimension 2.
I'd like to think so but I have doubts, particularly when I see smooth surfaces such as these ones :
1) The bottom of the "caves" (cross-section along the xy-plane)

2) The "toruses" surrounding the set (cross section along the xz-plane).


But, again, we must not trust our eyes on that matter.
« Last Edit: September 02, 2010, 11:58:41 AM by Prokofiev » Logged

Sincerely,
Alexis
Prokofiev
Safarist
******
Posts: 98



« Reply #28 on: September 02, 2010, 03:41:14 PM »

Actually, why not make a small test ?
When you zoom on the tip of the antenna of the Mandelbrot set, everything looks smooth and straight. But, as you keep on zooming, at some stage, small copies of the Mandelbrot set appear.
Could it be the same on the Mandelbulb ? So I tried this on a smooth part of the Mandelbulb, just to see if a minute and hidden rough pattern of some sort appears on the screen. I zoomed on the point of coordinates x=0.45, y=-0.5427 and z=0 which is on the “wall” of a “cave”  (see left image).

The result is disapointing  undecided. You see the classic spiral patterns unravel on the xy-plane, but the surface along the z axis always looks desperately smooth, even with a high degree of iterations. 
I zoomed up to  10^-14 (see right image), which is the best I could get..

Of course that is just a quick test and we must not draw conclusions from that.
Logged

Sincerely,
Alexis
M Benesi
Fractal Schemer
****
Posts: 1075



WWW
« Reply #29 on: September 03, 2010, 09:39:22 PM »

   Silly idea,  brain stopped after creation of it, so need another to glance at it:

  Idea:  Circumference of a circle has a Hausdorff of 1.   
           Area of the surface of a sphere has a Hausdorff of 2.
           Area of sphere is a product of the rotation of a circle around a perpendicular circle with the same center.

   Similarly:

          Mandelbrot outer edge has a Hausdorff of 2.
          Bulb outer edge would have a Hausdorff of huh?   
          Area of surface of bulb is the product of the rotation of a 2d Mandelbrot around a 2d Mandelbrot (both with Hausdorff of 2).

  Wouldn't this make the Hausdorff 4?

    Consider a 2d Mandelbrot spun in a circle (I know I've seen a few cheesy):

    Mandelbrot Hausdorff of 2.
   Circle is Hausdorff of 1.
   Is the Hausdorff of the spun Mandelbrot 3?

Logged

Pages: 1 [2] 3   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Hausdorff duminsion=fractal dimension? General Discussion luuc 6 4013 Last post March 26, 2007, 05:48:56 AM
by himalayanjava
Hausdorff dimension of a function General Discussion Timeroot 7 5392 Last post February 14, 2010, 11:23:03 AM
by kram1032
Fractal dimension of Mandelbulb, Mandelbox etc 3D Fractal Generation Tglad 2 2526 Last post April 09, 2010, 10:17:48 AM
by cKleinhuis
hausdorff dimension of PI ???!?! General Discussion « 1 2 » cKleinhuis 16 3691 Last post January 09, 2013, 12:43:15 AM
by kram1032
Hausdorff of hypecomplex J-M sets (new) Theories & Research snayperx 2 470 Last post March 30, 2014, 04:38:19 PM
by Endemyon

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.209 seconds with 29 queries. (Pretty URLs adds 0.014s, 2q)