Agnes Scott College
Larry Riddle, Agnes Scott College

Koch Snowflake IFS Details

\({f_1}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/2} & {- \sqrt 3 /6 } \\ {\sqrt 3 /6} & { 1/2} \\ \end{array}} \right]{\bf{x}} \)
   scale by \(1/ \sqrt{3} \), rotate by 30°
\({f_2}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ { 0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {1/\sqrt 3 } \\ {1/3} \\ \end{array}} \right]\)
   scale by 1/3
\({f_3}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ { 0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {0} \\ {2/3} \\ \end{array}} \right]\)
   scale by 1/3
\({f_4}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ {0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {-1/ \sqrt 3} \\ {1/3} \\ \end{array}} \right]\)
   scale by 1/3
\({f_5}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ { 0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {- 1/\sqrt 3} \\ {- 1/3} \\ \end{array}} \right]\)
   scale by 1/3
\({f_6}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ { 0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {0} \\ {- 2/3} \\ \end{array}} \right]\)
   scale by 1/3
\({f_7}({\bf{x}}) = \left[ {\begin{array}{*{20}{c}} { 1/3} & {0} \\ { 0} & { 1/3} \\ \end{array}} \right]{\bf{x}} + \left[ {\begin{array}{*{20}{c}} {1/ \sqrt 3} \\ {- 1/3} \\ \end{array}} \right]\)
   scale by 1/3

This particular IFS is motivated by the following diagram


Start with a regular hexagon inscribed in a unit circle (shown by the dotted lines). Six scaled copies of this hexagon can fit inside the original hexagon when scaled by 1/3. Using the six points where these smaller hexagons touch, construct another hexagon (shown in red). The sides of the red hexagon have length equal to \(\sqrt 3\) times the length of the sides of the smaller hexagons, that is, each side of the red hexagon has length \(\sqrt 3 \cdot (1/3) = 1/ \sqrt 3\). Thus the red hexagon has been scaled by \(1/ \sqrt 3\) and rotated by 30°.

Because the affine transformations for the 6 smaller hexagons involve only scaling by 1/3 and translations, each vertex of the initial hexagon is a fixed point for the transformation that translates the scaled version back to that vertex. If we look at a particular vertex V for the corresponding transformation f(x) = (1/3)x + b, then

\[V = f(V) = \frac{1}{3} V + b \quad \Rightarrow \quad b = \frac{2}{3} V\]

Starting with the vertex in the first quadrant, the vertices are located at the points \(\left( {\cos ({{30}^ \circ } + {{60}^ \circ }k),\sin ({{30}^ \circ } + {{60}^ \circ }k)} \right)\) for k = 0, 1, 2, 3, 4, 5. So the translation for the blue hexagon, for example, is

\[b = \frac{2}{3}\left[ {\begin{array}{*{20}{c}} {\cos {{30}^ \circ }} \\ {\sin {{30}^ \circ }} \\ \end{array}} \right] = \frac{2}{3}\left[ {\begin{array}{*{20}{c}} {\sqrt 3 /2} \\ {1/2} \\ \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {1/\sqrt 3 } \\ {1/3} \\ \end{array}} \right]\]

The other translations can be found in a similar way. The red hexagon does not need to be translated once scaled and rotated.

Why is the Koch snowflake the attractor for this IFS?

The Koch snowflake is constructed by starting with an equilateral triangle and adding scaled copies around the edges. The sets S(n) that come from iterating this construction n times form a Cauchy sequence in the Hausdorff metric and the limit is the Koch snowflake.

Let H(n) be the set obtained from applying the IFS described above to the initial set H(0) that is a filled regular hexagon as shown in the left figure below (this corresponds to the hexagon used in describing the IFS above). An equilateral triangle representing S(0) in the construction of the Koch snowflake can be inscribed in this hexagon as shown in the figure to the right.

hexagon0 iteration0

Applying the IFS to the hexagon to get H(1) and applying the first iteration for the Koch snowflake to get S(1) yields the following images which show again how S(1) fits exactly inside H(1).

hexagon1 iteration1

Continuing the iteration of both the IFS and the Koch snowflake construction shows that S(n) will fit inside H(n) and suggests that the two images will merge in the limit as n goes to infinity.

H(2), and S(2) inside H(2)
hexagon2 iteration2

H(3), and S(3) inside H(3)
hexagon3 iteration3

The Hausdorff distance between two compact sets A and B is given by

\[D(A,B) = \inf \left\{ {r:A \subseteq {N_r}(B) \text{ and } B \subseteq {N_r}(A)} \right\}\]

where for a set W, Nr(W) is the r-envelope of W; that is, the set of all points that are within a distance r of some point in W.



distance2 Let s be the length of the sides of the equilateral triangle in S(0). Because S(n) is a subset of H(n), then S(n) is also a subset of the r-envelope of H(n) for all values of r. Therefore we only need to look at the values of r for which H(n) is a subset of the r-envelope of S(n). The figure to the right indicates that the smallest such r value is given by the height of the isosceles triangles from that part of each small scaled hexagon that extends outside the scaled triangles in the Koch construction for S(n). Because these hexagons and triangles are scaled by 1/3 at each iteration, the distance between the two sets H(n) and S(n) is therefore given by \[d(H(n),S(n)) = \frac{s}{{2\sqrt 3 }} \cdot {\left( {\frac{1}{3}} \right)^n}\] We see that the distance goes to 0 in the limit as n goes to infinity. Since the sets S(n) converge to the Koch snowflake in this metric, this means that the sets H(n) will also converge to the Koch snowflake. Hence the Koch snowflake is the attractor for this iterated function system.