Re: Bug in Solve?
- To: mathgroup at smc.vnet.net
- Subject: [mg102961] Re: Bug in Solve?
- From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
- Date: Thu, 3 Sep 2009 05:39:31 -0400 (EDT)
- References: <h7l8rh$35s$1@smc.vnet.net>
This question pops up regularly. Some related documentation in Mathematica can be found in tutorial/ FunctionsThatDoNotHaveUniqueValues. Basically, the answers Mathematica gives are correct (just fill in the results in the equations), but often there are more -complex- solutions for each root. NSolve naturally only picks the Real ones whereas may pick an imaginary one depending on the functions and branch cuts involved. You might apply Abs to the answers in this case to see that they're of the same magnitude as the real ones. Cheers -- Sjoerd On Sep 2, 10:02 am, tonysin <a2mg... 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.