Polynomial Roots Calculator
Find all roots of real polynomials of degree 1–8, including complex and repeated roots. Check numerical limits, share inputs, and export complete results.
Enter values to calculate.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published methods
- Input interpretation
- Enter values to calculate.
- Result
- —
- Verified scope
- all published methods
- Assurance
- Core
- Declared partition coverage
- PASS · 4/4 declared partitions (all-roots, cardano, evaluate, invalid-domain) · Matrix
- Numerical scope
- 67 listed independent full-pack vectors only
- Known limitations
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- All roots of a real polynomial of degree 1–8, with an engine-linked figure of p and the real roots.
- Scope
- The Result Card includes an engine-linked figure of p (markers are published real roots on y=0; complex roots stay off the real plane). Same Horner nesting as REST/MCP. Curve samples are not a REST field.
- Verification
- Engine tested · Source checked · v1.2.2 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published methods· View Manifest · CVP overview · Specification
- Versions
- Calculation 1.2.2 · CVP protocol 1.0.0-proposed · Evidence 2026-10-28.metric-scope-v3
- Verification revision
- 2026-10-28.metric-scope-v3 · 3/3 property · digest eca488fa2ce7
- Legacy regression
- 21/21 tests · Production surface contract 6/6
- Trust layers
- Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
- Reference
- O1 model · O2 expected_values · O2 numerical_behavior
- Interfaces
- PASS · UI (SSR) / REST / MCP
- Supplemental domain review
- Not performed
- Named expert review
- Not performed
- CVP suite
- 67/67 golden · 3/3 CVP boundary · 34/34 invalid · 3/3 property · 2/2 metamorphic · 95/95 cross-interface · 1/1 cross-calculator · 6/6 CVP contract · Manifest
- Sources
- ISO 80000-2:2019 Quantities and units — Mathematics
- NIST DLMF / Cardano cubic and Durand–Kerner simultaneous iteration
- NIST DLMF §3.8 — Nonlinear Equations
- NumPy — numpy.polynomial.polynomial.polyval
- Evidence
- 7 legacy golden · 6 legacy boundary · legacy regression suite · 67/67 oracle-backed golden · 34/34 invalid · Artifact integrity PASS
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Enter coefficients constant-first
(x−1)(x−2)(x−3) is −6, 11, −6, 1. Trailing zeros are rejected; drop them instead.
Read every root
Real roots first by value; complex conjugates appear as a ± bi. The figure shows p and the real roots on y=0.
Example calculations
Common configurations with formula and result.
Cubic with three real roots
(x−1)(x−2)(x−3) = 0
x² + 1 = 0
coeffs 1, 0, 1
Polynomial Roots calculator specification
Version 1.2.2 · Engine tested
- Engine tested 21/21 tests · Production surface contract 6/6
- Named expert review Not performed
- Calculation version 1.2.2
- Definition
- A degree-n polynomial c0 + c1 x + … + cn x^n = 0 has n roots in the complex plane (counting multiplicity). This page returns a complete validated set or an explicit numerical error. Coefficients are constant-first.
- What it calculates
- All roots of a real polynomial of degree 1–8, with an engine-linked figure of p and the real roots.
- Inputs
- coeffs
- method?
- Outputs
- roots
- degree
- solver
- residual_max
- Formula
closed form (deg 1–3 Cardano) or Durand–Kerner (deg 4–8)- Assumptions
- The Result Card includes an engine-linked figure of p (markers are published real roots on y=0; complex roots stay off the real plane). Same Horner nesting as REST/MCP. Curve samples are not a REST field.
- Real coefficients
- Leading coefficient nonzero
- Degree ≤ 8
- Not a second quadratic page
- Not Ferrari quartic
- Not CAS factoring
- Units
- dimensionless
- Boundary conditions
- degree 0 or one coefficient → INVALID_INPUT
- leading coefficient 0 → INVALID_INPUT
- degree > 8 → VALUE_OUT_OF_RANGE
- method quadratic / cas / ferrari / newton / eigen / factor → INVALID_MODE
- Example
- coeffs=-6,11,-6,1 → 1, 2, 3
- Validation cases
2 published on this page · 21/21 tests · Production surface contract 6/6 · View evidence
- coeffs=-6,11,-6,1 → 1, 2, 3
- method=quadratic coeffs=8,-6,1 → INVALID_MODE
- Sources
- ISO 80000-2:2019 Quantities and units — MathematicsSupports: Mathematical symbols and notation. This standard is not numerical verification or an endorsement of this implementation.
- NIST DLMF / Cardano cubic and Durand–Kerner simultaneous iterationSupports: Closed form for degree 1–3; Weierstrass–Durand–Kerner iteration for degree 4–8; Horner evaluation
- NIST DLMF §3.8 — Nonlinear Equations — §3.8Supports: Iterative root finding, convergence considerations, and polynomial-root methods.
- NumPy — numpy.polynomial.polynomial.polyvalSupports: Polynomial evaluation using Horner’s method; NumPy’s documented coefficients are in ascending degree order. CalculatorX’s input order must follow its own specification. Mathematical reference only; not validation or endorsement of this implementation.
- ISO 80000-2:2019 Quantities and units — Mathematics
- Calculation version
- 1.2.2
Background
Interpretation and common distinctions.
What does this polynomial roots calculator compute?
A degree-n polynomial c0 + c1 x + … + cn x^n = 0 has n roots in the complex plane (counting multiplicity). This page returns a complete validated set or an explicit numerical error. Coefficients are constant-first.
The published formula or method is closed form (deg 1–3 Cardano) or Durand–Kerner (deg 4–8). The following references support the stated mathematics or method:
- NIST DLMF §3.8 — Nonlinear Equations: Iterative root finding, convergence considerations, and polynomial-root methods.
- NumPy — numpy.polynomial.polynomial.polyval: Polynomial evaluation using Horner’s method; NumPy’s documented coefficients are in ascending degree order. CalculatorX’s input order must follow its own specification. Mathematical reference only; not validation or endorsement of this implementation.
Which inputs and limits should you check?
Follow the input domain, units, branch or solve direction, and rounding policy in the specification. Preserve exact outputs and any additional candidates or warnings.
The worked example uses (x−1)(x−2)(x−3) = 0 with coeffs −6, 11, −6, 1. Compare it with the Example calculations and the complete result for the same inputs.
How can you verify and cite this result?
CalculatorX is responsible for this page. The mathematical references above explain the model; implementation checks and their scope are documented separately in the math.polynomial.roots v1.2.2 Evidence and capability contract. Read the displayed verification and production state together with the specification's numerical limits.
Use the clean calculator URL to cite the tool. A shared input link identifies a particular calculation. Content updates, numerical verification, and domain reviews have separate dates and scopes.
Numerical scope and interpretation
Coefficients are constant first, finite real binary64 values, with degree 1–8 and a nonzero leading coefficient. Decimal/scientific strings are limited to 512 characters per token and 4608 characters per coefficient list. Arrays contain 2–9 entries. A nonzero textual number that rounds to zero is rejected with NUMERIC_UNDERFLOW; invalid numbers, unknown fields, conflicting aliases, and inapplicable evaluation inputs are rejected. The cubic page locks Cardano; the evaluation page locks Horner.
The accepted binary64 coefficients define the polynomial. Exact rational square-free decomposition preserves its repeated-root multiplicities. Stable closed forms handle degree 1–3; higher degrees use scaled, bounded iteration with exact real-root isolation. Each square-free factor must pass disjoint exact rational Weierstrass/Gershgorin inclusion disks, a relative L1 inclusion-error budget of 2e-10, and normalized residual at most 2e-12. A small residual alone does not establish a complete root set. Overlapping disks or exhausted iteration reject NON_CONVERGENCE; difficult finite inputs need not succeed. Exact arithmetic is bounded to 16384 bits; iteration is limited to two attempts of 2048 steps and real isolation to 512 levels / 4096 steps.
Horner evaluation uses exact rational arithmetic on the accepted binary64 inputs and rounds once to binary64. Unrepresentable nonzero roots or values reject overflow/underflow. residual_max is the largest unscaled Euclidean |p(z)|, or null if its binary64 projection is outside range. normalized_residual uses (|Re p|+|Im p|) / Σ |cᵢ|(|Re z|+|Im z|)ⁱ. The exact depressed cubic discriminant determines cubic_case; delta can be null when projection loses range. Rounded zero residuals do not prove exact roots.
Independent CPython Fraction factor constructions and Decimal250/750 references check 67 complete result packs, root multiplicities and returned-root diagnostics. The fixed-vector root budget is 4e-10 relative L2 plus two subnormal quanta; exact zero roots remain zero and Horner values are checked within one ULP. These tests do not establish accuracy for every possible input or identical results across runtimes. Closely spaced roots can be highly sensitive to coefficient changes.
The real curve uses the same exact Horner evaluator. Complex roots are listed outside the real plane; repeated roots retain multiplicity in the result. The graph is omitted with a text explanation when finite coordinates or labels cannot be distinguished. Scalar results and native CSV/JSON exports retain the full result pack and raw inputs without snapping small nonzero roots to zero.
Typing computes locally. Share URLs and REST/MCP requests transmit inputs and may enter browser, server, or intermediary logs. Avoid confidential values in shared URLs. See NIST DLMF polynomial definitions and evaluation and Neumaier–Polzer polynomial zero enclosures for mathematical background; implementation checks are independent of these references.
Related tools
Other calculators in this family: Absolute Value Calculator, Absolute Value Inequality Calculator, Cubic Equation Calculator, Linear Equation Calculator, Linear Inequality Calculator, Polynomial Evaluate Calculator, Quadratic Formula Calculator, Quadratic Inequality Calculator . Explore all Algebra & Equations.
Frequently asked questions
Key distinctions behind the calculation.
Is this the quadratic formula page?
No. /calc/math/quadratic is ax²+bx+c with discriminant, vertex, and a parabola. This page returns every root of a general degree-n polynomial.
How is this different from numerical root?
Numerical root finds one real root of a polynomial with Newton, bisection, or secant. This page returns all n roots, including complex conjugates.
Can I factor symbolically?
No. Symbolic CAS is out of scope. The solver is closed form for degree 1–3 (Cardano on cubics) and Durand–Kerner for degree 4–8. Evaluate p(x) at /polynomial-evaluate.
Where does this run?
Locally in the browser by default. REST and MCP call the same polynomial-roots engine.