Lecture 23: the argument principle

Complex analysis, lecture 2
(April 22, 2026)

Let f:D be an analytic function, and suppose we want to study the zeros of f. One method would be to study integrals of 1f along some closed contour; then the residue theorem in a sense “counts” the poles of 1f inside this contour, and so “counts” the zeros of f. However, this counting is really adding up the residues, which is pretty different: for example, it’s easy for the residues at different poles to cancel out.

A different way to turn zeros into poles is to take the logarithm. However, the logarithm of even a simple zero is actually an essential singularity, so this isn’t ideal; and of course the logarithm needs a branch cut to be analytic. We could solve both of these problems by differentiating: while e.g. log(zz0) is not as well-behaved as we would like, ddzlog(zz0)=1zz0 is as well-behaved as we could ask, for a pole. Does this avoid the residue issue above?

More generally, if f is analytic on D and has a zero at z0, the analogue of the above is ddzlogf(z)=f(z)f(z). Since f and f are analytic, we can try to evaluate the residue of ff at z0. For example, if f has a simple zero at z0, then ff has residue f(z0)f(z0)=1! So the logarithmic derivative turns simple zeros into simple poles of residue 1, so the sum of the residues at these poles really does give a count of the zeros.

What about higher order zeros? If f has a zero of order n at z0, i.e. f(z)=g(z)(zz0)n for some analytic function g(z) with g(z0)0, then

f(z)f(z)=g(z)(zz0)n+ng(z)(zz0)n1g(z)(zz0)n=g(z)g(z)+nzz0.

Since g(z0)0, the first term is analytic at z0, and so the residue of ff at z0 is equal to the residue of nzz0, i.e. n. Therefore summing up the residues of ff is equivalent to counting the zeros of f, with multiplicity.

We could also allow f to be meromorphic, rather than holomorphic, on D, i.e. have poles as well as zeros. Viewing a pole of order n as a zero of order n, the same argument above implies that if f has a pole of order n at z0, then ff has a simple pole at z0 with residue n. Therefore for a meromorphic function f we can think of summing up the residues of ff as the number of zeros of f, with multiplicity, minus the number of poles, with multiplicity. In other words, via the residue theorem, we have proven the following theorem:

Theorem (Argument principle).

Let D be a bounded domain with piecewise smooth boundary and f a meromorphic function on D which extends to an analytic function on D, with f(z)0 for zD. Let N0 be the number of zeros of f in D, counted with multiplicity, and N the number of poles, also counted with multiplicity. Then

12πiDf(z)f(z)𝑑z=N0N.

Indeed, by the residue theorem the left-hand side is the sum of the residues of ff, which gives the right-hand side by the discussion above.

More generally, for a closed path γ in D along which f is analytic and nonzero, we call

12πiγf(z)f(z)𝑑z

the logarithmic integral of f along γ. Since the integrand is the logarithmic derivative, we could rewrite it as

12πiγdlogf(z).

Note however that logf(z) need not be analytic on D, hence we cannot simply evaluate this by the fundamental theorem of calculus (or else it would be zero for γ closed); dlogf(z) is a closed differential, but is not exact in general.

To justify the terminology, recall that logz=log|z|+iargz, so logf(z)=log|f(z)|+iargf(z). Therefore we can rewrite the above as

12πiγdlog|f(z)|+12πγdargf(z).

The first differential dlog|f(z)|, despite the non-analyticity of log|f(z)|, is exact, and so the integral does not depend on the path, only on the endpoints of γ: if γ:[a,b], then this is 12πi(log|f(γ(b))|log|f(γ(a))|), so in particular for a closed path this is 0. So we are left with the argument integral

12πγdargf(z),

which is not exact: argf(z) is multivalued, and it may well happen that as we go around γ, the ending value of argf(z) is different from the starting value, even though these are at the same point. Consider for example f(z)=z and γ the unit circle.

However, if we fix a continuous single-valued branch A(t) of argf(γ(t)), then this integral is simply given by 12π(A(b)A(a)). Since two different choices of A(t) differ by a constant, this is well-defined; up to the factor of 12π, it is called the increase in argument of f along γ. (So for f(z)=z and γ the unit circle as above, this would be 2π, hence the integral would be 1, compatibly with the argument principle.) By splitting the curve γ into pieces and adding up the increases in argument of f along each, we can often evaluate this integral, and hence apply the argument principle, without too much direct calculation.

To illustrate the theorem, consider the polynomial p(z)=z6+9z4+z3+2z+4. How many zeros does p have (counting multiplicity) in the first quadrant 0<argz<π/2?

Note first that p has no zeros on the positive real line, since for x0 we have p(x)4. On the positive imaginary line, if z=ix for x0 we have p(ix)=x6+9x4ix3+2ix+4, so with real part x6+9x4+4 and imaginary part x3+2x. The imaginary part vanishes at x=0 or x=±2, and one can check that at both of these points the real part is nonzero, so p(xi)0 for all x0 as well.

Let D be the region |z|<R, 0<argz<π/2; so we want to count the limit of the number of zeros of p contained in D as R. We know that p has no zeros along either of the straight edges contained in D; the remaining part of the boundary is the arc from R to Ri of angle π/2 and radius R, and since p has finitely many zeros there are no zeros on this arc once we choose R large enough. Therefore we can apply the argument principle: since p is holomorphic on D,

12πiDp(z)p(z)𝑑z=12πiDdlogp(z)

is the number of zeros of p in D.

For z positive real, p(z) is positive real, so argp(z)=0 and there is no increase in the argument as z moves from 0 to R along the real axis. Along the quarter-circle of radius R, for |z|=R large enough p(z)z6, so argp(z)arg(z6)=6argz, so the increase in argument is approximately 6π2=3π. (This approximation is good enough because after dividing by 2π, the integral should give an integer, so we can just take the nearest integer multiple of 2π at the end.) Finally, along the imaginary axis as z goes from Ri to 0, we saw above that p(ix)=x6+9x4+4+(x3+2x)i for x>0 has imaginary part zero only at 2; for x>2 it is negative, and for 0<x<2 it is positive. At Ri, p(Ri)(Ri)6=R6, with argument approximately π, and the above shows that as x goes from R to 2, p(xi) remains in the lower half-plane, and p(i2)=23+922+4=32 with argument 2π, so the increase in argument along this line segment is π. Finally, as x goes from 2 to 0, at both endpoints p(z) is positive real, and in between it remains in the upper half-plane, so the increase in argument is 0.

Therefore we have found that the total increase in argument is (in the limit as R) 0+3π+π+0=4π, and so the number of zeros in the first quadrant is 4π2π=2. With the help of a computer, one could compute that these are at approximately z0.0426+3.0087i and z0.56725+0.64665i.

A more conceptual application is Rouché’s theorem.

Theorem.

Let D be a bounded domain with piecewise smooth boundary, and let f,h be analytic functions on DD such that |h(z)|<|f(z)| for zD. Then f and f+h have the same number of zeros in D (counted with multiplicity).

In other words, we can perturb f by a function which is “small” relative to f in a certain sense without changing the number of zeros.

Proof.

Note that the assumptions imply f(z)0 for zD. We have f(z)+h(z)=f(z)(1+h(z)f(z)), and since |h(z)|<|f(z)| the second factor is in a disk of radius 1 centered at 1, and so in particular is in the right half-plane. Therefore arg(f(z)+h(z))=argf(z)+arg(1+h(z)f(z)), and the increase in argument of the second term as z moves along D is 0. Therefore the total increase in argument of f+h is the same as that of f, so the claim follows from the argument principle. ∎

A fun consequence is the following slick proof of the fundamental theorem of algebra. Let p(z)=anzn+an1zn1++a1z+a0. On the boundary of a disk of sufficiently large radius R centered at the origin, we have |anzn|>|an1zn1++a0|, so f has the same number of zeros within this disk as anzn, which of course has n zeros with multiplicity, namely a single zero of order n at z=0.

A more concrete application is the following. Consider the equation ez=1+2z. What are the solutions with |z|<1?

One solution is given by z=0. Are there any others?

Rewriting this as ez12z=0, we want to write the left-hand side as f+h for some f and h satisfying the hypotheses of Rouché’s theorem: that is, on the unit circle, |h|<|f|. Choosing f(z)=2z and h(z)=ez1 works: for |z|=1, we have |2z|=2 and |ez1|=|z+12z2+16z3+||z|+12|z|2+=e|z|1=e1<2. So ez12z has the same number of zeros in the unit disk as 2z, which has only a single zero at z=0, so we can answer the question above in the negative: z=0 is the only solution of ez=1+2z in the unit disk. (It is not however the only solution in , e.g. z1.25643 also works; in fact there are infinitely many solutions.)