# Adventures in the math forest of fractal trees

Original author: Bernat Espigulé-Pons
• Transfer

Translation of Bernat Espigulé Pons, "Adventures into the Mathematical Forest of Fractal Trees" .
You can download the translation as a Mathematica document , which contains all the code used in the article, here .

Without a doubt, the golden section and in our time seems to be one of the most mysterious, magical and astonishing numbers, which are known to the people: . (in the Wolfram Language and Mathematica, the GoldenRatio symbol corresponds to it ). As you will see from this post, this number really has many interesting properties that can be explored, and some of them were considered in the works of ancient Greek scholars, such asPythagoras and Euclid , others in the works of the Italian mathematician Leonardo of Pisa , better known under the nickname Fibonacci, or Johannes Kepler - an astronomer of the Renaissance. Although this may sound strange, in this post I will tell you about new geometric objects associated with the golden ratio that illuminated my path when I tried to display a previously unknown area of ​​the Mathematical Forest.

The properties discovered below were not found by chance, I worked hard to get this new knowledge from the time when I was in high school. After in 2007, I saw drawings of the “golden” (in terms of using the golden section in their construction) fractal trees by Hans Walser(Hans Walser), I realized that in this area there is still room for new research and discoveries. After some searching, I found the tools I needed for this: they were the Mathematica system and the Theo Gray interactive model called “The Nibbler of the Naked Wind-Blown Pythagorean Tree ”, from the Wolfram Demonstrations Project website. Having gathered some knowledge and initial programming skills in Wolfram Language, I got my first results and insights. Let's say below you can see an example of one of the first self-touching “golden” fractal trees that I discovered for myself, creating my own version of Theo Gray's “Flexor”, which I originally developed to study ternary trees (that is, trees in which from each node there are three branches).

In [1]: =

Out [3] =

This is a self-similar tree, that is, a tree that is obtained, in essence, by the sequential application of some branching rule. I call “golden” those trees whose branch lengths are a multiple of the Golden Ratio GoldenRatio = φ. For this particular tree, the scale factor for the central branch is equal , and for the side branches. The angle between the central branch and each of the lateral branches is 72º. Since this tree does not have intersecting branches or elements that are not connected to each other, it can be called a “self-touching” tree. Let's take a closer look at some of its properties:

In [4]: ​​=

Out [7] =

Following the notation proposed by Benoit Mandelbrot and Michael Frame for binary trees, I added the third letter U , along with which we can describe all the branches of our triple tree. The letter L denotes the branches coming out on the left, the letter R denotes the branches coming out on the right, and the letter Ucorresponds to the central branch. Thus, a string of these letters uniquely defines each branch of our fractal. In the event that this kind of “address” has infinite length, then we can indicate the specific “top” of our fractal tree, which can be considered, in fact, as an unattainable limit point, to which the chain of branches of the fractal tree is gradually approaching. For example, the infinite “address” of the view sets the “tip” at the very top of our tree:

In [8]: =

Out [8] =

Thus, the height of our tree is:

In [9]: =

Out [9] =

And its width equal to the distance between points and :

In [10]: =

Out [10] =

It is also very interesting that the length of a sequence of tree branches can be expressed using Fibonacci numbers (in Mathematica , the Fibonacci [n] function is used to search for the nth Fibonacci number ). You can find some expressions used in the code below, in the lower left corner of the previous figure:

In [11]: =

Out [11] =

In [12]: =

Out [12] =

Finally, in order to prove that it the tree is self-touching, we need to show that two different branches (their vertices) touch each other at one point, which corresponds simultaneously to two points (vertices) of the tree:. In this case, the same thing is observed for the mirror symmetric point (see diagram below). If so, then the self-similarity of the tree will mean that there are no vertices in it that do not touch other vertices. This means that you can take any vertex, “cut off” a subset of the tree that contains it, which repeats the whole tree in appearance, then change its scale accordingly, rotate it to the desired angle, and after that we get the touch point of one of the two main types considered :

The vertex coordinates can be defined as follows:

In [13]: =

Out [13] =

In this case, the vertex coordinates will be equal:

In [14]: =

Out [14] =

Thus, since these coordinates are equal, we can state that our tree is really self-touching.

Another amazing thing related to this “golden” tree is that it creates a beautiful pattern with 5th order axial symmetry, which can be obtained by turning the main tree around its base:

In [15]: =

Out [17 ] =

Or you can create a similar pattern by rotating the tree around its main vertex:

In [18]: =

Out [20] =

On the same day, I discovered the second triple “golden” tree. This is a tree in which the central branch goes down, we will designate it with the letter D , and the right R and left L branches form an angle of 36º along with the central branch.

In [21]: =

Out [23] =

In this case, we can create a pattern with axial symmetry of the 10th order by rotating the created tree around its base:

In [24]: =

Out [26] =

Now let me introduce you the most the first “golden” tree that I discovered in 2011:

In [27]: =

Out [29] =

This binary tree is asymmetric. In it, the length of the branches that go to the left is multiplied by a coefficient at each stepwhile they form an extension of the central branch with an angle of 36º. Branches extending to the right are arranged in such a way as to form regular pentagons. The first four iterations are shown below:

In [30]: =

Out [32] =

You can also consider the asymmetric tree below, which has mirror symmetry relative to the straight line passing through the central branch:

In [33]: =

Out [37] =

On based on this tree, you can create a fractal with 5th order axial symmetry:

In [38]: =

Out [42] = The

real magic happened after I “folded” this tree as shown in this gif animation , created using Mathematica .

When the branches were completely folded, the tops of the tree formed a “golden” Koch snowflake . The golden ratio “lined” the branches in such a way that they formed “ golden triangles ” and “ golden gnomons ”, which can be seen at any degree of image enlargement.

In [43]: =

Out [43] =

( see an interactive CDF demo )

After we looked at trees whose ends of their mother branches move clearly along a straight line segment, a whole family of self-touching binary trees has appeared (you can read more about this in post “ Automatic drawing in Mathematica: Dragon Trees ”).

Then I began to consider trees that have more than two branches extending from the main branch. Collection " Fractal mosaics " Robert Fathauera (Robert Fathauer) inspired my list display method all possible trees generating Koch snowflakes, similar to a tree that has been previously discussed, with a single chart. This diagram was presented at last year's Bridges conference (you can find the article here , the diagram itself is a figure 4 caption). These studies and observations have allowed me to move forward and to generalize osculant balanced binary trees fractal studied Benoit Mandelbrot (Benoit Mandelbrot) and Michael Frame (Michael Frame) (see.[1] ), Tara Taylor (see [2] [3] ), Dushan Pagon (see [4] ) and Stephen Wolfram (see [5] ). After much work on finding out how the “addresses” of the paths to the vertices of the tree, in which it touches itself, are connected with the angle θ, as well as with the number of branches of the tree, using Mathematica I was able to get all nine types of equations that determine the self-touching coefficient for n-ary symmetric fractal trees. I will not go into details here - you can examine the self-touching trees yourself in the manipulator below. If you are interested in this issue, you can read the post “ Nine Equations to rule them all. The entire Sierpinski fractal family ”(Nine equations to rule them all. The Sierpinski's whole family), which was written for the Wolfram Community. In this post, we obtained results that were then published in the journal Symmetry (Volume 24, Numbers 1–4, pages 320–338, 2013).

In [44]: =

Out [44] =

( see interactive CDF demo )

My research did not end there. Last summer, during the first week of my summer school stayWolfram Science Summer School , I was fortunate to open five three-dimensional self-touching infinite “golden” trees with branches pointing down (below you can see one of these trees generating a three-dimensional code snowflake, which can be obtained by taking the angle of inclination of the side branches relative to the continuation equal to the central branch ). This moment was the most outstanding for me.

When I arrived at Wolfram Science Summer School, I already had some vague vision of what I would be doing the project about. I wanted to generalize the equations that I found for two-dimensional fractal trees for the three-dimensional case. I tried to do this before, but I had certain difficulties in applying all kinds of rotations, and I could only create a small set of highly symmetrical trees, like a tetrahedral tree , which I printed on a 3D printer just before joining the summer school. Demonstration of " branching trees in 4D " Todd Rowland (Todd Rowland), Academic Director of the Summer School has helped me to understand the basic idea of the implementation of my project and my head,Виталий Кауров (Vitaliy Kaurov), был очень вдохновлен моей целью.

После моего первого разговора со Стивеном Вольфрамом (Stephen Wolfram), все были согласны, что я должен остаться в том же самом Математическом лесу, из которого я пришел и должен постараться перейти к более высокой размерности рассматриваемых деревьев. На протяжении моей первой недели я искал литературу о трёхмерных фрактальных деревьях, и я нашел статью “Симметричные трёхмерные фрактальные деревья” (Symmetric Fractal Trees in Three Dimensions), написанную Фронгилло (Frongillo) и др., а также примерPaul Nylander generating three-dimensional ternary fractal trees. After that, I quickly tried to reproduce and expand the results presented in the article, based on my intuition and knowledge gained while studying two-dimensional trees under the direction of Susanne Krömker at the University of Heidelberg. The final results were amazing and I am still amazed at how quickly all these equations were obtained in just three weeks. Of course, the atmosphere that stood in the summer school became the best assistant for the implementation of such a project.

“Simple rules, applied an infinite number of times, are an inexhaustible source of miracles” - Benoit B. Mandelbrot

In [45]: =

Out [45] =

(see the interactive CDF demo )

(The manipulator created using the Manipulate function , which you see above, will allow you to explore the “forest” of symmetric binary fractal trees. The blue “map” in the background represents the Mandelbrot set for symmetrical binary trees. In this case, the Julia sets associated with this “map” are the vertex sets of the corresponding trees. This “map”, opened by Michael Barnsley, has some common properties with point maps, discovered by Stephen Wolfram. The imaginary axis is directed upward in this figure so that the trees “grow” upward. Moreover, the white area in the center corresponds to those positions of the maternal branches, in which the trees obtained on their basis are incoherent.)