MathGroup Archive 1996

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

Search the Archive

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



  • Prev by Date: Re: [Q] FindRoot & large system of eqns
  • Next by Date: Enhancements of Combinatorica, Re:List help needed
  • Previous by thread: Re: Solve results
  • Next by thread: Q: About PAUSING in V2.2