How to use the Polynomial Root Finder
- Enter the coefficient of x³ as a. Set it to zero to solve a quadratic instead.
- Enter b, c and d for the x², x and constant terms, including signs.
- Read the list of real roots — these are the x-values where the curve crosses zero.
- Compare the count with the degree: a cubic has one or three real roots, a quadratic has zero or two.
- 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.
Bracket where f(xᵢ)·f(xᵢ₊₁) < 0, then bisect: xₘ = (lo + hi)/2, keeping the half that retains the sign changeSource: 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.
- Enter a = 1, b = −3, c = −4, d = 0.
- The scan finds sign changes near −1, 0 and 4.
- Bisection refines each to −1.000000, 0.000000 and 4.000000.
- 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.