Fractals

Fractals are objects with fractional dimensions. Sounds weird, what is the meaning of a fractional dimension?

Let’s make some interesting patterns before diving into mathematical details.

Koch curve

The Koch curve or snowflake is a fractal and its name is associated with a mathematician Helge von Koch. The fractal can be made iteratively by starting with a triangle (or only one side of the triangle). Then divide the side into three equal parts and replace the segment at the center with two segments of the same length that add a minor triangular feature. Repeating these steps yields a beautiful Koch curve.

Read more about Koch snowflake on Wikipedia.

Koch snowflake. Use the slider to understand how to make one.

Dragon curve

Similar to the Koch curve, we can use a recursive process to create another Dragon curve . To make a Dragon curve, we start with a horizontal line segment. This line segment is folded at the center to make a right angle. Folding basically scales and rotates the first half of the segment clockwise. In the following interactive figure, clockwise folding is depicted in red, and counterclockwise folding is shown in green. You can see there is an alternate pattern of clockwise and counterclockwise rotation.

Dragon curve. The clockwise folding is shown in red, and the counter-clockwise folding is shown in green. Use the slider to understand the algorithm. The black curve represents the final curve at the end of each iteration, while the red and green curves show the intermediate steps used to create the final curve from the previous iteration.

Read more about Dragon curve on Wikipedia.

Koch curve 3D

Here, we will explore the generalization of the Koch curve to three dimensions. We start with a six-sided delta shape, which has six faces. The delta has nine sides, with three sides of length three units and the remaining six sides of length two units. You can interact with the figures to see how the initial geometry is used to perform on iteration.

Koch 3D's Initial geometry. 🥽🧪🔬 You can interact with this figure.
Koch 3D's geometry after one iteration. There are three copies of the initial geometry sharing the longer edge. 🥽🧪🔬 You can interact with this figure.

This process is repeated seven times to create a 3D Koch, which appears complex yet beautiful.

Koch 3D's geometry after seven iterations. 🥽🧪🔬 You can interact with this figure.

Read more about Koch fractal 3D on ResearchGate.

Now, let’s understand how we can define dimension.

Dimension

Based on our understanding, the point is zero-dimensional and is indivisible. A line segment is one-dimensional, an area is two-dimensional, and a volume is three-dimensional. Let us now conduct an experiment and determine how dimension is related to geometry.

Let us consider a line segment of length $L$. Now, if we shrink a length $L$ by a factor $f$, we get a length of $l=L/f$. Number of copies ($N$) of $l$ required to make $L$ are,

\[N = L/l = f\]
Scaling a line segment by a factor $f=4$ needs $N=4$ copies of the shrunk object to reconstruct the original line segment.

Let us consider an example, if we have $L=1$ and we shrink it by factor $f=4$ then the shrinked line segment is of $l=L/f=0.25$. The number of copies of length $l=0.25$ needed to make lenght $L=1$ are, $N = L/l = 1/0.25=4 = f$.

Though this calculations are trivial our objective is to see how shrinking the original object by factor $f$ is related to number of copies we need to fill or construct original object. This will help us defining the dimension.

\[N = f\]

Now consider a square of side $L$. The property that we are interesed here is area,

\[A = L^2\]

we can notice that to compute area we squared the length. That is power of length is 2. Is this related to dimension of the area? Lets dig more deeper.

Scaling a square by a factor $f=4$ requires $N=16$ copies to fill the initial area.

Now, if we shrink the area by a factor $f$ in each direction, we can see that each side becomes of length $l=L/f$. New area,

\[a = (L/f)^2\]

Thus, to fill the original area we need,

\[N = A/a = f^2.\]

Thus, for the two-dimensional area we get, \(N = f^2\)

That is, if we scale the object by a factor $f$ in each direction, we need $f^2$ copies to reconstruct the complete object. Thus, we can generalize the concept of dimension and write. \(N = f^D\)

Hence, we can obtain the dimension of the object by,

\[D = \frac{\ln N}{\ln f} .\]

We will use this exact definition to find the dimension of the Koch curve.

For the curve, we will use the simple one-sided Koch curve.

Koch snowflake's one side. Use the slider to understand how to make one.

Initial line segment length is $L_0=1 unit$. After which the line segment is shrunk to (1/3) units and replicated four times. The length of the Koch curve is now $L_1 = (1/3)4$.

Okay, but as per our discussion, we should recreate the whole object, whereas we are doing something different here. The key point to consider is that we should shrink the full fractal, where the shrunken object is a replica of the original. Here, if we shrink the Koch curve by a factor of three, we need four such Koch curves to form the original ones. You can see that we found the relation between the number of copies needed and the scaling factor. Thus,

\[D = \frac{\ln N}{\ln f} = \frac{\ln 4}{\ln 3} = 1.26\]

Dimension $D$ is a fractional number. What does it mean?

We can ask a few questions. What is the length of the Koch Curve?

The line segment shrinks by three after each iteration, and there are $4^n$ segments at the end of $n$ iterations.

Thus, the total length is, \(L_n = 4^n \big(\frac{1}{3}\big)^n = \big(\frac{4}{3}\big)^n\)

Here the factor $(4/3)>1$ which means as $n\to\infty$ $L_{\infty}\to\infty$. That is, the Koch curve has infinite length in a finite region. On the other hand, it does not occupy the entire area. These statements indicate that it is more than a line but less than an area, and thus it occupies the dimension between a line and an area.

We can determine the fractal dimension using alternative methods, such as the box counting method. If interested, you can explore more on fractals.

You can find the code used for creating fractals on GitHub@JayeshMD.