Message Boards Message Boards

1
|
9898 Views
|
5 Replies
|
2 Total Likes
View groups...
Share
Share this post:

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

Posted 11 years ago
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?
POSTED BY: Thomas Vogler
5 Replies
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 BY: Frank Kampas
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 BY: Thomas Vogler
Posted 11 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 BY: Bill Simpson
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 BY: Thomas Vogler
Posted 11 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.9873030252752334544041625766072183991968784352020
Chop[] is one way to eliminate extremely tiny components from numbers, real and complex.
POSTED BY: Bill Simpson
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract