Skip to content

Quartics

Status: Experimental

present and registered, but lightly documented and not yet covered by dedicated tests.

Description

Quartics is an option for Solve that controls whether quartic
    equations are solved via explicit radical formulas
    (Quartics -> True) or returned as held Root[] objects
    (default Quartics -> False).

Examples

No verified examples yet for this function.

Implementation notes

Quartics is not a builtin function — it is an option symbol for Solve, registered (with its docstring) in solve_init. It is recognised by is_known_option_name and consumed in apply_option, which sets opts.poly.quartics_radical = (rhs === True). With the default Quartics -> False, quartic equations are returned as held Root[] objects; Quartics -> True requests explicit radical (Ferrari) formulas from the polynomial specialist (src/poly/solvepoly.c). The same option is forwarded by Eigenvalues/Eigensystem (src/linalg/) so the characteristic-polynomial roots can likewise be returned as radicals or held Root[]s.

Attributes: none registered.

Implementation status

Experimental — present and registered, but lightly documented and not yet covered by dedicated tests.

References

Notes & additional examples

Worked examples

In[1]:= Solve[x^4 + x + 1 == 0, x]
Out[1]= {{x -> Root[1 + #1 + #1^4 &, 1]}, {x -> Root[1 + #1 + #1^4 &, 2]}, {x -> Root[1 + #1 + #1^4 &, 3]}, {x -> Root[1 + #1 + #1^4 &, 4]}}

In[2]:= Quartics
Out[2]= Quartics

A biquadratic quartic factors automatically into explicit radicals regardless of the option setting:

In[1]:= Solve[x^4 - 5 x^2 + 6 == 0, x]
Out[1]= {{x -> -Sqrt[2]}, {x -> Sqrt[2]}, {x -> -Sqrt[3]}, {x -> Sqrt[3]}}

A pure fourth power yields the four complex fourth roots in closed form:

In[1]:= Solve[x^4 - 2 == 0, x]
Out[1]= {{x -> -2^(1/4)}, {x -> 2^(1/4)}, {x -> -I 2^(1/4)}, {x -> I 2^(1/4)}}

A non-biquadratic but radical-solvable quartic gives nested radicals; here the roots are the four values ±Sqrt[2] ± Sqrt[3] written as Sqrt[(10 ± 4 Sqrt[6])/2]:

In[1]:= Solve[x^4 - 10 x^2 + 1 == 0, x]
Out[1]= {{x -> -Sqrt[1/2 (10 - 4 Sqrt[6])]}, {x -> Sqrt[1/2 (10 - 4 Sqrt[6])]}, {x -> -Sqrt[1/2 (10 + 4 Sqrt[6])]}, {x -> Sqrt[1/2 (10 + 4 Sqrt[6])]}}

Notes

Quartics is a Solve option (the quartic analogue of Cubics), not a function; evaluating the bare symbol just returns itself. With the default Quartics -> False, an irreducible quartic is returned as held Root[] objects as above; Quartics -> True requests explicit radical formulas where they apply (biquadratic and other special quartics still reduce automatically).