MathGroup Archive 2009

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

Search the Archive

Re: Bug in Solve?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102966] Re: [mg102921] Bug in Solve?
  • From: "David Park" <djmpark at comcast.net>
  • Date: Thu, 3 Sep 2009 05:40:27 -0400 (EDT)
  • References: <11688861.1251880873838.JavaMail.root@n11>

f[x_] := x^3 - 15 x + 2
Solve[f[x] == 0, x]
N[%] // Chop

gives the same answers. Solve is returning exact answers but in a form where
it is not immediately apparent that they are real. You can obtain
approximate values by using N on the result but then you also have to use
Chop to get rid of round-off errors in the imaginary values.

In some cases, and certainly with higher order polynomials, Solve will give
you Root expressions. (Look them up.) These are also exact solutions, which
you can convert to approximate solutions with N. Try:

f[x_] := x^3 - 15 x + 2
Solve[f[x] == 0, x]
FullSimplify[%]
N[%]


David Park
djmpark at comcast.net
http://home.comcast.net/~djmpark/  


From: tonysin [mailto:a2mgoog at yahoo.com] 


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: Re: Faster alternative to AppendTo? --
  • Next by Date: Re: Re: Replace in operators
  • Previous by thread: Re: Bug in Solve?
  • Next by thread: Re: Bug in Solve?