Message Boards Message Boards

3 Replies
8 Total Likes
View groups...
Share this post:

Reducing cubics

In Mathematica 9, the expression 
Reduce[x^3 - 15 x + 2 == 0, x, Reals, Cubics -> True]
produces the same output as when the Cubics option is not present. This polynomial has three real roots, and previous versions of MMA would give an expression in terms of radicals (although the number i was also present). From the Reduce help page: "With Cubics->True, Reduce solves all cubics in terms of radicals." There are no exceptions mentioned under the "Possible issues" section. Does anyone know what's going on?
POSTED BY: Bruce Torrence
3 Replies
Simon, Sean: Thanks!
POSTED BY: Bruce Torrence
Posted 11 years ago
With ComplexExpand you can coerce the result  you get without the Reals restriction to an expression involving only real terms:

Reduce[x^3 - 15 x + 2 == 0, x, Cubics -> True] // ComplexExpand // Simplify
(* x == Sqrt[5] (Cos[1/3 ArcTan[2 Sqrt[31]]] + Sqrt[3] Sin[1/3 ArcTan[2 Sqrt[31]]]) ||
x == -2 Sqrt[5] Cos[1/3 ArcTan[2 Sqrt[31]]] ||
x + Sqrt[15] Sin[1/3 ArcTan[2 Sqrt[31]]] == Sqrt[5] Cos[1/3 ArcTan[2 Sqrt[31]]]

My guess would be it doesn't try hard enough to get rid of the complex parts of the result and falls back to Root.

Note that Simplify by doesn't use ComplexExpand by default:
 (* Penalize expressions involving Complex *)
 complexity = LeafCount[#] + 1000 Count[#, _Complex, Infinity, Heads -> True] &;
 roots = Reduce[x^3 - 15 x + 2 == 0, x, Cubics -> True];
 (* Gives Bunch of stuff with I *)
  ComplexityFunction -> complexity

(* Same result as roots//ComplexExpand//Simplify *)
ComplexityFunction -> complexity,
TransformationFunctions -> {Automatic, ComplexExpand}
POSTED BY: Simon Schmidt
Reduce[x^3 - 15 x + 2 == 0, x, Reals]  asks Reduce to express the output using Real numbers. It disallows it from using Complex or imaginary values. If you remove the "Reals" expression from your original Reduce statement, you will find that Cubics->True works fine. The radical representation of the roots makes use of imaginary numbers  - that is why it isn't showing up in your original evaluation.
POSTED BY: Sean Clarke
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
or Discard

Group Abstract Group Abstract