Department of Energy Argonne National Laboratory Office of Science NEWTON's Homepage NEWTON's Homepage
NEWTON, Ask A Scientist!
NEWTON Home Page NEWTON Teachers Visit Our Archives Ask A Question How To Ask A Question Question of the Week Our Expert Scientists Volunteer at NEWTON! Frequently Asked Questions Referencing NEWTON About NEWTON About Ask A Scientist Education At Argonne Quadratic Formula and roots of a cubic
Name: yendor
Status: N/A
Age: N/A
Location: N/A
Country: N/A
Date: Around 1995

It is well known that there is a quadratic formula which finds the two roots of ax^2 + bx + c = 0 (a does not equal 0). Is there a corresponding cubic formula that finds three roots of the cubic ax^3 + bx^2 + cx + d = 0 (a does not equal 0)? If there is not, could you explain why not, and if there is could you please explain the proof to me?

Any cubic, y^3 + p*y^2 + q*y + r = 0 can be reduced to x^3 + a*x + b = 0 by the substitution x = y - p/3 and where a = (3*q - p^2)/3 and b = (2*p^3 - 9*p*q + 27*r)/27. Then the three solutions are given by:
         x = A + B,  -(A + B)/2 +/- (A - B)*sqrt(-3)/2
where    A = [ sqrt((b/2)^2 + (a/3)^3) - b/2 ]^ 1/3

and B is same as A except for a minus sign in front of the sqrt.


Yes, there is a formula for the roots of a cubic equation. Its derivation is not nearly so straightforward as that for the quadratic formula; you cannot just "complete the cube". All of the derivations of the formula that I have seen require at least one leap of intuition. Furthermore, the formula itself is kind of cumbersome: if the cubic has three real roots, the formula requires the user to calculate cube roots of complex numbers, even though the imaginary parts end up canceling each other out. The formula is used by all of the symbolic algebra packages (Mathematica, Macsyma, etc.) that I have seen, probably simply because it is general (works for all cubics, even those with complex coefficients). For numerical work with cubics having real coefficients, it is not much used; instead, one real root (every cubic with real coefficients has at least one real root) is computed (using Newton's method, for example), then this root is used to reduce the cubic to a quadratic; then the quadratic formula can be used to obtain the other two roots.

I will give a sketch of the derivation here. A more complete derivation (along with its historical context) is given in the excellent book "Journey through Genius" by Wm. Durham. I will use the notation found in that book.

First, every cubic equation a*y^3 + b*y^2 + c*y + d = 0 can be reduced to the form x^3 + m*x = n

divide through by a,
then substitute y = x-[b/(3*a)] and expand.

Then collect terms in powers of x and relabel the coefficients. Now, a step that looks like it came out of nowhere, but it has a geometric basis which actually provided the guidance for the original solution (see the book for this): note that (t-u)^3 = t^3 - 3*t^2*u + 3*t*u^2 - u^3. This can be rewritten as (t-u)^3 + 3*t*u*(t-u) = t^3 - u^3. Here is the intuitive leap: we can convert this to our reduced cubic if we set:
       x = t-u, m = 3*t*u, and  n = t^3 - u^3.  

Solve the second of these for u, then substitute this into the last equa- tion, then multiply through by t^3; we get
       n*t^3 = t^6 - m^3/27, 
which may be written (t^3)^2 - n*(t^3) - m^3/27 = 0, 
which is quadratic in t^3!  
Solving,  t^3 = n/2 + sqrt(n^2/4 + m^3/27) 

(the "-" root from the quadratic formula does not add anything new), and u^3 = t^3 - n = -n/2 + sqrt(n^2/4 + m^3/27). Taking cube roots of these, we can find t and u, then get x = t - u, and finally, y = x - [b/(3*a)]. Let the root found in this manner be denoted r; then (y - r) divides the original cubic, yielding a quadratic which can be solved using the quadratic formula to find the other two roots. (Technically, we can find all three roots at the earlier step of taking the cube root of t; in addition to the real cube root of t, there will be two complex roots, but then you need to use the m = 3*t*u equation to match up the proper u solution for each t solution.)


Click here to return to the Mathematics Archives

NEWTON is an electronic community for Science, Math, and Computer Science K-12 Educators, sponsored and operated by Argonne National Laboratory's Educational Programs, Andrew Skipor, Ph.D., Head of Educational Programs.

For assistance with NEWTON contact a System Operator (, or at Argonne's Educational Programs

Educational Programs
Building 360
9700 S. Cass Ave.
Argonne, Illinois
60439-4845, USA
Update: June 2012
Weclome To Newton

Argonne National Laboratory