**Note:** The graphics on this page date from 1997. In 2008 I made some
closely related flash animations for visualizing
complex functions.

This is a collection of graphical demonstrations of concepts in complex analysis which I developed for a course I gave on that subject during the spring semester of 1997. (For graphical demonstrations of calculus concepts see my page on Graphics for the calculus classroom.) Please send any feedback concerning this page .

The most common method of visualizing a complex map is to show the image under the map of a set of curves, e.g., a set of line segments of constant real and/or imaginary part (a Cartesian grid), or a set of concentric circles and spokes (a polar grid). A weakness of this approach is that it can be difficult or impossible to infer which points of the original curves are mapped to which points of the final images. The graphics on this page use two techniques to overcome this problem. First, most are animated so that the original curves are continuously deformed into the image curves, and the eye can follow which points move where. Second, I use colors to distinguish different points and curves.

**Viewing instructions.** To view the animations on
this page your browser must be Java-enabled. When you select an
animation, there is a delay as the frames load. Once the animation
begins, you can change the speed by hitting the the period (faster)
or comma (slower) key (in the graphics area). You can stop and start
the animation by clicking the mouse, and once stopped, you can moved
through the frames manually with the bracket keys "[" and "]". An alternate version of this page using animated
GIFs is available as well. That version doesn't require that have
a working Java set-up, and the animations generally load much faster,
but it doesn't allow user control of the animation speed or frame
advance. An older version of this page using
the FLI animation format is also available, but no longer actively
maintained, and so not recommended.

As a first example, consider the simple function
.
We shall examine how a square with corners at
is transformed under this map. First we just look at the half of the square
in the right half plane, which is shown in the
first frame.
This region mapped one-to-one onto
the region contained between two parabolas, exhibited in
final frame. The lines of constant real part are
mapped onto parabolas opening along the negative real axis, and those with
constant imaginary part to parabolas opening along the positive real axis.
Note that these parabolas meet at right angles, a consequence of conformality
(see below). The frames of the animation
show the image of the half-square under a linear
combination of the identity map and the squaring map:
,
with *t* increasing from 0 to 1. In other word, this is an animation
of the linear homotopy taking the identity to the squaring map. Note that
the intermediate maps are again quadratic in *z* and hence conformal
at all but one point.

The next animation shows the deformation of the half of the square lying in the left half plane. This region is mapped one-to-one onto the same region and the right half of the square. Therefore the deformation of the entire square shows the square being folded over onto itself as it distorts, so as to cover the parabolically bounded region twice. If you pause the animation on the penultimate frame, the two-to-one character of the map is evident.

The squaring map behaves more simply when applied to a polar grid, since it takes circles of constant modulus to circles of constant modulus, and rays of constant argument to rays of constant argument. We animate the deformation of the disk of radius 2 centered at the origin and overlaid with a polar grid. The animations show the deformation of the half disk in the right half plane, the deformation of the half disk in the left half plane, and the deformation of the entire disk.

A better view of the same map comes when the disk is colored, here by a hue which varies with the argument (so the color is constant on each array emanating from the origin). An animation of the colored disk, displays clearly how the disk is folded over on itself to cover the image disk twice (again, pause a few frames from the end). The discontinuity in the coloring in the final frame reflect the impossibility of defining a continuous square root function on the disk. By looking at the last few frames, it is also possible to get a pretty clear idea of the Riemann surface for the squaring map (a surface which, when realized in 3 dimensional space, intersects itself along the negative real axis).

The same techniques of visualization apply to other complex maps. For example, the complex exponential maps the infinite open strip bounded by the horizontal lines through one-to-one onto the plane minus the negative real axis. The lines of constant real part are mapped to circles, and lines of constant imaginary part to rays from the origin. In the animation we view a rectangle in the strip rather than the entire strip, so the region covered is an annulus minus the negative real axis. The inner boundary of the annulus is so close to the origin as to be barely visible. We also make the strip a bit thinner than , so that the annulus does not quite close up.

The next animations show two-to-one coverings of a disk by the complex cosine and complex sine restricted to a rectangle of width and height 2 centered at the origin.

An important property of analytic functions is that they are conformal maps everywhere they are defined, except where the derivative vanishes. A conformal map is one that preserves angles. More precisely, if two curves meet at a point and their tangents make a certain angle there, then the angle between the images curves under any analytic function (with non-vanishing derivative) will be the same in both sense and magnitude. A consequence of conformality, namely the preservation of orthogonality of intersecting coordinate lines, was visible in all the animations above. Another nice example is given by the power map , which is conformal everywhere except at the origin. Here we apply the map to a square grid in the first quadrant, with the power a varying from 1 to 3.9. Notice how all the right angle intersections remain right angles throughout the deformation, except the angle made by the green lines meeting at the origin, where the power maps are not conformal.

My favorite demonstration of conformality is to view the
deformation of four small squares
under a cubic polynomial
in the complex variable *z* (namely ).
Notice that the squares deform only by dilating and rotating. This is another
way to express conformity. By contrast, if we replace the quadratic term
of the polynomial by its conjugate (so ),
we get another cubic polynomial map, but this one is not analytic, and
clearly not conformal.
Note also, that conformality is a local property. If we think of the four
small squares as the vertices of a larger square, that square is vastly
deformed, not just dilated and rotated.

Möbius transformations are widely studied as useful examples of conformal maps. A key property is that they map circles in the Riemann sphere into circles in the Riemann sphere, or, equivalently, that the image of a line or circle in the plane is another line or circle. This animation shows the identity map (a Möbius transformation!) being deformed into a less trivial Möbius transformation. The homotopy is chosen so that all the intermediate steps are Möbius transformations as well. The animation shows the unit square deformed into a closed curve composed of four circular arcs. The inside of the square is mapped to the region outside of the curve, and a region about infinity is mapped to the interior of the curve. The specific family of Möbius transformations displayed is

According to the Riemann mapping theorem, there exists a conformal map
from the unit disk to any simply connected planar region (except the
whole plane). However, finding such a map for a specific region is
generally difficult. An important special case where a formula is
known is when the target region is polygonal. In that case
we have the *Schwarz-Christoffel formula*, written as

Here the polygon has *n*
vertices, the interior angles at the vertices are
,...,
,
in counterclockwise order, and *c* is a complex
constant. The numbers
,...,
are the
pre-images of the polygon's vertices, or
*prevertices*, which lie in order on the unit circle.

The Schwarz--Christoffel formula has been known since the 1860's but has had relatively little use until recently. First of all, the integral in the formula rarely has a closed form. Even more fundamentally, the prevertices are usually impossible to deduce analytically from the polygon. The locations of the prevertices affect the side lengths (but not the angles) of the image polygon in a highly nonlinear way. To find them in general, you must solve a nonlinear system of equations numerically. Toby Driscoll has written a MATLAB software package for numerical Schwarz-Christoffel mapping. This package was used to create the animations that follow.

The first animation illustrates the effect of the prevertices. The prevertices start in a random configuration, and the resulting image polygon is shown. Then the prevertices are moved (linearly in argument) into a configuration leading to a symmetric "X." Notice how the angles remain fixed, but the side lengths vary nonlinearly into the final configuration.

A variation on the first animation is to leave the prevertices fixed and vary the angles assigned to them. Here we "square" the ends of the X into right angles. The color of a (pre)vertex indicates its distance from being a right angle.

The last sequence shows the linear homotopy from the disk to the X. The color indicates the radius of a point's image in the disk. Notice how the arms of the X originate from points quite close to the boundary of the disk.

Visual Complex Analysis Plotting functions of a complex variable

Finally, for those interested in the technical details, or perhaps for making graphics of one's own, you can see how these graphics were made.

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.

January 29, 1997. Last modified February 7, 2000 by