This is a method of solving the general quartic equation that my father showed me. The result is a very nice, compact and symmetric expression for the roots.
Problem
Solve the quartic equation
aX4+bX3+cX2+dX+e=0
for X.
Solution
First divide through by a and then substitute X=x−4ab in order to eliminate the cubic term. This leaves us with
x4+px2+qx+r=0.(depressed-quartic)
Now, introduce a new variable y=x2+p/2. Then our quartic is equivalent to the pair of simultaneous equations:
y2+qx+(r−4p2)x2−y+2p=0=0.(parabolas)
These two equations each describe parabolas in the xy-plane, one oriented vertically and one oriented horizontally. The intersections (there can be up to four) correspond to roots of our quartic (at least, the x-coordinates of those intersections do). Finding those intersections is still very hard.
There is a great trick to move forward: we consider the problem in a more general light. Define
fm(x,y)=(y2+qx+(r−4p2))+m(x2−y+2p).
If we consider a solution (x,y) of our simultaneous equations, then fm(x,y)=0 for every m (of course, fm will generally have other zeroes in addition to those). In other words, every curve in the family F={(x,y)∈R2∣fm(x,y)=0}m∈R will contain our points of interest.
Now, the equation
fm(x,y)=0
describes a conic section in the xy-plane. Completing the square, we find
(y−2m)2+m(x+2mq)2=(4mq2+41(p−m)2−r).
This conic changes its character as m is varied, from ellipse to hyperbola, etc. However, every conic in this family F contains the points where the parabolas \eqref{parabolas} intersect.
To find these points common to the family of conics, we use another great trick. There are a handful of particularly simple conic sections that can be picked out of the family F: when the right hand side vanishes, the conic sections are simply lines! The condition for this is
m3−2pm2+(p2−4r)m+q2=0,(cubic)
and the resulting conics are
(y−2m)2=−m(x+2mq)2
or
y=2m±−m(x+2mq).
We will call the three roots of \eqref{cubic} m1, m2 and m3. For each of those values of m, the conic is a pair of intersecting lines which, again, always contain the points we care about.
Out of those three special values of m, we will take m1 and m2 and consider the intersections of those conics. In a normal, non-degenerate case, we expect four intersections: line 1 of the m1 conic will hit each of the two lines of the m2 conic; line 2 of the m1 conic will do the same. Of course, working with lines, it is easy to find the intersections.
For example, considering the intersection of the + branch for m1 with the + branch of m2, we write
2m1+−m1(x+++2m1q)=2m2+−m2(x+++2m2q).
This simplifies if we expand m1−m2 as a difference of squares. Then we get
x++=−21(−m1+−m2+m1m2q).
The other three solutions, x+−, x−+ and x−− all look similar.
Another simplification comes if we recall that
(m−m1)(m−m2)(m−m3)=m3−2pm2+(p2−4r)m+q2,
so that q2=−m1m2m3. If we assume that q>0, then q=−m1m2m3, we find a very nice form for the four solutions:
x++=21(−−m1−−m2−−m3),x+−=21(−−m1+−m2+−m3),x−+=21(+−m1−−m2+−m3),x−−=21(+−m1+−m2−−m3).
Thus the roots of the depressed quartic \eqref{depressed_quartic} are expressed as symmetric combinations of the roots of the cubic \eqref{cubic}. They are symmetric in the sense that the arbitrary numbering “<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML">m1<span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"><span class="mord"><span class="mord mathnormal">m<span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1<span class="vlist-s"><span class="vlist-r"><span class="vlist" style="height:0.15em;">”, etc. is irrelevant: x++ is independent of any numbering scheme, while the other three solutions each simply single out one of three m values to have a negative sign.
We can verify that these solutions are correct by checking that
(x−x++)(x−x−+)(x−x+−)(x−x−−)=x4+px2+qx+r.
Expanding, and making reference to a similar expansion of \eqref{cubic}, we see that
i∑xi=i<j∑xixj=21(m1+m2+m3)=i<j<k∑xixjxk=−−m1m2m3=−q2=i∏xi=161((m1+m2+m3)2−4(m1m2+m1m3+m2m3))=0,p,−q,r.
Therefore the roots of the quartic may be expressed as
X1=−4ab+21(−−m1−−m2−−m3),X2=−4ab+21(−−m1+−m2+−m3),X3=−4ab+21(+−m1−−m2+−m3),X4=−4ab+21(+−m1+−m2−−m3).
with m1,m2,m3 the roots of the cubic \eqref{cubic}.
What if q<0?
If we back up a bit, we see that it was important, in the final expressions, that q>0. However, the actual expression for q, coming from \eqref{depressed-quartic} is
q=ad+8a3b3−2a2bc.
This could very easily be negative. Therefore we must consider the case separately.
We now have q=−−m1m2m3 and the solutions become
x++′=21(−−m1−−m2+−m3),x+−′=21(−−m1+−m2−−m3),x−+′=21(+−m1−−m2−−m3),x−−′=21(+−m1+−m2+−m3).
Note that x++′=−x−−, etc. These are the negatives of the roots from the case where q>0. However, they are, indeed, different values from before.
In verifying the expansion for \eqref{depressed-quartic}, we find that the condition for the coefficient of x changes slightly so that the q<0 solutions check out.
TODO: numerically evaluating this stuff in Mathematica indicates there are issues. for some parameters the solution is right, but not as often as I’d hope. the issues are probably due to being too loose with radicals of negative quantities. It’s standard for some of the m’s to be positive. −m1−m2 is not generally m1m2.