Counting zeros and poles by watching an argument turn
complex analysis
lecture notes
Author
Nusret Balcı
Published
10 September 2026
Abstract
The argument principle converts a counting problem — how many zeros and poles does \(f\) have inside a contour? — into a single contour integral, and then into a purely visual question about how many times a curve winds around the origin. These notes give the statement, a short proof via the residue theorem, and a worked example verified numerically.
Setting and notation
Throughout, \(\gamma\) is a positively oriented simple closed contour in \(\C\), and \(\Omega\) is an open set containing \(\gamma\) together with its interior. We write \(\operatorname{int}\gamma\) for that interior.
Definition 1 (Order of a zero or pole) Let \(f\) be meromorphic near \(a\in\C\) and not identically zero. There is a unique \(m\in\Z\) and a function \(g\), holomorphic and non-vanishing near \(a\), with \[
f(z) = (z-a)^m\, g(z).
\tag{1}\] We call \(m = \ord_a f\) the order of \(f\) at \(a\). If \(m>0\) then \(a\) is a zero of order \(m\); if \(m<0\) then \(a\) is a pole of order \(-m\); if \(m=0\) then \(f(a)\neq 0\).
The whole proof rests on one computation, which is worth isolating.
Lemma 1 (Logarithmic derivative) With \(f\) and \(a\) as in Definition 1 and \(m=\ord_a f\), the logarithmic derivative\(f'/f\) is meromorphic near \(a\) with at worst a simple pole there, and \[
\Res_{z=a} \frac{f'(z)}{f(z)} = m .
\tag{2}\]
Proof. Differentiating Equation 1, \[
f'(z) = m\,(z-a)^{m-1} g(z) + (z-a)^m g'(z),
\] and dividing by \(f(z)=(z-a)^m g(z)\) — legitimate on a punctured neighbourhood of \(a\), where \(g\) does not vanish — gives \[
\frac{f'(z)}{f(z)} \;=\; \frac{m}{\,z-a\,} \;+\; \frac{g'(z)}{g(z)} .
\tag{3}\] Since \(g\) is holomorphic and non-vanishing near \(a\), the term \(g'/g\) is holomorphic there and contributes nothing to the residue. The residue is therefore the coefficient \(m\) of \((z-a)^{-1}\).
Notice how little Lemma 1 asks for: no estimate, no growth condition. Passing from \(f\) to \(f'/f\) turns multiplicative structure — the factor \((z-a)^m\) — into additive structure, a simple pole of residue \(m\). Everything else follows from the residue theorem.
The principle
Theorem 1 (Argument principle) Let \(f\) be meromorphic on \(\Omega\) with no zeros and no poles on \(\gamma\). Then \(f\) has finitely many zeros and poles in \(\operatorname{int}\gamma\), and \[
\frac{1}{2\pi i}\oint_{\gamma} \frac{f'(z)}{f(z)}\dd z \;=\; Z - P,
\tag{4}\] where \(Z\) and \(P\) count the zeros and the poles of \(f\) inside \(\gamma\), each with multiplicity.
Proof. First, finiteness. The set \(K=\gamma\cup\operatorname{int}\gamma\) is compact. If \(f\) had infinitely many zeros in \(\operatorname{int}\gamma\) they would accumulate at some \(w\in K\); since \(f\not\equiv 0\), the identity theorem rules out an accumulation of zeros at a point where \(f\) is holomorphic, and an accumulation at a pole is impossible because poles are isolated. The same argument applies to the poles, which are isolated by definition.
So let \(a_1,\dots,a_n\) be the zeros and poles of \(f\) inside \(\gamma\), with orders \(m_1,\dots,m_n\). By Lemma 1, \(f'/f\) is holomorphic on a neighbourhood of \(K\) except at the \(a_k\), where it has simple poles with residues \(m_k\). As \(f\) has no zeros or poles on\(\gamma\), the integrand is continuous there and the residue theorem applies: \[
\frac{1}{2\pi i}\oint_\gamma \frac{f'}{f}\dd z
\;=\; \sum_{k=1}^{n} \Res_{z=a_k}\frac{f'}{f}
\;=\; \sum_{k=1}^{n} m_k .
\] Splitting the sum by sign — positive orders are zeros, negative orders are poles — gives exactly \(Z-P\).
Why “argument”?
The name comes from reading Equation 4 backwards. Substituting \(w=f(z)\) turns the integral into one over the image curve \(f\circ\gamma\): \[
\frac{1}{2\pi i}\oint_{\gamma}\frac{f'(z)}{f(z)}\dd z
\;=\; \frac{1}{2\pi i}\oint_{f\circ\gamma}\frac{\dd w}{w}
\;=\; n\bigl(f\circ\gamma;\,0\bigr),
\] the winding number of \(f\circ\gamma\) about the origin. And since a local branch of \(\log w = \log\abs{w} + i\arg w\) has \(\abs{w}\) returning to its starting value around a closed curve, only the argument can have changed: \[
Z - P \;=\; \frac{1}{2\pi}\,\Delta_{\gamma}\arg f(z),
\] where \(\Delta_\gamma \arg f\) is the net change in \(\arg f(z)\) as \(z\) traverses \(\gamma\) once. Counting zeros and poles is the same as counting turns.
A worked example
Take \[
f(z) \;=\; \frac{z^{3}-1}{\bigl(z-\tfrac12\bigr)^{2}},
\qquad \gamma:\ \abs{z}=2 .
\] Inside \(\gamma\) the numerator vanishes at the three cube roots of unity, each simply, so \(Z=3\); the only pole is \(z=\tfrac12\), of order \(2\), so \(P=2\). The argument principle predicts \[
\frac{1}{2\pi i}\oint_{\abs{z}=2}\frac{f'}{f}\dd z \;=\; 3-2 \;=\; 1,
\] so the image curve \(f\circ\gamma\) should wind exactly once about the origin.
Figure 1: The contour \(\gamma\) and its image. Three zeros (\(\circ\)) and a double pole (\(\times\)) lie inside \(\gamma\), so \(Z-P=1\) — and \(f\circ\gamma\) duly encircles the origin exactly once.
We can check Equation 4 numerically. Parametrising \(\gamma\) by \(z(t)=2e^{it}\) and integrating \(f'/f\) by the trapezoid rule should return \(2\pi i\):
import numpy as npA =0.5def f(z):return (z**3-1) / (z - A) **2def f_prime(z):return3* z**2/ (z - A) **2-2* (z**3-1) / (z - A) **3t = np.linspace(0, 2* np.pi, 200_001)z =2* np.exp(1j* t)dz =2j* np.exp(1j* t) # dz/dtI = np.trapezoid(f_prime(z) / f(z) * dz, t) / (2j* np.pi)print(f"contour integral / 2*pi*i = {I.real:+.10f}{I.imag:+.10f}i")print(f"Z - P = {3-2}")
contour integral / 2*pi*i = +1.0000000000+0.0000000000i
Z - P = 1
Agreement to ten decimal places, as it should be: the left-hand side is an integer in disguise.
Rouché’s theorem as a corollary
The argument principle is most often used through its best-known consequence.
Corollary 1 (Rouché’s theorem) Let \(f,g\) be holomorphic on \(\Omega\) and suppose \[
\abs{g(z)} < \abs{f(z)} \qquad \text{for all } z\in\gamma .
\] Then \(f\) and \(f+g\) have the same number of zeros inside \(\gamma\), counted with multiplicity.
Proof. The hypothesis forces \(f\neq 0\) on \(\gamma\), and also \(f+g\neq 0\) there, since \(\abs{f+g}\geq\abs{f}-\abs{g}>0\). So the argument principle applies to both. Write \(h = (f+g)/f = 1 + g/f\). On \(\gamma\) we have \(\abs{h-1}=\abs{g/f}<1\), so \(h(\gamma)\) lies in the open disc of radius \(1\) about \(1\) — a disc that misses the origin entirely. A curve confined to a disc not containing \(0\) cannot wind around \(0\), so \(n(h\circ\gamma;0)=0\). Since both functions are zero-free on \(\gamma\) and \(\log h\) is well defined there, winding numbers add: \[
Z_{f+g} - Z_f \;=\; n(h\circ\gamma;0) \;=\; 0 . \qquad
\]
TipWhere this gets used
Rouché is the standard tool for locating roots: to see that \(z^{5}+3z+1\) has exactly one root in \(\abs{z}<1\), take \(f(z)=3z\) and \(g(z)=z^{5}+1\), and check \(\abs{g}\leq 2 < 3 = \abs{f}\) on \(\abs{z}=1\).
Exercises
Let \(f(z)=z^{4}-6z+3\). Show that \(f\) has exactly one zero in \(\abs{z}<1\) and exactly three in \(1<\abs{z}<2\).
Prove the fundamental theorem of algebra from Theorem 1 by applying it to a monic polynomial of degree \(n\) on a sufficiently large circle.
Suppose \(f\) is holomorphic and injective on a neighbourhood of \(\overline{D}\), the closed unit disc. Show that for \(w\notin f(\partial D)\), the number \(n(f\circ\partial D; w)\) is \(1\) if \(w\in f(D)\) and \(0\) otherwise — the argument-principle proof of the open mapping theorem.
Where exactly does the proof of Theorem 1 use that \(f\) has no zeros on\(\gamma\)? Give an example showing the conclusion can fail without it.
Further reading
Beardon (1979) takes the argument principle as the organising idea of an entire book and is the natural next stop. The standard treatments are in Ahlfors (1979) (Ch. 4), Conway (1978) (Ch. V) and Stein and Shakarchi (2003) (Ch. 3).
References
Ahlfors, Lars V. 1979. Complex Analysis. 3rd ed. McGraw-Hill.
Beardon, Alan F. 1979. Complex Analysis: The Argument Principle in Analysis and Topology. John Wiley & Sons.
Conway, John B. 1978. Functions of One Complex Variable i. 2nd ed. Vol. 11. Graduate Texts in Mathematics. Springer.
Stein, Elias M., and Rami Shakarchi. 2003. Complex Analysis. II. Princeton Lectures in Analysis. Princeton University Press.