Algebra

Polynomial Roots

Where p(x) = 0 — every degree-n polynomial has exactly n complex roots, counted with multiplicity

Polynomial roots are the values of x where p(x) = 0. The Fundamental Theorem of Algebra says every degree-n polynomial has exactly n complex roots (counting multiplicity). For low degrees, closed-form formulas exist (quadratic, cubic, quartic), but for degree 5 and higher, no general formula exists in radicals (Abel-Ruffini). Roots have deep connections to geometry (location in complex plane), Galois theory (group-theoretic obstructions), numerical analysis (Newton's method), and engineering (system stability).

  • Fundamental Theorem of AlgebraEvery degree-n polynomial has exactly n complex roots (with multiplicity)
  • Quadratic formulax = (-b ± √(b² - 4ac)) / 2a — works since 1700 BCE
  • Cubic formulaDiscovered 1535 (Tartaglia, Cardano)
  • Quartic formulaDiscovered 1540 (Ferrari)
  • Quintic — no general formulaAbel-Ruffini theorem 1824 — no formula in radicals
  • Vieta's formulasSum and product of roots in terms of coefficients

Interactive visualization

Press play, or step through manually. The visualization is yours to drive — try it before reading on.

Open visualization fullscreen ↗

Watch the 60-second explainer

A condensed visual walkthrough — narrated, captioned, under a minute.

Fundamental Theorem of Algebra

Every non-constant polynomial p(x) with complex coefficients has at least one complex root. By repeatedly factoring out (x − r), a degree-n polynomial has exactly n complex roots (counting multiplicity).

Proven by Carl Friedrich Gauss in his 1799 PhD thesis (with topological gaps later filled). One of the deepest results in mathematics — it says ℂ is algebraically closed: every polynomial equation has a solution in ℂ.

Equivalently — every degree-n polynomial factors completely over ℂ:

p(x) = aₙ (x − r₁)(x − r₂)...(x − rₙ)

where r₁, ..., rₙ are the (not necessarily distinct) roots.

Closed-form formulas by degree

DegreeFormulaDiscovered
1 (linear)x = −b/aAntiquity
2 (quadratic)x = (−b ± √(b² − 4ac)) / 2aBabylonians ~1700 BCE
3 (cubic)Cardano's formula (uses cube roots)Tartaglia/Cardano 1535
4 (quartic)Ferrari's method (reduces to cubic)Ferrari 1540
5+ (quintic and higher)NO general formula in radicalsAbel-Ruffini 1824

Abel-Ruffini and Galois theory

The Abel-Ruffini theorem (1824) shows that no general algebraic formula (using +, −, ×, ÷, and roots √, ∛, ⁴√, ...) expresses roots of all degree-5 polynomials.

Évariste Galois (1832, killed in a duel at age 20) explained why — the obstruction lies in group theory. Each polynomial has an associated Galois group (a permutation group of its roots). The polynomial is solvable in radicals if and only if its Galois group is solvable (a technical group-theoretic condition).

DegreeGalois groupSolvable?
2S₂ ≅ ℤ/2Yes (cyclic)
3S₃Yes
4S₄Yes (S₄'s normal series ends in trivial)
5S₅ (with simple A₅ inside)NO — A₅ is simple non-abelian
≥ 5Includes Sₙ generallyNO (in general)

This birthed group theory and abstract algebra.

Vieta's formulas — coefficients ↔ roots

For a degree-n polynomial p(x) = aₙxⁿ + a_{n-1}x^{n-1} + ... + a₀ with roots r₁, r₂, ..., rₙ:

r₁ + r₂ + ... + rₙ = −a_{n-1} / aₙ            (sum of roots)
r₁r₂ + r₁r₃ + ... + r_{n-1}rₙ = a_{n-2} / aₙ  (sum of pairwise products)
...
r₁r₂...rₙ = (−1)ⁿ a₀ / aₙ                      (product of roots)

For ax² + bx + c — sum = −b/a, product = c/a. For ax³ + bx² + cx + d — sum = −b/a, sum of pairwise products = c/a, product = −d/a.

Useful when you know coefficients and want symmetric functions of roots without solving.

Newton's method — numerical root-finding

Given f(x) and a starting guess x₀, iterate:

x_{n+1} = x_n − f(x_n) / f'(x_n)

Geometrically — at each step, draw the tangent to f at xₙ and find where it crosses the x-axis. The crossing is xₙ₊₁.

Quadratic convergence — when close to a simple root, the error squares each step. Going from 0.1 error to 0.01 to 0.0001 — doubling the correct digits each iteration.

Caveats — fails near repeated roots, can converge slowly or diverge if started too far. Newton fractals show the basins of attraction (which starting points converge to which roots) — often beautiful, with fractal boundaries.

Root multiplicity

A root r has multiplicity m if (x − r)^m divides p(x) but (x − r)^(m+1) doesn't.

Equivalent characterizations:

  • p(r) = p'(r) = p''(r) = ... = p^{(m−1)}(r) = 0, but p^{(m)}(r) ≠ 0.
  • The polynomial p touches the x-axis "m times" at r — but only crosses if m is odd.

For p(x) = (x − 2)³(x + 1) — root at x = 2 has multiplicity 3, root at x = −1 has multiplicity 1. Total = 3 + 1 = 4 = degree. ✓

JavaScript — finding polynomial roots

// Quadratic formula
function quadraticRoots(a, b, c) {
  const disc = b * b - 4 * a * c;
  if (disc > 0) {
    const sqrtDisc = Math.sqrt(disc);
    return [(-b + sqrtDisc) / (2 * a), (-b - sqrtDisc) / (2 * a)];
  } else if (disc === 0) {
    return [-b / (2 * a)];  // repeated root
  } else {
    // complex roots
    const realPart = -b / (2 * a);
    const imagPart = Math.sqrt(-disc) / (2 * a);
    return [`${realPart} + ${imagPart}i`, `${realPart} - ${imagPart}i`];
  }
}

console.log(quadraticRoots(1, -3, 2));   // [2, 1] — x² - 3x + 2 = (x-1)(x-2)
console.log(quadraticRoots(1, 0, 1));    // ['0 + 1i', '0 - 1i'] — x² + 1
console.log(quadraticRoots(1, -2, 1));   // [1] — (x - 1)²

// Newton's method for general polynomial
function newtonsMethod(f, fPrime, x0, maxIter = 100, tolerance = 1e-12) {
  let x = x0;
  for (let i = 0; i < maxIter; i++) {
    const fx = f(x);
    const fpx = fPrime(x);
    if (Math.abs(fpx) < 1e-15) return null;  // derivative too small
    const newX = x - fx / fpx;
    if (Math.abs(newX - x) < tolerance) return newX;
    x = newX;
  }
  return x;
}

// Example: x⁵ - x - 1 = 0 (no closed-form solution!)
const f = x => x**5 - x - 1;
const fPrime = x => 5 * x**4 - 1;

console.log(newtonsMethod(f, fPrime, 1.5));  // ~1.1673... (real root)

// Vieta's formulas for cubic ax³ + bx² + cx + d
function viestasCubic(a, b, c, d) {
  return {
    sumOfRoots: -b / a,
    sumOfProducts: c / a,
    productOfRoots: -d / a
  };
}

// x³ - 6x² + 11x - 6 = (x-1)(x-2)(x-3)
console.log(viestasCubic(1, -6, 11, -6));
// { sumOfRoots: 6, sumOfProducts: 11, productOfRoots: 6 } ✓

Where polynomial roots show up

  • Algebra and pure math. Foundation of polynomial rings, field extensions, Galois theory. Algebraic numbers (roots of polynomials with integer coefficients) form a fundamental class.
  • Engineering — system stability. Linear time-invariant systems are stable iff all roots of the characteristic polynomial have negative real parts. Used to analyze feedback control systems, electrical circuits, mechanical vibrations.
  • Signal processing — filters. Digital filters are characterized by poles (roots of denominator polynomial) and zeros (roots of numerator). Their placement determines filter behavior.
  • Numerical analysis. Many algorithms use polynomial root-finding (Newton's method, Bairstow's method, Jenkins-Traub). Critical for optimization, eigenvalue computation, ODE solvers.
  • Physics. Eigenvalue problems reduce to characteristic polynomial roots. Quantum energy levels, normal modes of oscillation, all involve polynomial roots.
  • Cryptography. Polynomials over finite fields and their roots underpin error-correcting codes (Reed-Solomon), elliptic-curve cryptography.
  • Computer graphics — Bézier curves. Bézier curves are polynomial; root-finding is used in ray-tracing curves, intersection tests.

Common mistakes

  • Forgetting complex roots exist. A degree-n polynomial with real coefficients can have fewer than n REAL roots, but always n COMPLEX roots. Always think over ℂ when counting.
  • Misinterpreting multiplicity. A double root counts as 2 in the FTA total. (x − 1)²(x + 2) has degree 3 — roots are 1 (mult 2) and −2 (mult 1), total 3. Not "2 distinct roots."
  • Trying to find a quintic formula. Don't waste time — Abel-Ruffini proved no general radical formula exists. For specific quintics (with special structure), formulas might exist; for general quintics, use numerical methods.
  • Wrong sign in Vieta's. For aₙxⁿ + ..., sum of roots = −a_{n-1}/aₙ (not +). Always check the sign convention.
  • Newton's method without checking convergence. Newton can diverge or oscillate. Always cap iterations and check convergence; otherwise infinite loop.
  • Confusing roots of p with roots of p'. Roots of p are where p = 0; roots of p' are critical points of p. Repeated roots of p ARE shared with p', but that's a special case — generally roots and critical points differ.

Frequently asked questions

What's the Fundamental Theorem of Algebra?

Every non-constant polynomial p(x) with complex coefficients has at least one complex root. By induction, a degree-n polynomial has exactly n complex roots (counting multiplicity). Proven by Gauss in 1799 (his PhD thesis). The "complex" is essential — many polynomials with real coefficients have no real roots (like x² + 1 = 0), but always have complex roots. This makes ℂ "algebraically closed."

How do you solve a quadratic?

For ax² + bx + c = 0 — x = (−b ± √(b² − 4ac)) / 2a. Discriminant Δ = b² − 4ac determines root structure — Δ &gt; 0 (two distinct real), Δ = 0 (one repeated real), Δ &lt; 0 (two complex conjugate). Formula known to Babylonians (~1700 BCE), formalized by Bhaskara II (~1150 CE). Most fundamental polynomial-root formula.

Why is there no quintic formula?

Abel-Ruffini theorem (1824, Niels Abel) — no general formula expresses roots of degree-5 polynomials using only +, −, ×, ÷, and roots (radicals). Évariste Galois (1832) showed why — it depends on whether the "Galois group" of the polynomial is solvable. For quadratic, cubic, quartic — Galois groups are solvable (S₂, S₃, S₄ are solvable). For quintic — S₅ is NOT solvable; its quotient A₅ is a simple non-abelian group. This is the birth of group theory.

What are Vieta's formulas?

For p(x) = aₙxⁿ + ... + a₁x + a₀ with roots r₁, ..., rₙ, Vieta's formulas express sums and products of roots in terms of coefficients. For quadratic ax² + bx + c — sum r₁ + r₂ = −b/a, product r₁r₂ = c/a. For cubic — r₁ + r₂ + r₃ = −b/a, r₁r₂ + r₁r₃ + r₂r₃ = c/a, r₁r₂r₃ = −d/a. Useful when you know the coefficients but want symmetric functions of roots without solving directly.

How does Newton's method find roots numerically?

Iteration — xₙ₊₁ = xₙ − f(xₙ)/f'(xₙ). Starting from a guess x₀, each step "tangents down" to the x-axis, getting closer to a root. Quadratic convergence — error squares each step (doubles the digits). Works well for simple roots, but can fail for repeated roots, and convergence depends on starting guess. The "Newton fractal" shows which starting points converge to which roots — beautiful boundary structure.

What does it mean for a root to have "multiplicity"?

A root r has multiplicity m if (x − r)^m divides p(x) but (x − r)^(m+1) doesn't. Equivalently, r is a root of p, p', p'', ..., p^(m-1) but not p^(m). Geometrically — the polynomial "touches" the x-axis at r m times. Multiplicity 1 = simple root; multiplicity 2 = double root (tangent to x-axis); etc. Fundamental Theorem of Algebra counts roots with multiplicity.

How are polynomial roots used in engineering?

System stability — a linear system is stable iff all roots of its characteristic polynomial have negative real part (continuous-time) or modulus less than 1 (discrete-time). Control engineering uses pole placement to design stable controllers. Filter design — IIR digital filters have poles and zeros (roots of denominator and numerator); their placement determines frequency response. Signal processing's Z-transform analyses are root-based.