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