The Fundamental Theorem of Algebra

From Rational Functions to Topology — A Visual Journey Through Gauss's Proof

§1 — What Is a Rational Function?

A rational function is any function that can be written as the ratio of two polynomials:

\[f(x)=\frac{P(x)}{Q(x)}\]

where \(P(x)\) and \(Q(x)\) are polynomials and \(Q(x)\not\equiv 0\). These functions appear throughout mathematics and the sciences. They exhibit characteristic features—vertical asymptotes where \(Q(x)=0\), horizontal or oblique asymptotes governed by the degrees of \(P\) and \(Q\), and smooth curves between singularities.

Explore: A Rational Function and Its Anatomy

The graph below shows \(f(x)=\dfrac{2x+3}{(x-1)(x+2)}\). The dashed red lines mark the vertical asymptotes at \(x=1\) and \(x=-2\), where the denominator vanishes.

§2 — Why the FTA Guarantees Integration

Carl Friedrich Gauss proved that the complex numbers are the algebraic closure of the real numbers: every non-constant polynomial with complex (or real) coefficients has at least one complex root. A direct corollary is that every polynomial with real coefficients factors completely into real linear and irreducible quadratic factors.

This has a sweeping consequence for calculus: every rational function has an elementary antiderivative. The reasoning flows through three steps.

1
Factor the denominator. The FTA guarantees that \(Q(x)\) factors into pieces of the form \((x-r)^k\) and \((x^2+px+q)^k\).
2
Decompose. Partial-fraction decomposition splits the integrand into a sum of simpler terms: \[\frac{P(x)}{Q(x)}=\cdots+\frac{A}{(x-r)^k}+\frac{Bx+C}{(x^2+px+q)^k}+\cdots\]
3
Integrate each term. Every partial-fraction form has a known antiderivative built from polynomials, logarithms, and inverse tangents.
Key Insight: Without the FTA, we could never be sure the denominator can be factored. Gauss's theorem removes that doubt entirely—the decomposition always exists, so an elementary integral always exists.

Interactive: Partial Fraction Decomposition

Toggle the curves below to see how the rational function decomposes. The original function (green) equals the exact sum of the two partial-fraction terms (pink + gold).

\[\frac{2x+3}{(x-1)(x+2)}=\frac{5/3}{x-1}+\frac{1/3}{x+2}\]

§3 — Gauss's Topological Proof: The Winding Number

One of Gauss's most elegant proofs of the FTA is a topological argument based on the winding number—the number of times a closed curve wraps around a point. Consider a polynomial of degree \(n\):

\[P(z)=a_nz^n+a_{n-1}z^{n-1}+\cdots+a_1z+a_0\]

Assume \(a_0\neq 0\) (otherwise \(z=0\) is already a root). We study the image of a circle \(z=re^{i\theta}\) under the mapping \(w=P(z)\).

Step 1 — The Small Circle (Winding Number = 0)

When \(r\) is tiny, the higher-order terms are negligible and \(P(z)\approx a_0+a_1z\). The image is a small loop hovering near \(w=a_0\). Because \(a_0\neq 0\), this loop does not enclose the origin, giving winding number 0.

Step 2 — The Large Circle (Winding Number = \(n\))

When \(R\) is huge, the leading term dominates: \(P(z)\approx a_nz^n=a_nR^ne^{in\theta}\). As \(\theta\) sweeps from \(0\) to \(2\pi\), the image angle sweeps from \(0\) to \(2\pi n\)—the curve winds \(n\) times around the origin.

Step 3 — The Topological Jump

Now continuously expand the circle from radius \(r\) to \(R\). The image deforms continuously, but the winding number—being an integer—cannot change smoothly. The only way for it to jump from 0 to \(n\) is for the image curve to pass through the origin.

The Conclusion: At some intermediate radius \(r^{*}\) the image curve hits the origin, meaning \(P(z^{*})=0\) for some \(z^{*}\) on that circle. That \(z^{*}\) is a root. This guarantees every polynomial of degree \(n\geq 1\) has at least one complex root.

Explore this argument interactively in §4 below.

§4 — Interactive Winding Number Visualizer

Watch the proof in action. The left panel shows a circle of radius \(r\) in the \(z\)-plane; the right panel shows its image under the polynomial \(P(z)=z^3-2z+2\). Drag the slider to expand the circle and observe the winding number jump from 0 → 2 → 3 as the circle crosses the roots.

The three roots sit at \(|z|\approx 1.06\) (a complex conjugate pair) and \(|z|\approx 1.77\) (a real root). Red dots mark their positions.

Domain — \(z\)-plane
Codomain — \(w\)-plane


Winding Number: 0
What to watch for:
r < 1.06: The image loop hovers near \(w=2\) and does not enclose the origin. Winding = 0.
r ≈ 1.06: The curve sweeps through the origin—the complex conjugate pair is captured. Winding jumps to 2.
r ≈ 1.77: The curve crosses the origin again for the real root. Winding jumps to 3.