A quartic equation is a fourth-degree polynomial set equal to zero:
When a ≠ 0, the polynomial is truly quartic and (counting multiplicity) it has exactly four roots in the complex numbers. Those roots may be all real, partly real, or entirely complex. If the coefficients are real, any non-real roots occur in complex-conjugate pairs.
Tip (scaling): Multiplying all coefficients by the same nonzero constant does not change the roots. If your coefficients are extremely large or tiny, rescaling them (for example, dividing all coefficients by the largest absolute coefficient) can improve numerical stability.
There are two broad families of methods for quartics:
Many numerical solvers iterate on complex values. One popular approach is the Durand–Kerner (Weierstrass) method, which simultaneously refines a set of root estimates. If f(x) is the polynomial and zk are current root guesses, an update step is often written as:
z_k ← z_k - f(z_k) / ∏_{j ≠ k} (z_k - z_j)
The key idea is that a degree-4 polynomial can be represented as a product of four linear factors over the complex numbers; simultaneous iteration tries to “pull apart” those factors until each zk lands on a true root.
A quick validation step is to plug a reported root r back into the polynomial and check that f(r) is close to zero (within rounding error).
Consider:
x⁴ − 5x² + 4 = 0
Here the coefficients are a=1, b=0, c=-5, d=0, e=4. This polynomial factors nicely:
x⁴ − 5x² + 4 = (x²-1)(x²-4)
So the roots are:
You should see four real roots near -2, -1, 1, and 2.
| Coefficient situation | Typical outcome | What you’ll see in results |
|---|---|---|
| All coefficients real | Complex roots come in conjugate pairs | … + qi and … − qi appear together |
| Quartic factors into quadratics | Often 0–4 real roots | May be all real or partly complex |
| Near-repeated roots | Sensitive / ill-conditioned | Two roots extremely close; small numerical error |
| Very large/small coefficient magnitudes | Scaling improves stability | Better convergence after rescaling |
If your equation is not quartic (a = 0), reduce it to the correct degree and use the appropriate solver. If you get unexpected results, try scaling coefficients and verify by substituting a reported root back into the polynomial.