Re: Solve results
- To: mathgroup at smc.vnet.net
- Subject: [mg5110] Re: Solve results
- From: danl (Daniel Lichtblau)
- Date: Wed, 30 Oct 1996 22:04:11 -0500
- Organization: Wolfram Research, Inc.
- Sender: owner-wri-mathgroup at wolfram.com
In article <54rsdn$33l at dragonfly.wolfram.com> dwarf at wam.umd.edu (Dwarf)
writes:
> I recently came upon this and was wondering if it's a Solve bug, some
> notation I'm not familiar with, or just an unfortunate happenstance.
>
> When I give Mathematica the equation x^3-8==0, this is what it returns:
>
> In[1]:=
> Solve[x^3-8==0,x]
> Out[1]=
> {{x -> 2}, {x -> -2*(-1)^(1/3)}, {x -> 2*(-1)^(2/3)}}
>
> But if I first factor the polynomial instead:
>
> In[2]:=
> Solve[Factor[x^3-8]==0,x]
> Out[2]=
> {{x -> 2}, {x -> (-2 - 2*I*3^(1/2))/2},{x -> (-2 +
2*I*3^(1/2))/2}}
>
> if I use reduce instead of solve
>
> In[3]:=
> Reduce[x^3-8==0,x]
> Out[3]=
> x == 2 || x == (-2 - 2*I*3^(1/2))/2 || x == (-2 + 2*I*3^(1/2))/2
>
>
> My question is: why the different behaviors, and how can I tell in
advance
> which to use?
>
> +----------------------------+
> | | I understand mine's a risky plan,
> | Greg Anderson | and your system can't miss
> | dwarf at wam.umd.edu | but is security, after all a cause
> | timbwolf at eng.umd.edu | or symptom of happiness.
> | |
> +----------------------------+ Dream Theater -- A Matter of Time
>
>
Solve recognizes it has one equation in one unknown, and right away calls
Roots. Roots tries various methods in the order of likely increasing
difficulty. It will thus use special-case binomial code in preference to
factorization. Hence the solutions involving roots of unity.
Reduce will not take this one-equation/one-unknown shortcut, hence goes
through the full fire drill, which involves factorization as a
preprocessing step. Factoring x^3 - 8 produces a linear term and a
quadratic term, and the results you get from Solve[Factor[x^3-8]==0,x]
come from application of the quadratic formula. I should point out that
the results are mathematically equivalent to those expressed in terms of
roots of unity.
Version 3.0 of Mathematica is a trifle smarter in massaging these radical
outputs, by the way.
In[4]:= Solve[Factor[x^3-8]==0,x]
Out[4]= {{x -> 2}, {x -> -1 - I Sqrt[3]}, {x -> -1 + I Sqrt[3]}}
Daniel Lichtblau
Wolfram Research
danl at wolfram.com