The video shows how to solve equations in two dimensions (e.g., complex‑valued functions) by turning the problem into finding zeros of h = f − g. In one dimension a sign change on an interval guarantees a zero (Intermediate Value Theorem). In two dimensions the analogue of “sign” is the **winding number** of h around a closed loop: as we travel clockwise along the loop, we count how many times the output vector rotates clockwise (counterclockwise counts as negative).
If a loop has a non‑zero winding number, then inside it there must be a point where h = 0. Moreover, winding numbers add when regions are combined, so when a region’s boundary has non‑zero winding, at least one of its two halves also has non‑zero winding. By repeatedly splitting such regions and checking the winding number on their boundaries, we can narrow down to a zero using only O(perimeter) function evaluations—much like bisection in 1D but working on the perimeter of 2D regions.
Applying this to complex polynomials, a large loop around the origin has winding number equal to the degree of the leading term, guaranteeing at least one zero; this provides an algorithmic proof of the Fundamental Theorem of Algebra. The method also extends to broader topological contexts, illustrating the general lesson of defining constructs that compose nicely.
1. The main topic is an algorithm for solving two‑dimensional equations, i.e., finding inputs where a function with 2‑D input and 2‑D output equals zero.
2. Solving f(x)=g(x) in one dimension can be reframed as finding where the difference h(x)=f(x)−g(x) is zero.
3. For a continuous 1‑D function, if h is positive at one point and negative at another, then a zero exists between them (Intermediate Value Theorem).
4. In two dimensions, the “sign” of a value is replaced by the direction of the output vector, which can be represented by a hue on a color wheel.
5. As we walk clockwise around a closed loop in the input space, the output’s direction rotates; the net rotation (counting clockwise as positive, counter‑clockwise as negative) is the winding number.
6. The winding number of a loop is always an integer; it adds when loops are concatenated (counter‑clockwise contributions subtract).
7. If a loop’s winding number is non‑zero, then the output vector must take on every direction somewhere on that loop.
8. A continuously deforming loop that shrinks to a point while retaining a non‑zero winding number must shrink to a point where the output is zero.
9. Therefore, a region whose boundary has a non‑zero winding number is guaranteed to contain at least one zero of the function inside it.
10. When such a region is split into two sub‑regions, the winding numbers of the sub‑boundaries add to the original; consequently, at least one sub‑region retains a non‑zero winding number.
11. The algorithm repeatedly selects a sub‑region with non‑zero winding number, halves it, and continues, converging to a zero while only evaluating the function on the boundary.
12. Because only boundary points are sampled, the computational effort scales with the perimeter of the search region, not its area.
13. For a large loop encircling the origin, the polynomial xⁿ has winding number n; thus any complex polynomial whose leading term is xⁿ has winding number n on a sufficiently large loop.
14. A non‑zero winding number on a large loop guarantees, via the algorithm, that the polynomial has at least one zero; counting multiplicities gives exactly n zeros (the fundamental theorem of algebra).
15. If during the computation the function evaluates exactly to zero at a sampled point, the winding number is undefined at that point, but a zero has been found directly.
16. Loops with winding number zero provide no guarantee about the presence or absence of zeros inside; they are simply not explored further by the algorithm.
17. The winding‑number viewpoint and its additivity are instances of Stokes’ theorem in mathematics.