MathGroup Archive 2005

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

Search the Archive

Re: Solve Limitations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62985] Re: [mg62963] Solve Limitations
  • From: Sseziwa Mukasa <mukasa at jeol.com>
  • Date: Sat, 10 Dec 2005 06:02:53 -0500 (EST)
  • References: <200512091010.FAA05489@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

On Dec 9, 2005, at 5:10 AM, Marcelo Mayall wrote:

>
> Let's suppose that we are interested in the roots analytic  
> expression of
> the following function:
> In[1] :=  f = a x + b x^(3/2) + c;
> The function Solve could be used:
> In[2] :=  sol = Solve[f==0, x];
> Defining the values of the constants a, b, c would return the  
> following numeric values:
> In[3] :=  froots = Solve[f==0, x]/. {a->1, b->1, c->1} //N
> Out[3] =  {{x-> 2.1479}, {x-> -0.57395 + 0.368989 I}, {x-> -0.57395  
> - 0.368989 I}}
> However, f is not null for those values and therefore, these are  
> not the roots of f:
> In[4] :=  f/. froots/. {a-> 1, b-> 1, c-> 1} //Chop
> Out[4] =  {6.2958, 0, 0}
> At first, it seems that the function Solve doesn't take  
> appropriately in
> consideration the term in square root.
> Some idea to obtain the correct analytic solution of f ??? Or, in  
> fact, this a limitation of the function Solve???

I think the answer is you're not solving the problem you think you are.

In the general case a x + b x^(3/2) + c  has at most 3 roots, which  
is what Solve finds in In[2].

In the specific case though x+x^(3/2)+1 has only two roots as Solve  
correctly finds:

In[52]:=
Solve[ a x + b x^(3/2) + c==0/. {a->1, b->1, c->1}, x]

Out[52]=
({{x -> 1/3 - 1/6 (1 + I Sqrt[3]) (47/2 - 3 Sqrt[93]/2)^(1/3) - 1/6  
(1 - I Sqrt[3]) (1/2 (47 + 3 Sqrt[93]^(1/3)},
  {x -> 1/3 - 1/6 (1 - I Sqrt[3]) (47/2 - 3 Sqrt[93]/2)^(1/3) - 1/6  
(1 + I Sqrt[3]) (1/2 (47 + 3 Sqrt[93])^\(1/3)}}

It is not the case that the terms from the first expression  
degenerate to the second, there is no degenerate root for x+x^(3/2) 
+1.  So I suppose the moral of the story is if you solved the general  
case you have to test your solutions in the special case to make sure  
they are roots.

Regards,

Ssezi


  • Prev by Date: Re: Evaluate[] not needed in With[]
  • Next by Date: Re: Types in Mathematica thread
  • Previous by thread: Re: Solve Limitations
  • Next by thread: Re:Re: Solve Limitations