# Remove imaginary numbers from the solution of a polynom of 3rd degree

Posted 10 years ago
9038 Views
|
5 Replies
|
2 Total Likes
|
 I try to solve the following expression:Solve[100 - 20 x - 8 x^2 + x^3 == 0, {x}]and get as output terms containing complicated expressions using the imaginary unit (highlight added by me). Evaluating the solutions numerically, it shows that they are all appearantly real:N[Solve[100 - 20 x - 8 x^2 + x^3 == 0, {x}], 50]the imaginary part is 0. x 10^-50. A plot of the function also shows the real zeros at -3.8..., 2.8... and 8.9...:Plot[100 - 20 x - 8 x^2 + x^3, {x, -10, 10}]What can I do the have the result returned by Solve modified not to use complex numbers, but only square and cube roots?
5 Replies
Sort By:
Posted 10 years ago
 Much better!Now i will get out my trig book and find a formula for Cos[1/3 ArcTan] and Sin[1/3 ArcTan]Thank you so far,Thomas
Posted 10 years ago
 Solve[100 - 20 x - 8 x^2 + x^3 == 0, {x}] // ComplexExpand // Simplify{{x -> -(4/     3) (-2 + Sqrt[31] Cos[1/3 ArcTan[(15 Sqrt[2103])/59]])}, {x ->    2/3 (4 + Sqrt[31] Cos[1/3 ArcTan[(15 Sqrt[2103])/59]] -       Sqrt[93] Sin[1/3 ArcTan[(15 Sqrt[2103])/59]])}, {x ->    2/3 (4 + Sqrt[31] Cos[1/3 ArcTan[(15 Sqrt[2103])/59]] +       Sqrt[93] Sin[1/3 ArcTan[(15 Sqrt[2103])/59]])}}N[%, 50]{{x -> -3.8656687649674311220365390976805947881525760316928}, {x ->    2.8783657396921976676323765210733763889556975964908}, {x ->    8.9873030252752334544041625766072183991968784352020}}
Posted 10 years ago
 I'm very sorry. I misunderstood your goal.Try this and see if it is acceptable. I hope that ComplexExpand has not introduced errors. I realize it has rearranged the x into a position you may not desire. The other methods I tried kept falling back into Root objects. Perhaps someone else will contribute a better solution for you.Simplify[ComplexExpand[ToRadicals[Reduce[100 - 20 x - 8 x^2 + x^3 == 0, x]]]]
Posted 10 years ago
 Hi Bill,thank you for your reply. But thats not exactly what i want. I am not interested in a numeric solution but in a symbolic solution with radicals etc, that does not contain "i".Regards,Thomas
Posted 10 years ago
 In[1]:= Reduce[100 - 20 x - 8 x^2 + x^3 == 0, x] /. Root[v__] :> Chop[N[ToRadicals[Root[v]], 50]]Out[1]= x == -3.8656687649674311220365390976805947881525760316928 || x == 2.8783657396921976676323765210733763889556975964908 || x == 8.9873030252752334544041625766072183991968784352020Chop[] is one way to eliminate extremely tiny components from numbers, real and complex.
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.