For iterated function systems, the mappings are affine linear functions. Therefore, it is important to determine when these are contractions and what there contractivity factors are. Choose an affine linear map:
The first thing to observe is that if we compose w with an
isometry T, the resulting map
changes distances in the same way:
Isometries consist of translations and reflections and rotations. We have already seen how to choose a translation so that
So we shall assume that w already satisfies this equation. That comes down to e=f=0. That is,
The easiest case is when b=c=0. Then w(x,y)=(ax,dy) corresponds to a diagonal matrix. We see that w(1,0)=a(1,0) and w(0,1)=d(0,1). The map w has a separate scaling factor along the x-axis and along the y-axis. Then
So the contractivity factor is
if both diagonal
coefficients have absolute value less than 1.
In linear algebra courses, we spend a great deal of time learning how
to change coordinates so that general linear transformations become
diagonal ones. This is the theory of eigenvalues (the eventual
entries on the diagonal) and eigenvectors. This is related to
the problem of determining whether or not a linear transformation is a
contraction; however, we will approach the problem from the point of
view of finding the maximum scaling factor. Writing points as column
vectors, suppose we have
and
. Suppose the matrix of our transformation w is
. Then
using matrix multiplication. The two distances we must compare are
using the usual notation for transpose of a matrix, and
remembering that transpose switches the order of matrix multiplication. We want the maximum of
is a symmetric matrix with the property that
for all vectors v. Let's suppose
that
and that
. Then we want the maximum
of
subject to
. Multiplying out, the function we must maximize
is
This problem is best handled by the theory of Lagrange multipliers,
which says that at any extreme point of F subject to
we must have
This means
In matrix form, this may be written
This is exactly what it means for
to be an eigenvector
of
, and the number
is the associated eigenvalue.
The scaling factor at the solution
is actually
. So we can determine whether or not w is a
contraction by computing the eigenvalues of
. We end this
section with an example. Consider
(this actually arises in the fern IFS). Then
The eigenvalue equation is
The roots are
The square root of the larger value is the contractivity factor; this is roughly 0.34.
In summary, an affine map with
coefficient matrix A is a
contraction provided both the eigenvalues of
are strictly less
than 1. The best choice of contractivity factor is the square root of
the larger eigenvalue.