       Re: NSolve unable to find all possible roots

• To: mathgroup at smc.vnet.net
• Subject: [mg115613] Re: NSolve unable to find all possible roots
• From: Daniel Lichtblau <danl at wolfram.com>
• Date: Sun, 16 Jan 2011 05:54:20 -0500 (EST)

```----- Original Message -----
> From: "Luiz Melo" <luiz.melo at polymtl.ca>
> To: mathgroup at smc.vnet.net
> Sent: Saturday, January 15, 2011 3:45:17 AM
> Subject: [mg115577] NSolve unable to find all possible roots
> Dear mathgroup,
> The equation below has three possible roots, namely: 0., 1.99, -1.99.
>
> eq = x*(Sqrt[-13.319 - x^2] + 2.41*Sqrt[1.004 - x^2])
>
> If we try NSolve[eq == 0, x], we get {{kx-> 0.}} only.
>
> How to instruct NSolve to search for the other two roots of the above
> equation?
>
> Thank you
> Luiz Melo

Actually only 0 is a root. A graph (command below) will show this.

Plot[Abs[eq], {x, -5, 5}]

The other two are what are generally called parasite roots, that is, they solve a closely related system of equations. These are obtained by treating the square roots as variables, with new polynomial equations that define them. Can be done as below.

In:= e2 = {x*(s1 + 2.41*s2), s1^2 - (-13.319 - x^2),
s2^2 - (1.004 - x^2)};

In:= Union[x /. NSolve[e2]]
Out= {-1.995728284766841, 0., 1.995728284766838}

The issue (I think) is that Sqrt[] is a function, returning the principal square root of a complex number. You might have been regarding it instead as "multivalued function", returning the set of all square roots.

Daniel Lichtblau
Wolfram Research

```

• Prev by Date: Re: avoiding non-machine numbers
• Next by Date: Re: Apply or Map on some parts of lists - help
• Previous by thread: Re: NSolve unable to find all possible roots
• Next by thread: Apply or Map on some parts of lists - help