MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Bug in Solve?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102955] Re: [mg102921] Bug in Solve?
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 3 Sep 2009 05:38:20 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

soln = Solve[x^3 - 15 x + 2 == 0, x] // Simplify

{{x -> (5 + (-1 + 2*I*Sqrt[31])^
              (2/3))/(-1 + 2*I*Sqrt[31])^
           (1/3)}, 
   {x -> (-5 - 5*I*Sqrt[3] + 
            I*(Sqrt[3] + I)*
              (-1 + 2*I*Sqrt[31])^(2/3))/
         (2*(-1 + 2*I*Sqrt[31])^
              (1/3))}, 
   {x -> (-5 + 5*I*Sqrt[3] + 
            (-1 - I*Sqrt[3])*
              (-1 + 2*I*Sqrt[31])^(2/3))/
         (2*(-1 + 2*I*Sqrt[31])^(1/3))}}

These are the exact radical expressions for the roots. They are all real numbers. The imaginary parts all cancel. Converting these exact results to approximate results leaves some small imaginary components due to numerical noise in the machine number calculations.

soln // N

{{x -> 3.8045115772885625 - 
         8.881784197001252*^-16*I}, 
   {x -> -3.938003499857036 + 0.*I}, 
   {x -> 0.13349192256847392 + 
         7.494005416219807*^-16*I}}

Chop can be used to eliminate these

soln // N // Chop

{{x->3.80451},{x->-3.938},{x->0.133492}}

Note that these radical expressions simplify into the root objects for your original equation

soln // FullSimplify

{{x -> Root[#1^3 - 15*#1 + 2 & , 3]}, 
   {x -> Root[#1^3 - 15*#1 + 2 & , 1]}, 
   {x -> Root[#1^3 - 15*#1 + 2 & , 2]}}


Bob Hanlon

---- tonysin <a2mgoog at yahoo.com> wrote: 

=============
I am just trying to learn Mathematica. What am I doing wrong here?

I have a very simple equation:

x^3 - 15 x + 2 = 0

When I plot it in Mathematica 7,

ClearAll[*]
f[x_] := x^3 - 15 x + 2
Plot[f[x], {x, -5, 5}]


it gives the expected graph of a cubic, with three real roots near -4,
0, and 4.


When I NSolve it,

NSolve[f[x] == 0, x]

it gives

{{x -> -3.938}, {x -> 0.133492}, {x -> 3.80451}}

which is exactly what you would expect from the graph.

But when I Solve it

Solve[f[x] == 0, x]

it gives this mess

{{x -> 5/(-1 + 2 I Sqrt[31])^(1/3) + (-1 + 2 I Sqrt[31])^(
    1/3)}, {x -> -((5 (1 + I Sqrt[3]))/(
     2 (-1 + 2 I Sqrt[31])^(1/3))) -
    1/2 (1 - I Sqrt[3]) (-1 + 2 I Sqrt[31])^(1/3)}, {x -> -((
     5 (1 - I Sqrt[3]))/(2 (-1 + 2 I Sqrt[31])^(1/3))) -
    1/2 (1 + I Sqrt[3]) (-1 + 2 I Sqrt[31])^(1/3)}}


I don't know how it looks in your font, but that "I" in each solution
is the imaginary i.  Solve is saying this equation has no real roots,
even though the graph clearly shows that all three roots are real.

Can someone tell me if I am doing something wrong, or am I expecting
something wrong, or if I just can't trust Mathematica?  Thanks for any
help.




  • Prev by Date: Re: Bug in Solve?
  • Next by Date: Re: Bug in Solve?
  • Previous by thread: Re: Bug in Solve?
  • Next by thread: Re: Bug in Solve?