Re: Solve...

• To: mathgroup at smc.vnet.net
• Subject: [mg25741] Re: [mg25681] Solve...
• From: Daniel Lichtblau <danl at wolfram.com>
• Date: Sat, 21 Oct 2000 14:42:51 -0400 (EDT)
• References: <200010190835.EAA21542@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Anesh Sooklal wrote:
>
> Dear mathgroup,
>
> I have been trying to solve the following equation using Solve,
> When I type in the following line I get a message saying that an illegal
> operation has been performed.
>
> f[w_]: = 1./(w^2)  + (.9/30.)/(w - 2. Sqrt[200./10.]k)^2   - 1.-
> (3./30.)/( Sqrt[200./10.]k^2 )
>
> Solve[f[w]==0., w]
>
> Can anyone tell me what I am doing wrong. My aim is to generate a set a
> roots,w , which is a function of k.
>
> Aneshkumar Sooklal
> Research Assistant
> Dept. of Physics
> University of Durban-Westville
> South Africa
>
> Tel: (031) 204 4991
> email: anesh at fermi.udw.ac.za
>
> Physics Homepage: http://fermi.udw.ac.za
> Plasma Physics Homepage:  http://plasma.udw.ac.za

Note that there is a typo, you do not want a space between colon and
equal.

The problem you encounter is due to a bug. A workaround is to
rationalize everything. For example you could do

f[w] = 1./(w^2)  + (.9/30.)/(w - 2. Sqrt[200./10.]k)^2   - 1.-
(3./30.)/( Sqrt[200./10.]k^2 );

N[Solve[Rationalize[f[w],0]==0, w]]

Note that this does not cost you in speed due to use of exact
arithmetic. Even in our development version, where the bug is fixed,
Solve will use exact arithmetic via Rationalize for such problems.
Likewise NSolve, in cases such as this where the solution set is in
terms of parameters.

Daniel Lichtblau
Wolfram Research

```

• References:
• Solve...
• From: Anesh Sooklal <anesh@fermi.udw.ac.za>
• Prev by Date: Re: Using results of "Solve"
• Next by Date: Re: Solve...