Message Boards Message Boards

9
|
17640 Views
|
3 Replies
|
14 Total Likes
View groups...
Share
Share this post:

Nine equations to rule them all. The Sierpinski's whole family.

It is the harmony of the diverse parts, their symmetry, their happy balance; in a word it is all that introduces order, all that gives unity, that permits us to see clearly and to comprehend at once both the ensemble and the details. H. Poincaré



Back in 2011, I started a long-term exploration with Mathematica. In particular, I got trapped in a binary fractal forest when testing Theo Gray’s Tree Bender. I found myself literally lost in a dark labyrinth. I had no choice other than trying to map the Platonic Universe I was in, hoping that I will finally find a way back home. First, I started to observe some strikingly organic patterns resembling real leaves and dragons.
Then, I got carried away. And then I got carried away more. And then I got carried away with how carried away I was getting carried away, and so on. It's a freaking miracle I managed to eventually stop myself. - Antonio Marquez-Raygoza
Three years later here I am, out of the labyrinth and excited to be presenting my prime discovery made with the help of Mathematica 9. “The 9 equations to rule them all”. All the 2D self-contacting symmetric n-ary fractal trees, i.e. trees with no branch overlaps and no leaves disconnected.



For every angle th in the intervals Pi/b<th<Pi for Down Trees and 0<th<Pi-Pi/b for Up Trees there is one, and only one value r that satisfies the tip-to-tip self-contact condition (the tree has neither branch overlaps nor disconnected leaves). Thus, it seemed reasonable to think that algebraic expression for the self-contacting ratio rsc as function of th might exist. As a good tree worshiper I was, I believed that such equations existed, and after pushing the limits of Mathematica and the patience of my family, I finally found them all.






Example for b = 3 :



Equations for Up Self-Contacting Symmetric Trees:
- b even:






- b odd:





To have an idea of what are these equations doing, take a look again to the Up self-contacting symmetric ternary trees animation at the beginning of this post. 



The PolarPlot of equations (8) and (9) determine the path to be spanned by the pair of outermost mother branches. If the tips of these two symmetrical branches lie below the curve, the trees’ leaves are completely disconnected to each other. If these pair of tips lie above the self-contacting curve, the leaves end up with overlaps.

These 9 equations tell us a myriad of properties about the lovely sierpinski’s family of trees. For example each smooth piece that they draw is filled with self-contacting trees that are topologically equivalent to each other, i.e. they are holomorphic. the non-differentiable cracks that one found in between the smooth pieces of the self-contacting curves, represent topological critical points where the tip-to-tip self-contact changes abruptly, or in other words, a phase transition takes place.



Finally, let me outline that the properties of these 9 equations extend nicely to higher dimensions. For example, the Sierpinski triangle tree has the following higher-dimensional representation in 3D:


You can get your own Sierpinski tree from Shapeways. This one was generated and exported from Mathematica as an .stl file format by me (Geonat). As I mentioned in my previous post about dragon trees, I have generalized this special class of 2D fractals to the third dimension during my participation at the 2013 Wolfram Science Summer School. If you love fractals, then stay tuned to what is coming next (click the Follow button at the top of this discussion and I will keep you updated).
POSTED BY: Bernat Espigulé
3 Replies

Did you post yet about the intersecting 3D fractal trees?

Your project about them from the 2013 Wolfram Science Summer School was a good example of what happens at the summer school.

Most people don't come with a specific project like this one, but the projects that people do are very concrete and doable like this.

Probably people interesting in applying would like to hear more. (This is a link to my recent post about the school http://community.wolfram.com/groups/-/m/t/415505?p_p_auth=O249tqnh )

POSTED BY: Todd Rowland
Thank you Vitaliy for rising up this question. The following snippets of Mathematica code show how one can derive the analytical curves that connect the critical points. Let's start with eq (1):
Show[Table[
  PolarPlot[
   Sin[(\[Pi] - \[Theta])/(b - 1)] Csc[(b (\[Pi] - \[Theta]))/(
     b - 1)], {\[Theta], (b + 1) \[Pi]/(2 b), \[Pi]}], {b, 2, 30, 1}],
  PlotRange -> All]


We take the values of theta in the critical points and then we express b as function of theta:
Solve[(b + 1) \[Pi]/(2 b) == \[Theta], b]
Then we replace b in eq (1)
Sin[(\[Pi] - \[Theta])/(b - 1)] Csc[(b (\[Pi] - \[Theta]))/(
    b - 1)] /. {b -> -(\[Pi]/(\[Pi] - 2 \[Theta]))} // FullSimplify
This gives us r = -Cos(Theta) which links together the critical points:
Show[PolarPlot[-Cos[\[Theta]], {\[Theta], \[Pi]/2, \[Pi]}],
Table[PolarPlot[
   Sin[(\[Pi] - \[Theta])/(b - 1)] Csc[(b (\[Pi] - \[Theta]))/(
     b - 1)], {\[Theta], (b + 1) \[Pi]/(2 b), \[Pi]},
   PlotStyle -> {Red}], {b, 2, 30, 1}], PlotRange -> All]



To find the rest of critical lines for Down Self-Contacting n-ary trees we can use either eq (2) or eq (3). 
(3)
 Show[Table[
   Table[PolarPlot[(
     Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
      Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) +
       4 Cos[(2 (\[Pi] - \[Theta]) (n - 2))/(b - 1)] -
       4 Cos[(2 (\[Pi] - \[Theta]) (n - 1))/(b - 1)] -
       Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] + 5]/
      Sqrt[2])/(
     2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
       Sin[((\[Pi] - \[Theta]) (2 n - 3))/(b - 1)])), {\[Theta], ((5 +
         b - 4 n) \[Pi])/(2 (2 + b - 2 n)), ((7 + b - 4 n) \[Pi])/(
     2 (3 + b - 2 n))}], {b, 4 n - 5, 30, 1}], {n, 2, 8, 1}],
PlotRange -> All]


(2)
 Show[Table[
   Table[PolarPlot[(
     Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
      Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) -
       Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] +
       4 Cos[(2 (\[Theta] (b - n + 1) + \[Pi] (n - 2)))/(b - 1)] -
       4 Cos[(2 (-(b \[Theta]) + \[Theta] n - \[Pi] n + \[Pi]))/(
         b - 1)] + 5]/Sqrt[2])/(
     2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
       Sin[(2 b \[Theta] + \[Theta] - 2 \[Theta] n + 2 \[Pi] n -
         3 \[Pi])/(b - 1)])), {\[Theta], ((3 + b - 4 n) \[Pi])/(
     2 (1 + b - 2 n)), ((5 + b - 4 n) \[Pi])/(2 (2 + b - 2 n))}], {b,
    4 n - 3, 30, 1}], {n, 2, 8, 1}], PlotRange -> All]



In eq (2) we can take two types of critical angles, . We take the first type.
Solve[\[Theta] == ((3 + b - 4 n) \[Pi])/(2 (1 + b - 2 n)), b]
Then we replace this expression of b in (2)
 (Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
    Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) -
     Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] +
     4 Cos[(2 (\[Theta] (b - n + 1) + \[Pi] (n - 2)))/(b - 1)] -
     4 Cos[(2 (-(b \[Theta]) + \[Theta] n - \[Pi] n + \[Pi]))/(
       b - 1)] + 5]/Sqrt[2])/(
   2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
      Sin[(2 b \[Theta] + \[Theta] - 2 \[Theta] n + 2 \[Pi] n -
        3 \[Pi])/(b - 1)])) /. {b -> (-3 \[Pi] + 4 n \[Pi] +
     2 \[Theta] - 4 n \[Theta])/(\[Pi] - 2 \[Theta])} // FullSimplify
obtaining thus the desired critical equations for the angles .
Show[Table[
  PolarPlot[(
   2 Cos[(5 \[Pi] - 4 n \[Pi] - 2 \[Theta])/(4 - 4 n)] + Sqrt[
    10 - 6 Cos[(\[Pi] - 2 \[Theta])/(2 - 2 n)] + 8 Sin[\[Theta]] -
     8 Sin[(\[Pi] - 2 n \[Theta])/(2 - 2 n)]])/(
   4 (Cos[(\[Pi] + 2 \[Theta] - 4 n \[Theta])/(4 - 4 n)] +
      Sin[(\[Pi] - 2 \[Theta])/(4 (-1 + n))])), {\[Theta], 0,
    Pi/2}], {n, 2, 8, 1}], PlotRange -> All]


For the angles  a similar expression can be found:
Solve[\[Theta] == ((5 + b - 4 n) \[Pi])/(2 (2 + b - 2 n)), b]
We replace b in eq (2)
 (Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
    Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) -
     Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] +
     4 Cos[(2 (\[Theta] (b - n + 1) + \[Pi] (n - 2)))/(b - 1)] -
     4 Cos[(2 (-(b \[Theta]) + \[Theta] n - \[Pi] n + \[Pi]))/(
       b - 1)] + 5]/Sqrt[2])/(
   2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
      Sin[(2 b \[Theta] + \[Theta] - 2 \[Theta] n + 2 \[Pi] n -
        3 \[Pi])/(b - 1)])) /. {b -> (-5 \[Pi] + 4 n \[Pi] +
     4 \[Theta] - 4 n \[Theta])/(\[Pi] - 2 \[Theta])} // FullSimplify

Finally we can merge these critical lines with eq (2) and (3).
 Show[Table[
   Table[PolarPlot[(
     Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
      Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) -
       Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] +
       4 Cos[(2 (\[Theta] (b - n + 1) + \[Pi] (n - 2)))/(b - 1)] -
       4 Cos[(2 (-(b \[Theta]) + \[Theta] n - \[Pi] n + \[Pi]))/(
         b - 1)] + 5]/Sqrt[2])/(
     2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
       Sin[(2 b \[Theta] + \[Theta] - 2 \[Theta] n + 2 \[Pi] n -
         3 \[Pi])/(b - 1)])), {\[Theta], ((3 + b - 4 n) \[Pi])/(
     2 (1 + b - 2 n)), ((5 + b - 4 n) \[Pi])/(2 (2 + b - 2 n))},
    PlotStyle -> {Blue}], {b, 4 n - 3, 30, 1}], {n, 2, 8, 1}],
Table[Table[
   PolarPlot[(
    Sin[(\[Pi] (3 - 2 n) - \[Theta] (b - 2 n + 2))/(b - 1)] +
     Sqrt[-(4 Cos[(2 (\[Pi] - \[Theta]))/(b - 1)]) +
      4 Cos[(2 (\[Pi] - \[Theta]) (n - 2))/(b - 1)] -
      4 Cos[(2 (\[Pi] - \[Theta]) (n - 1))/(b - 1)] -
      Cos[(2 \[Theta] (b - 2 n + 2) + \[Pi] (4 n - 6))/(b - 1)] + 5]/
     Sqrt[2])/(
    2 (Sin[(\[Pi] - \[Theta])/(b - 1)] +
       Sin[((\[Pi] - \[Theta]) (2 n - 3))/(b - 1)])), {\[Theta], ((5 +
         b - 4 n) \[Pi])/(2 (2 + b - 2 n)), ((7 + b - 4 n) \[Pi])/(
     2 (3 + b - 2 n))}, PlotStyle -> {Red}], {b, 4 n - 5, 30, 1}], {n,
    2, 8, 1}],
Table[PolarPlot[(
   2 Cos[(5 \[Pi] - 4 n \[Pi] - 2 \[Theta])/(4 - 4 n)] + Sqrt[
    10 - 6 Cos[(\[Pi] - 2 \[Theta])/(2 - 2 n)] + 8 Sin[\[Theta]] -
     8 Sin[(\[Pi] - 2 n \[Theta])/(2 - 2 n)]])/(
   4 (Cos[(\[Pi] + 2 \[Theta] - 4 n \[Theta])/(4 - 4 n)] +
      Sin[(\[Pi] - 2 \[Theta])/(4 (-1 + n))])), {\[Theta], 0,
    Pi/2}], {n, 2, 8, 1}],
Table[PolarPlot[(-1 + Sqrt[
    3 - 2 Cos[(\[Pi] - 2 \[Theta])/(3 - 2 n)] -
     2 Sin[(\[Pi] + 4 (-2 + n) \[Theta])/(6 - 4 n)] +
     2 Sin[(\[Pi] + 4 \[Theta] - 4 n \[Theta])/(-6 + 4 n)]])/(
   2 (Cos[\[Theta]] +
      Sin[(\[Pi] - 2 \[Theta])/(-6 + 4 n)])), {\[Theta], 0,
    Pi/2}], {n, 2, 8, 1}], PlotRange -> All]


The same procedure can be extended to the Up symmetric trees equations.
POSTED BY: Bernat Espigulé
I am curious to see how you made such piecewise defined plots in Mathematica for r(?). How did you derive the analytical expressions for the curves?
POSTED BY: Vitaliy Kaurov
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract