Re: Beware of NSolve - nastier example
- To: mathgroup at smc.vnet.net
- Subject: [mg50414] Re: Beware of NSolve - nastier example
- From: carlos at colorado.edu (Carlos Felippa)
- Date: Thu, 2 Sep 2004 04:34:54 -0400 (EDT)
- References: <200408200858.EAA12533@smc.vnet.net> <cg6srb$odf$1@smc.vnet.net> <200408280837.EAA19074@smc.vnet.net> <200408311028.GAA18653@smc.vnet.net> <opsdluzdvziz9bcq@monster.cox-internet.com> <ch3olv$33$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
DrBob <drbob at bigfoot.com> wrote in message news:<ch3olv$33$1 at smc.vnet.net>... > Oops, in my last paragraph I claimed convergence for a wider range of starting values than I actually get. (I had a typo when doing some of the tests.) 0.003`n to 0.04`n looks fine. At least it converges for SOME input, which is more than the raw Newton iteration can do. > > Of course, I used Solve to get the h function--the same Solve routine that solved the original problem already! No problem whatsoever for conventional NR in 16-digits (double precision) if you are sufficiently near a root. Just run this NR iteration, which is at the level of the homeworks I assign to engineering sophomores: ClearAll[f,x]; f=(5/432-11/(27*Sqrt[70]*Sqrt[19-1890*x])+x/(2*Sqrt[38/35-(108+1/10000000)*x])); fprime=D[f,x]; Print[N[Solve[f==0,x]]//InputForm]; (* gives 3 correct roots *) SetPrecision[{xn,xnext,r,f,fprime,fp},16]; xn=0.0100529100415; (* the slippery root *) n=10; (* actually n=3 is enough to get limit accuracy *) For [i=1,i<=n,i++, r=N[f/.x->xn]; fp=N[fprime/.x->xn]; dx=-r/fp; xnext=xn+dx; Print[{i,r,fp,dx,xn,xnext}//InputForm]; xn=xnext]; The derivative f' is large, O(10^13) whereas the residual goes down to O(10^(-4)). The interval where NR converges to that root is tiny, of O(10^(-10), but finite. If one tries single precision (~ 6-7 digits) NR fails, as noted by Daniel Lichtblau, since the convergence interval falls in the noise. What is a bit surprising to me is that NSolve applied directly to f, (not as N[Solve][..]]) needs 128-digit working precision to resolve that root.
- Follow-Ups:
- Re: Re: Beware of NSolve - nastier example
- From: Daniel Lichtblau <danl@wolfram.com>
- Re: Re: Beware of NSolve - nastier example
- From: DrBob <drbob@bigfoot.com>
- Re: Re: Beware of NSolve - nastier example