Suppose f is analytic (poles are also allowed). Let γ be a simple closed curve which does not pass through any zero or pole of f. Let N (and P) be the number of zeros (poles) of f inside γ, counted with multiplicity. Then, as z goes one lap counterclockwise around γ, the image curve f ( γ ) winds N − P times around w = 0.

With our use of colors to keep track of arg f ( z ), this is the same as saying that the colors sweep through the color gradient N − P times as we move around γ. Counting sweeps (from black through red to yellow) is especially easy with our discontinuous coloring: jumping from yellow to black adds one, and jumping from black to yellow subtracts one (since then we are sweeping backwards).

In figure 15 there are two curves which illustrate this. (You can make up your own curves and try them on any function in this document.) The upper curve encircles the double zero and one simple zero, so N − P = (2+1) − 0 = 3, and the number of yellow-to-black crossings is also three. The lower curve encircles the other simple zero and the triple pole, so N − P= 1 − 3 = −2, which is OK with the picture since black-to-yellow crossings count as negative.

Figure 15: The argument principle. Within each curve, the black numbers have the same sum as the blue numbers.

The rather boring first image in figure 16 shows the exponential function f ( z ) = ez = ex ( cos y + i sin y ). The period 2π i is clearly visible, as well as the exponential growth of absolute value from left to right; recall that | f | doubles for each shaded band, so that at the left edge it is very small (e−10 ) and at the right edge it is very large (e10).

Since the exponential is periodic, it is many-to-one. Consequently, it is not invertible, but its restriction to (for example) the strip −π < y ≤ π is. The inverse of that particular restriction is called the principal branch of the logarithm, and is shown in the second image. Note the discontinuity at the branch cut along the negative real axis (colored blue). The singular point z=0 is called a (logarithmic) branch point.

The trigonometric functions are defined for complex arguments through Euler's formulas

cos z =

eiz + e−iz

2

, sin z =

eiz − e−iz

2i

.

Figure 17 shows the complex sine function. Note the period 2π, the simple zeros at π n, and the critical points at π / 2 + π n (n integer). Along the real axis we have the familiar sine wave oscillating between −1 and +1, but for complex values the sine function is no longer bounded within those limits. In fact, according to the formula

| sin z |2 = sin2x + sinh2y

it goes off exponentially in the vertical directions, as is clearly visible in the picture.

Exercise: Find the points where sin z= 2.

(Hints: w = 2 is on the positive real axis, hence the points we are looking for must lie on some yellow-black border. We have sin z = 1 at z = π / 2 + 2π n (the yellow-black crossings), and the absolute value doubles for each shaded band that we pass from dark to bright. The grid might also be helpful.)

The semi-infinite strip −π / 2 < x < π / 2, y > 0 (marked with blue in the third picture) is mapped to the upper half plane - I hope you can visualize how the grid can be restored by bending the two vertical half-lines x = ± π / 2, y > 0 down to the real axis and stretching the region between them accordingly. By left-right translation and by reflection in the real axis we obtain similar strips; where are these strips sent by the sine function? (If you know about Riemann surfaces, use this to figure out what the Riemann surface for arcsin zlooks like.)

Pictures of the cosine function would look exactly the same except for a translation, since cos z = sin ( z+ π / 2 ).

Figure 18 shows two images of the complex tangent function tan z = sin z / cos z, with period π. The first picture shows argument and absolute value as usual. The second one shows argument together with a grid of unit side length, the region colored blue being mapped into the square with corners 0, 1, i, 1+i.

For tan z all the action takes place near the real axis, with simple zeros at πn and simple poles at π / 2 + π n. Some distance away from the real axis, the function is nearly constant (+i in the upper half plane, −i in the lower half plane):

tan ( x + iy ) =

tan x + i tanh y

1 − i tan x tanh y

→

tan x ± i

1 − (± i tan x )

= ± i, y → ± ∞.

The lines x = π / 4 and x= −π / 4 are mapped to the right and left part of the unit circle, respectively.

If f ( z ) is known to be analytic in some disc (the interior of a circle) D, except maybe at the center z0, then there are three possible cases:

f ( z ) is bounded near z0, in which case it is actually analytic there, and hence in all of D. (Riemann's removable singularities theorem.)

f ( z ) is unbounded near z0, but ( z − z0 )kf ( z ) is analytic for some k > 0. Then z0 is called a pole of order k.

Neither of the above. Then z0 is called an essential singularity.

Figure 19 shows a function with an essential singularity at the origin. Clearly, some fairly complicated stuff seems to be going on near the singularity! Maybe we could get a better view if we zoomed in a bit? No, in fact that wouldn't help much, because of the remarkable Picard's great theorem(there is also a Picard's little theorem):

In any disc with center at the essential singularity z0, no matter how small, f assumes all (or possibly all but one) complex values.

You may have noticed a curious thing about the shading that I use to indicate the absolute value of functions: if some band forms a closed curve ("a shaded ring"), then there is always at least one zero or singularity inside. In fact, we recognize zeros and poles as points where shaded rings "gather round".

This is a manifestation of the maximum principle, which says (briefly):

If f is analytic, then | f | has no local maxima.

A more precise statement is the following:

Let M be a domain (an open connected set) in the complex plane, and suppose that f is analytic in M (no singularities allowed!). Then | f | has no maximum value in M, except in the trivial case that f is constant.

If f has no zeros in M, then 1/f is analytic in M and has no maximum, which implies that | f | has no minimum in M either. (But if f has zeros in M, then they are of course minima of | f|.)

Another corollary is that if M is bounded, and f extends continuously out to the boundary of M, then | f | attains its maximum on the boundary (and its minimum too, if f has no zeros in M).

I will close this little tour with a look at a less common function, namely the gamma function Γ, which is defined by

Γ( z ) =

⌠⌡

∞

0

tz−1e−tdt.

This integral is convergent only for z in the right half plane, but the gamma function can be analytically continued to the left half plane as well, using the property Γ( z + 1 ) = z Γ( z ) (which is easily proved using integration by parts). For example, Γ( −0.1 ) is defined to be Γ( −0.1 + 1 ) / 0.1 = 10 Γ( 0.9 ), where Γ( 0.9 ) is already defined by the integral above, and so on. This works fine unless z is zero or a negative integer, since then we are eventually forced to divide by zero; the gamma function has simple polesat these points.

For nonnegative integers n we have Γ( n + 1 ) = n! , so that the gamma function is a continuous version of n-factorial. Another exactly known value is Γ( 0.5 ) = √{π}.

You may have tried the following on your pocket calculator sometime: type in an arbitrary positive number, and then push the "square root" button over and over. (This is called iterating the square root function.) If you start with a number greater than 1, it will become smaller for each key-press, until it is so close to 1 that the calculator thinks that is actually is 1. Similarly, if you start with a number between 0 and 1, the sequence will approach 1 from below. Pushing some other button, for example "cos", leads to less obvious (and more interesting) results. Even more interesting things happen when we go into the complex plane and iterate analytic functions. The notation f(n)( z ) is used to denote the n-th iterate of f, that is,

Figure 22 depicts the function obtained by iterating f twenty times. This function is a polynomial of degree 220, so it has 220 = 1048576 zeros! About a hundred of them can be distinguished in the picture (here is a larger picture).

The black region is not really supposed to be there - it consists of the points where an overflow error occurs because the value of the function is too large to represent with standard precision floating point arithmetic. However, for large z the behaviour of the function is dominated by the contribution from the leading term z1048576, which is a monomial, so by now you should be able to figure out what the function will eventually look like if we zoom out enough, even if we can't computeit without some special software.

What happens when we iterate this polynomial further? It is not hard to realize that f(n)( z ) → ∞ as n → ∞ if, for example, | f(k)( z ) | > 2 for some k, since after that the absolute value will keep increasing. This holds of course if z is one of the black overflow points, and actually for most other z as well. Those z for which f(n)( z ) does not tend to infinity constitute the filled Julia set of f, which is shown in figure 23. Actually, the Julia set here consists of "fractal dust" hidden deep inside the bright "islands" in the picture, so what we see is rather the complement of the Julia set. Colors indicate rate of divergence; for greenish points the iterates f(n)( z ) become very large already after a few steps (compare with the black overflow region in figure 22), for reddish points the iterates diverge more slowly.

Figure 23: The filled Julia set of f ( z ) = z2 − 0.75 − 0.2i.

For other values of c, the behavior of the iterates can be quite different. When varying c and investigating the iterates of fc ( z ) = z2 + c, one obtains the famous Mandelbrot set, which contains those c for which fc(n)( 0 ) does not diverge to infinity.