Use this sample to see a repeated-root case and a distinct-root case.
| Case | a | b | c | d | e | Expected note |
|---|---|---|---|---|---|---|
| Distinct roots | 1 | 0 | -5 | 0 | 4 | Four real roots: ±1, ±2 |
| Repeated roots | 1 | -4 | 6 | -4 | 1 | Δ = 0 for (x − 1)⁴ |
- Degree and solvability: polynomials of degree ≤ 4 are solvable by radicals.
- Monic normalization: divide by a to get x⁴ + A x³ + B x² + C x + D.
- Depressed quartic: substitute x = y − A/4 to obtain y⁴ + p y² + q y + r = 0, where p = B − 3A²/8, q = C + A³/8 − AB/2, r = D − 3A⁴/256 + A²B/16 − AC/4.
- Invariants and discriminant: I = 12ae − 3bd + c², J = 72ace + 9bcd − 27ad² − 27b²e − 2c³, Δ = (4I³ − J²)/27.
- Numeric roots: Durand–Kerner iteration updates each root guess zᵢ ← zᵢ − P(zᵢ)/∏(zᵢ − zⱼ) until the tolerance is met.
- Enter the coefficients a, b, c, d, e for your quartic.
- Keep a ≠ 0 to stay in quartic mode.
- Choose decimals, tolerance, and maximum iterations if needed.
- Press Check solvability to compute results.
- Use CSV or PDF buttons to export the computed report.
What this solvability checker validates
This calculator confirms whether your input is truly a quartic by trimming leading zeros, then reports the effective degree. For degree 4, it flags “solvable by radicals” and focuses on measurable diagnostics: approximate roots, an estimated real‑root count, and the discriminant that separates distinct roots from repeated roots. It also records your solver settings so exported results remain reproducible. This makes it suitable for homework checks, lab notes, and quick peer review in teams too.
Normalization and reduction workflow
The polynomial is scaled to a monic form when a ≠ 0, improving numerical conditioning. Next, the substitution x = y − A/4 removes the cubic term, yielding the depressed quartic y⁴ + p y² + q y + r = 0. Reporting p, q, r helps you detect special structures, such as a biquadratic case (q ≈ 0) or a near-perfect power. The shift value is shown so you can map solutions back to the original variable.
Discriminant and repeated-root detection
The tool computes classical invariants I and J, then evaluates Δ = (4I³ − J²)/27. In exact arithmetic, Δ ≠ 0 implies four distinct complex roots, while Δ = 0 indicates at least one repeated root. For practical checks, compare the invariant-based value with the numeric discriminant reconstructed from the root set. Small differences usually reflect floating‑point rounding or a root cluster.
Numeric root estimation and stability
Roots are approximated with a Durand–Kerner iteration, controlled by a tolerance and a maximum iteration cap. Typical stable settings are tol = 1e−12 and 200 iterations for well-scaled inputs. If the update stalls, increase maxIter gradually, or relax tol to 1e−10 for quick screening. If coefficients vary by many orders of magnitude, consider rescaling the polynomial to keep intermediate values in normal floating‑point ranges.
Interpreting outputs for analysis work
The “real roots” counter classifies a root as real when |Im(z)| < imagEps, which is a practical threshold. Use imagEps = 1e−10 for clean cases and relax it slightly for noisy data. If rational roots are detected with integer coefficients, you can often factor the quartic into lower-degree polynomials, validate by direct substitution, and export CSV/PDF for documentation. For reporting, keep 6–10 decimals when roots cluster.
Does every quartic have a radical solution?
Yes. Any polynomial of degree four over the complex numbers can be solved by radicals. This calculator emphasizes diagnostics and stable numeric roots rather than printing the long closed‑form expression.
Why might the two discriminant values differ?
The invariant formula is exact symbolically, but it is evaluated in floating‑point. The root‑based discriminant is reconstructed numerically from approximated roots. Small differences usually come from rounding, scaling, or closely spaced roots.
What does Δ = 0 mean in practice?
Δ = 0 indicates at least one repeated root. You may see two roots extremely close together, or a perfect power like (x − r)⁴. In noisy data, treat very small |Δ| as a near‑repeated‑root warning.
How do I choose tolerance and max iterations?
Start with tol = 1e−12 and maxIter = 200. If convergence is slow, raise maxIter to 400–800. If you only need a quick check, relax tol to 1e−10 and keep decimals moderate.
When does the rational-root check work?
It runs only when all coefficients are (near) integers. It tests candidates from the Rational Root Theorem and reports any that evaluate close to zero. Use it to spot easy factorizations before relying on numeric roots.
Can I use it for lower-degree polynomials?
Yes. If a = 0, the tool trims leading zeros and reports the effective degree, then computes numeric roots for that degree. Invariants and depressed‑quartic parameters are shown only for a valid quartic.