Quartics
Quartics
net/publication/262935349
CITATIONS READS
89 5,092
1 author:
Sergei L. Shmakov
Saratov State University
34 PUBLICATIONS 176 CITATIONS
SEE PROFILE
All content following this page was uploaded by Sergei L. Shmakov on 09 June 2014.
Sergei L. Shmakov
Saratov State University
83, Astrakhanskaya Str.,
Saratov, 410012, RUSSIAN FEDERATION
Introduction
are the highest degree polynomials which can be solved analytically, by radicals,
with no iterative techniques. There are several algorithms for this purpose, each
involving a subsidiary cubic equation, the so-called “resolvent”. In his paper
[1] Herbison-Evans examines them in application to computer graphics tasks.
Let us list these five algorithms with their resolvents.
2. Ferrari-Lagrange’s [3]:
3. Neumark’s [4]:
1. Basic Algorithm
(x2 + g1 x + h1 )(x2 + g2 x + h2 ) =
= x4 + (g1 + g2 )x3 + (g1 g2 + h1 + h2 )x2 + (g1 h2 + g2 h1 )x + h1 h2 ,
i.e.
g1 + g2 = a,
g1 g2 + h1 + h2 = b,
(7)
g h + g2 h1 = c,
1 2
h1 h2 = d.
These pair sums and products of g and h allow Vièta’s theorem [8] to be applied
to express these coefficients as the roots of the subsidiary quadratic equations
g2 − ag + b − y = 0,
(8)
h2 − yh + d = 0,
where y is derived from the only equation with the cross products g1 h2 and
g2 h1 . Having explicitly written the roots, substituted them to the equation for
c, and eliminated the radical, one obtains the cubic equation for y (Appendix,
lines 1–9):
y 3 − by 2 + (ac − 4d)y − a2 d − c2 + 4bd = 0. (9)
This is the cubic resolvent of Eq. (1). In our case, it is identical to that of
Ferrari-Lagrange’s method, except for the sign at the even powers of y.
The algorithm is as follows:
1. Calculate the coefficients of Eq. (9) and find its real root (any cubic has
at least one real root).
2. Calculate the coefficients of Eqs (8) and solve them to get g1 , g2 , h1 , and
h2 . Eq. (1) is therefore factored into two quadratics.
2. A Shift of y
where
A = 3δ − b,
B = 3δ2 − 2bδ + ac − 4d, (11)
C = δ3 − bδ2 + (ac − 4d)δ − a2 d − c2 + 4bd
(Appendix, lines 10–11). On finding a real root ys , a backward shift is due with
return to the rest of the master algorithm.
In Neumark’s method δ = b, and
A = 3b − b = 2b,
B = 3b2 − 2b2 + ac − 4d = ac + b2 − 4d, (12)
C = b3 − b3 + (ac − 4d)b − a2 d − c2 + 4bd = abc + c2 − a2 d
3. A Shift of x
4. Hyperbolic Transformation of y
Having the described general scheme, one can easily produce an arbitrary num-
ber of particular algorithms. For example, let us require that the cubic resolvent
should contain no y 2 term (A = 0), then it follows from Eqs (11) that δ = b/3
(note that the condition 8α+3β = 1 holds true and the coefficients of the future
resolvent will be invariant to ∆) provided ∆ = 0, and
2
b2
b b
B=3 − 2b + ac − 4d = ac − − 4d,
33 32 3
b b b
C= −b + (ac − 4d) − a2 d − c2 + 4bd = (15)
3 3 3
abc 2 8
= − a2 d − b3 − c2 + bd
3 27 3
(Appendix, line 13). The subsidiary quadratics will be
2
g2 − ag + b − ys = 0,
3 (16)
2 b
h − ys +
h + d = 0,
3
their roots are
p
a± a2 − 8b/3 + 4ys
g1,2 = , (17)
p2
ys + b/2 ± (ys + b/3)2 − 4d
h1,2 = , (18)
2
(19)
A “new” algorithm for solving quartics is thus “invented”, it provides the cubic
resolvent just in its reduced form.
6. Conclusion
Acknowledgments
References
[2] T. Strong, Elementary and Higher Algebra, Pratt and Oakley (1859).
[3] H.W. Turnbull, Theory of Equations, fourth ed., Oliver and Boyd, London
(1947).
(%i18) subst([D=%[2],a=%[1],b=%[2],c=%[3],d=%[4]],%o12),expand;
3 a2 3 a4 a3 c a 2 b2 a4 b a6
(%o18) [2 b − , −4 d + a c + b2 − a2 b + , −c2 + a b c − − + − ]
4 16 4 4 8 64
(%i19) factor(%[3]); ´2
8 c − 4 a b + a3
`
(%o19) −
64
(%i20) y^3+%th(2)[1]*y^2+%th(2)[2]*y+%th(2)[3];
3 a2 3 a4 a 3 c a 2 b2
„ « „ «
(%o20) y3 + 2 b − y 2 + −4 d + a c + b2 − a2 b + y − c2 + a b c − − +
4 16 4 4
a4 b a6
−
8 64
(%i21) subst([y=(a^3+8*c-4*a*b)/(4*(a+4*yYFB))],%),ratsimp$
(%i22) ` -num(%)/(a^3+8*c-4*a*b),ratsimp;
8c − 4ab + a3 yY F B 3 + 16d + 2ac − 4b2 + a2 b yY F B 2 +
´ ` ´
(%o22)
` ` 2 ´ ´ 2 2
+ 8ad + a − 4b c yY F B + a d − c
(%i23) subst([y=(a^3+8*c-4*a*b)/(16*yCB)],%th(3)),ratsimp$
(%i24) expandwrt(ratsimp(num(%)/coeff(expand(num(%)),yCB,3)),
yCB)$
(%i25) create_list(coeff(%,yCB,n),n,[2,1,0]),ratsimp;
64 d − 16 a c − 16 b2 + 16 a2 b − 3 a4 8 b − 3 a2 8 c − 4 a b + a3
(%o25) [ ,− ,− ]
32 c − 16 a b + 4 a 3 16 64
260