Re:Re: Solve Limitations

*To*: mathgroup at smc.vnet.net*Subject*: [mg63103] Re:[mg62980] Re: [mg62963] Solve Limitations*From*: "Marcelo Mayall" <mmayall at bol.com.br>*Date*: Wed, 14 Dec 2005 04:36:04 -0500 (EST)*Sender*: owner-wri-mathgroup at wolfram.com

> > 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??? > > > > Thanks, > > Marcelo Mayall > > > > > > There is no way, in general, to avoid getting so called "parasite" > solutions in parametric equations with radicals. This is not a > limitation of Solve but of known mathematics. > > If your equation has numerical coefficients then the option > VerifySolutions->True will usually (but not always) insure that the > parasite solutions are eliminated. > > Andrzej Kozlowski > > Another simple case that could, a priori, exemplify the limitation of the Solve function: In[1] := Solve[x^0.5 + a x == 0, x] Out[1] {{x -> 0}, {x -> 1 / a^2}} However, the correct answer should have the following form: If a >= 0, {x -> 0} If a < 0 , {{x -> 0}, {x -> 1 / a^2}} It seems to me that, in this case, this is not a limitation of the known mathematics but a limitation of the algorithm of the Solve function. Thanks, Marcelo Mayall