Re: Beware of NSolve - nastier example

*To*: mathgroup at smc.vnet.net*Subject*: [mg50346] Re: Beware of NSolve - nastier example*From*: carlos at colorado.edu (Carlos Felippa)*Date*: Sat, 28 Aug 2004 04:37:58 -0400 (EDT)*References*: <200408200858.EAA12533@smc.vnet.net> <cg6srb$odf$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Daniel Lichtblau <danl at wolfram.com> wrote in message news:<cg6srb$odf$1 at smc.vnet.net>... < ... > > > On the flip side, the heuristics that decide when a root actually > satisfies the equation can be a bit lax. Hence parasites can wind up in > the returned solution set. One way to influence this is to rescale the > equation e.g. multiplying by some large number. > > I'll look into tightening some of the decisions as to what constitutes a > sufficiently small residual. The near-double-root issue goes with the > territory and is in no way incorrect behavior. > > What is NR, by the way? > > > Daniel Lichtblau > Wolfram Research Newton and Raphson from Olde England. Joseph Raphson was rumored to be Newton's programmer. BTW your suggestion to scale the equation does yield some improvements -- at least no wrong roots appear: f=10^8*(5/432-11/(27*Sqrt[70]*Sqrt[19-1890*x])+x/(2*Sqrt[38/35-(108+1/10000000)*x])); Print[N[Solve[f==0,x]]]; (* gives 3 roots *) Print[NSolve[f,x,16]]; (* 3 correct roots *) Print[NSolve[f,x,21]]; (* 2 roots, missed 1 *) Print[NSolve[f,x,24]]; (* 2 roots, missed 1 *) Print[NSolve[f,x,28]]; (* 2 roots, missed 1 *) Print[NSolve[f,x,32]]; (* 2 roots, missed 1 *) Print[NSolve[f,x,64]]; (* 2 roots, missed 1 *) Print[NSolve[f,x,128]]; (* 3 correct roots *)

**Follow-Ups**:**Re: Re: Beware of NSolve - nastier example***From:*Daniel Lichtblau <danl@wolfram.com>

**References**:**Beware of NSolve - nastier example***From:*carlos@colorado.edu (Carlos Felippa)