← All calculatorsMath

Polynomial Root Finder

Finds every real root of ax³ + bx² + cx + d in the range ±100 by scanning for sign changes and refining each crossing with bisection.

Real roots
-1, 0, 4
Count
3

How to use the Polynomial Root Finder

  1. Enter the coefficient of x³ as a. Set it to zero to solve a quadratic instead.
  2. Enter b, c and d for the x², x and constant terms, including signs.
  3. Read the list of real roots — these are the x-values where the curve crosses zero.
  4. Compare the count with the degree: a cubic has one or three real roots, a quadratic has zero or two.
  5. Substitute a root back into the polynomial; the result should be effectively zero.

How the calculation works

Rather than applying the closed-form cubic formula, which is numerically fragile and awkward around repeated roots, this calculator uses a robust two-stage numerical method. It first evaluates the polynomial across the interval from −100 to 100 in small steps, watching for a change of sign between consecutive samples. By the intermediate value theorem, a continuous function that changes sign must have crossed zero somewhere between those two points.

Each detected bracket is then narrowed by bisection: repeatedly halve the interval and keep the half that still shows a sign change. Eighty halvings shrink the bracket far below double-precision resolution, so the reported root is accurate to the limit of the arithmetic. Bisection is slower than Newton's method but it cannot diverge, which matters more in a general-purpose tool than raw speed.

The method's one blind spot is a root that touches the axis without crossing it — a repeated root such as (x − 2)², where the curve dips to zero and returns without a sign change. Those roots may be missed. A tangential minimum sitting exactly on the axis is the practical signature; if the root count is lower than the degree and you suspect a double root, factor out a known root and re-solve the reduced polynomial.

Formula
Bracket where f(xᵢ)·f(xᵢ₊₁) < 0, then bisect: xₘ = (lo + hi)/2, keeping the half that retains the sign change

Source: Bolzano's intermediate value theorem with bisection refinement; see Burden & Faires, Numerical Analysis, Chapter 2.1.

Worked example

Find where the profit curve P(x) = x³ − 3x² − 4x crosses zero, with x in thousands of units.

  1. Enter a = 1, b = −3, c = −4, d = 0.
  2. The scan finds sign changes near −1, 0 and 4.
  3. Bisection refines each to −1.000000, 0.000000 and 4.000000.
  4. Verify the largest: 4³ − 3(16) − 16 = 64 − 48 − 16 = 0.

Roots at x = −1, 0 and 4. Only x = 4 is meaningful for volume, so break-even is 4,000 units.

Frequently asked questions

Why are complex roots not shown?+

The scan detects axis crossings, and complex roots have no crossing to detect. A quadratic with a negative discriminant, or a cubic showing only one real root, has the remaining roots as a complex conjugate pair.

What if my roots are outside ±100?+

Scale the variable first. Substituting x = 1000u shrinks large roots into range; divide the reported u values back afterwards.

Can it handle degree four and above?+

Not directly. Quartics and higher need a companion-matrix eigenvalue method, which sits outside this tool's scope.

How accurate are the roots?+

Effectively exact to double precision — around 15 significant digits — for well-separated simple roots. Closely spaced or repeated roots lose accuracy.

Last reviewed August 31, 2026. We review this page whenever the underlying formula, tax year, published rate or standard changes.

Related

More in Math