🧮 Brain Teaser

The Argument Principle Counts, But Can It Tell You More?

Let ff be meromorphic on an open set containing the closed unit disk D\overline{\mathbb{D}}, with no zeros or poles on the unit circle z=1|z|=1. Define

N=(number of zeros of f in D, counted with multiplicity)N = \text{(number of zeros of } f \text{ in } \mathbb{D}\text{, counted with multiplicity)} P=(number of poles of f in D, counted with multiplicity)P = \text{(number of poles of } f \text{ in } \mathbb{D}\text{, counted with multiplicity)}

The argument principle tells you:

12πiz=1f(z)f(z)dz=NP.\frac{1}{2\pi i} \oint_{|z|=1} \frac{f'(z)}{f(z)}\,dz = N - P.

Now here is the question: what does the integral

12πiz=1zf(z)f(z)dz\frac{1}{2\pi i} \oint_{|z|=1} z\,\frac{f'(z)}{f(z)}\,dz

compute? Express your answer in terms of the zeros a1,,aNa_1, \ldots, a_N and poles b1,,bPb_1, \ldots, b_P of ff inside D\mathbb{D}.

Bonus: What does the integral

12πiz=1g(z)f(z)f(z)dz\frac{1}{2\pi i} \oint_{|z|=1} g(z)\,\frac{f'(z)}{f(z)}\,dz

compute for any function gg holomorphic on D\overline{\mathbb{D}}?

argument principleresidue theoremzeros and polescontour integralmeromorphic functions

Answer: Weighted Argument Principle: Summing Zeros and Poles

Key Idea / Intuition

The argument principle works because ff=(logf)\frac{f'}{f} = (\log f)', and logf\log f has a simple pole of residue +m+m at each zero of order mm and residue n-n at each pole of order nn. Once you insert a weight g(z)g(z) inside the integral, the residue theorem simply evaluates gg at each zero and pole—positive contribution from zeros, negative from poles. The result is a "weighted count" where the weight is the value of gg at each singularity.


Formal Proof / Solution

Step 1: Local structure of ff\frac{f'}{f}.

Near a zero aka_k of order mkm_k, write f(z)=(zak)mkh(z)f(z) = (z - a_k)^{m_k} h(z) where hh is holomorphic and nonzero near aka_k. Then: f(z)f(z)=mkzak+h(z)h(z).\frac{f'(z)}{f(z)} = \frac{m_k}{z - a_k} + \frac{h'(z)}{h(z)}. So ff\frac{f'}{f} has a simple pole at aka_k with residue +mk+m_k.

Near a pole bjb_j of order njn_j, write f(z)=(zbj)njk(z)f(z) = (z - b_j)^{-n_j} k(z) with kk holomorphic and nonzero. Then: f(z)f(z)=njzbj+k(z)k(z).\frac{f'(z)}{f(z)} = \frac{-n_j}{z - b_j} + \frac{k'(z)}{k(z)}. So ff\frac{f'}{f} has a simple pole at bjb_j with residue nj-n_j.

Step 2: Compute the weighted integral.

For gg holomorphic on D\overline{\mathbb{D}}, the function g(z)f(z)f(z)g(z)\frac{f'(z)}{f(z)} is meromorphic on D\overline{\mathbb{D}} with simple poles exactly at the zeros and poles of ff inside D\mathbb{D}.

By the residue theorem: 12πiz=1g(z)f(z)f(z)dz=zeros akmkg(ak)poles bjnjg(bj).\frac{1}{2\pi i} \oint_{|z|=1} g(z)\,\frac{f'(z)}{f(z)}\,dz = \sum_{\text{zeros } a_k} m_k \cdot g(a_k) - \sum_{\text{poles } b_j} n_j \cdot g(b_j).

Step 3: Answer the specific question.

Taking g(z)=zg(z) = z:

12πiz=1zf(z)f(z)dz=k=1Nakj=1Pbj,\boxed{\frac{1}{2\pi i} \oint_{|z|=1} z\,\frac{f'(z)}{f(z)}\,dz = \sum_{k=1}^{N} a_k - \sum_{j=1}^{P} b_j,}

where zeros and poles are listed with multiplicity.

In words: this integral computes the sum of zeros minus the sum of poles of ff inside D\mathbb{D}.

Step 4: The bonus result.

For any gg holomorphic on D\overline{\mathbb{D}}: 12πiz=1g(z)f(z)f(z)dz=zerosg(ak)polesg(bj),\frac{1}{2\pi i} \oint_{|z|=1} g(z)\,\frac{f'(z)}{f(z)}\,dz = \sum_{\text{zeros}} g(a_k) - \sum_{\text{poles}} g(b_j), a beautiful generalization of the argument principle: ordinary argument principle uses g1g \equiv 1, the sum-of-zeros uses g(z)=zg(z)=z, and taking g(z)=zng(z) = z^n one can reconstruct all Newton power sums of the zeros and poles — hence all elementary symmetric polynomials, hence even locate the zeros and poles (at least in principle) purely from contour integrals!

Example sanity check. Take f(z)=zaf(z) = z - a for a<1|a| < 1. Then ff=1za\frac{f'}{f} = \frac{1}{z-a} and 12πiz=1z1zadz=a.\frac{1}{2\pi i}\oint_{|z|=1} z \cdot \frac{1}{z-a}\,dz = a. \checkmark

Source: Mathematical folklore / classical complex analysis

Type: Complex AnalysisSource: Mathematical folklore / classical complex analysisEdit on GitHub ↗