CalcOpenly

Polynomial root finder

All real and complex roots of a polynomial up to degree 6, such as a cubic or quartic equation, with repeated roots found exactly and 30-digit accuracy.

Updated Checked against 7 worked examples

1, -6, 11, -6 means x³ − 6x² + 11x − 6. Include zeros for missing powers.
Try
Roots
1, 2, 3
Roots: 1, 2, 3
Real roots (counted with multiplicity)
3
Largest real root
3
Smallest real root
1
Degree
3

This degree-3 polynomial has 3 real roots (counting multiplicity).

p(x) = x³ − 6x² + 11x − 6

-2-1012123xp(x)x = 1x = 2x = 3

Roots in the complex plane (dashed: unit circle)

ReIm123
Roots (3 rows)
#Real partImaginary partMultiplicity|p(root)|
11010
22010
33010
How it's calculated S
  1. Polynomial

    p(x)=x3−6x2+11x−6p(x) = x^{3} - 6x^{2} + 11x - 6
  2. Durand–Kerner iteration

    zk←zk−p(zk)∏j≠k(zk−zj)z_k \leftarrow z_k - \frac{p(z_k)}{\prod_{j \ne k}(z_k - z_j)}

    Started from powers of 0.4 + 0.9i scaled by the Cauchy bound; 12 sweeps until every correction was below 10⁻³⁰ of the root, then Newton polishing.

  3. Exact rational roots

    x=1,x=2,x=3x = 1,\quad x = 2,\quad x = 3

    Each was confirmed by substituting the fraction into p(x) and getting exactly 0.

  4. Check with Vieta's formulas

    ∑zk=6=−an−1an=6,∏zk=6=(−1)na0an=6\sum z_k = 6 = -\tfrac{a_{n-1}}{a_n} = 6,\qquad \prod z_k = 6 = (-1)^{n}\tfrac{a_0}{a_n} = 6

About the polynomial root finder

A polynomial of degree n has exactly n roots among the complex numbers, counted with multiplicity; this is the fundamental theorem of algebra. The calculator first splits off repeated factors exactly with Yun's square-free algorithm, then finds all remaining roots at once with the Durand–Kerner (Weierstrass) iteration, which refines n guesses together until each correction is below 10⁻³⁰ of the root. Rational roots are confirmed by exact substitution.

Cubic and quartic equations from engineering, physics and algebra courses are typical inputs. The default, 1, −6, 11, −6, is x³ − 6x² + 11x − 6 = (x − 1)(x − 2)(x − 3), so the roots are 1, 2 and 3; they sum to 6 and multiply to 6, as Vieta's formulas require.

Enter coefficients from the highest power down, with zeros for missing powers: x³ − 2 is 1, 0, 0, −2. Degrees 1 to 6 are accepted.

Worked examples

x³ − 6x² + 11x − 6

Coefficients, highest power first
1, -6, 11, -6
Roots
1, 2, 3
Real roots (counted with multiplicity)
3
Largest real root
3
Smallest real root
1

Checked against: (x − 1)(x − 2)(x − 3) expanded by hand

x³ − 2 (one real, two complex)

Coefficients, highest power first
1, 0, 0, -2
Roots
1.25992105, −0.6299605249 ± 1.091123636i
Real roots (counted with multiplicity)
1
Largest real root
1.2599210499

Checked against: Python decimal: 2^(1/3) and 2^(1/3)·(−1/2 ± i√3/2)

x⁴ − 1

Coefficients, highest power first
1, 0, 0, 0, -1
Roots
−1, 1, ±i
Real roots (counted with multiplicity)
2

Checked against: Fourth roots of unity: ±1, ±i

Repeated root (x − 1)³(x + 2)

Coefficients, highest power first
1, -1, -3, 5, -2
Roots
−2, 1 (×3)
Real roots (counted with multiplicity)
4
Smallest real root
-2

Checked against: (x − 1)³(x + 2) = x⁴ − x³ − 3x² + 5x − 2 (expanded with Python fractions)

Questions

How many roots does a polynomial have?

Exactly as many as its degree, counted with multiplicity, once complex roots are included; this is the fundamental theorem of algebra. x⁴ − 1 has four roots: −1, 1, i and −i. The number of real roots can be smaller: x³ − 2 has one real root, ∛2 ≈ 1.259921, and two complex ones. A root of multiplicity 3, such as x = 1 in (x − 1)³(x + 2), counts three times.

How do you solve a cubic equation?

Look for a rational root first. By the rational root theorem, any rational root p/q of a polynomial with integer coefficients has p dividing the constant term and q dividing the leading coefficient. For x³ − 6x² + 11x − 6, trying divisors of 6 finds x = 1, and dividing by (x − 1) leaves x² − 5x + 6 = (x − 2)(x − 3). Without a rational root, Cardano's formula or a numerical method is needed.

Is there a formula for the roots of a quintic?

No general formula using radicals exists for degree 5 or higher. The Abel–Ruffini theorem, proved by Abel in 1824, shows this, and Galois theory explains which equations can be solved that way. x⁵ − x − 1 is a standard example whose roots cannot be written with radicals. Numerical methods still find them: its only real root is about 1.167304.

What are Vieta's formulas?

They link the roots to the coefficients. For aₙxⁿ + aₙ₋₁xⁿ⁻¹ + … + a₀, the roots add up to −aₙ₋₁/aₙ and multiply to (−1)ⁿa₀/aₙ. For x³ − 6x² + 11x − 6 the roots 1, 2 and 3 sum to 6 and multiply to 6, matching −(−6)/1 and (−1)³ × (−6)/1. The calculator uses both as a check on the roots it finds.

Why do complex roots come in conjugate pairs?

When every coefficient is real, conjugating the equation p(z) = 0 gives p(z̄) = 0, so the conjugate of a root is also a root. x³ − 2 therefore has the pair −0.629961 ± 1.091124i alongside its real root. It follows that a polynomial of odd degree with real coefficients always has at least one real root.

How accurate is the polynomial root finder?

Accuracy depends on your inputs and the method's assumptions. Decimal arithmetic uses 50 significant digits, but estimates, numerical methods and source data can be less precise; the displayed rounding does not remove those limits. It is checked against 7 worked examples whose answers come from independent sources; for example, “x³ − 6x² + 11x − 6” is checked against (x − 1)(x − 2)(x − 3) expanded by hand.

Where does the method come from?

Wolfram MathWorld — Durand-Kerner Method (Weierstrass iteration); D. Y. Y. Yun, On square-free decomposition algorithms, SYMSAC 1976.

About this calculator

zk←zk−p(zk)∏j≠k(zk−zj)z_k \leftarrow z_k - \frac{p(z_k)}{\prod_{j \ne k} (z_k - z_j)}

Sources

  1. Wolfram MathWorld — Durand-Kerner Method (Weierstrass iteration)
  2. D. Y. Y. Yun, On square-free decomposition algorithms, SYMSAC 1976

Checked against references

7 worked examples with independently sourced answers ship with this calculator. They run in the test suite; you can run them here too.

Related calculators

Allow optional Google Analytics to measure page visits? Calculators work either way. Privacy and choices

Optional analytics: off.