Fractal Antennae and Coherence 1 Fractal Antennae and Coherence
Automated Generation of Two- and Three-Dimensional Fractal...
Transcript of Automated Generation of Two- and Three-Dimensional Fractal...
Automated Generation of Two-and Three-Dimensional Fractal
Tilings
Jonathan HafnerDepartment of Theoretical and
Applied MathematicsThe University of Akron
Email: [email protected]: Dr. Thomas E. Price
Objectives:
• Explain fractal generation method• Introduce residue vector determination
algorithm• Extend to three dimensions
Generating a two-dimensional tiling:
1. Choose an appropriate 2×2 integer matrix– Absolute value of determinant greater than 1– Expansive map (each eigenvalue has modulus
greater than 1)2. Determine principal residue vectors
– Plot parallelogram determined by column vectors
– Find integer vectors "inside" parallelogram
−1221
3. Choose a point x on the plane. Let M be our integer matrix, m = det(M), and rn be the nth residue vector. (Note that n ∈ {0, 1, 2, ... , |m| - 1 }.) Iterate on the function system fn(x) = M-1x + rn by randomly choosing a function for each iteration. Plot these points, associating each fn with a color.
−1221
=
−−
=
=
−
−
01
21
11
21
111
2221
1211
21
111
1121
1222
aa
aa
aaaa
aa
M
ma
ma
ma
ma
In searching for a better algorithm for residue vector determination, first observe that M-1 maps our parallelogram onto the unit square. For example,
The other corners of the parallelogram map to the other corners of the unit square in a similar fashion.
Consider some integer vector (s, t) inside our parallelogram (i.e., a principal residue vector). Then
Note that this can be rewritten in the form (i/m, j/m), for some i, j ∈ {0, 1, 2, ... , |m| - 1 }.
=
=
−
−
−
−
msata
mtasa
ts
aaaa
ts
M
2111
1222
1
2221
12111
To illustrate:
1−M
M
−=
1221
M
To find our residue vectors, then, we simply reverse the process: Let b = (i/m, j/m), for some i, j ∈ {0, 1, 2, ... , |m| - 1 }. Then
If each of these entries is an integer, then Mb is a principal residue vector.
=
=
+
+
mjaia
mjaia
mj
mi
aaaa
M
2221
1211
2221
1211b
This leads us to the following algorithm, presented here in C++:
int n = 0;for (int i = 0; i < Det; i++)for (int j = 0; j < Det; j++){
if ( ( (a11*i + a12*j) % Det == 0 ) &&( (a21*i + a22*j) % Det == 0 ) )
{res[n].x = (a11*i + a12*j) / Det;res[n].y = (a21*i + a22*j) / Det;n++;
}}
(Here, Det = |m|, and res[] is the array of residue vectors.)
Sample application of this algorithm:
−=
8558
M
Extension to Three Dimensions
Nearly everything here applies to three dimensions as well, with the following modifications:
• 3×3 integer matrices are used, whose columns determine a parallelepiped
• all vectors have three components• the inverse matrix maps the parallelepiped
onto the unit cube
=
=
−
−
001
31
21
111
333231
232221
131211
31
21
111
aaa
aaaaaaaaa
aaa
M
In rough parallel to our discussion of the two-dimensional case, first consider the first column of M, which is mapped to one corner of the unit cube by M-1:
The other corners of the parallelepiped map to the other cornersof the unit cube in a similar fashion.
It can be shown (with a fair amount of tedious computation) thateach residue vector is mapped by M-1 to a vector of the form (i/m, j/m, k/m) for some i, j, k ∈ {0, 1, 2, ... , |m| - 1 }. Hence, to find our residue vectors, we again reverse the process, letting b = (i/m, j/m, k/m), for some arbitrary i, j, k. Then
As before, if each of these entries is an integer, then Mb is a principal residue vector. This allows us to extend our algorithm to the three-dimensional setting, where it is much more useful.
=
=
++
++
++
mkajaia
mkajaia
mkajaia
mkmj
mi
aaaaaaaaa
M
333231
232221
131211
333231
232221
131211
b
int n = 0;for (int i = 0; i < Det; i++)
for (int j = 0; j < Det; j++)for (int k = 0; k < Det; k++){
if ( ( (a11*i + a12*j + a13*k) % Det == 0 ) &&( (a21*i + a22*j + a23*k) % Det == 0 ) &&( (a31*i + a32*j + a33*k) % Det == 0 ) )
{res[n].x = (a11*i + a12*j + a13*k) / Det;res[n].y = (a21*i + a22*j + a23*k) / Det;res[n].z = (a31*i + a23*j + a33*k) / Det;n++;
}}
−120210
212
View from the positive xdirection of
−120210
212
Future Projects
• Improve interface and functionality of generator programs
• Explore properties of three-dimensional fractal tilings
Automated Generation of Two-and Three-Dimensional Fractal
Tilings
Jonathan HafnerDepartment of Theoretical and
Applied MathematicsThe University of Akron
Email: [email protected]: Dr. Thomas E. Price