[Date Index]
[Thread Index]
[Author Index]
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**
| |