MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Emergent Help: NSolve Problems!

  • To: mathgroup at smc.vnet.net
  • Subject: [mg39784] Re: [mg39753] Emergent Help: NSolve Problems!
  • From: BobHanlon at aol.com
  • Date: Fri, 7 Mar 2003 03:31:35 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com


In a message dated 3/6/03 4:07:23 AM, wcz at ece.ucsd.edu writes:


> I have some complicated polynomials, and I want to calculate its roots.
> HOwever, when I use NSolve, it creates some problems. Say a simple
> example:
>
> temp[s_]=s^10+10 s^9+ 10 s^8 +10 s^7 +10 s^6+ 10 s^5 +10 s^4 +1;
> NSolve[temp[s]==0, s]
>
> It will give:
>
> Out[4]= {{s -> -8.99998}, {s -> -1.06539}, {s -> -0.468828 - 0.886239 I},
>
> >    {s -> -0.468828 + 0.886239 I}, {s -> -0.409684 - 0.469948 I},
>
> >    {s -> -0.409684 + 0.469948 I}, {s -> 0.401048 - 0.312597 I},
>
> >    {s -> 0.401048 + 0.312597 I}, {s -> 0.51015 - 0.878693 I},
>
> >    {s -> 0.51015 + 0.878693 I}}
>
> But when I plug in the first number, which is "-8.99998", it should give a
> value close to zero. However, it gives:
>
> In[5]:= temp[-8.99998]
> Out[5]= -411.473
>
> The other roots seems OK. Does anyone know why? This is just a simple
> example. I have some more complicated polynomials to deal with.
>
>

temp[s_]=s^10+10 s^9+ 10 s^8 +10 s^7 +10 s^6+ 10 s^5 +10 s^4 +1;


soln = NSolve[temp[s]==0, s];


The first root is not -8.99998 that is merely the rounded output for display.
  Its machine precision value is


soln[[1]] // InputForm


{s -> -8.999981180131652}


Using the machine precision results


temp[s] /. soln // Chop


{-9.53674*^-7, 0, 0, 0, 0, 0, 0, 0, 0, 0}

The function is changing very rapidly in the vicinity of that root.   This is
easily confirmed using Plot.



Bob Hanlon



  • Prev by Date: Re: Solving a system of Inequalities
  • Next by Date: Re: Re: visualizing Map, Thread, Apply
  • Previous by thread: Re: Emergent Help: NSolve Problems!
  • Next by thread: Re: Emergent Help: NSolve Problems!