Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2003
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2003

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

Search the Archive

Re: Default Precision isn't reached yet no warning about convergence are generated

  • To: mathgroup at smc.vnet.net
  • Subject: [mg44693] Re: Default Precision isn't reached yet no warning about convergence are generated
  • From: adam.smith at hillsdale.edu (Adam Smith)
  • Date: Fri, 21 Nov 2003 05:13:16 -0500 (EST)
  • References: <bpffvc$m07$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

I think that you have a misunderstanding of the meaning of
MaxPrecision.  Look in the Mathematica Help under Machine-Precision(or
$MachinePrecision) for a discussion of floating-point calculations.

In any case FindRoot is an approximation scheme that will yield an
approximate root.  The fact that plugging the value back into the
function gives the very small result 10^-9 result is just a reflection
of this fact. As a simple illustrative example (admittedly contrived),
take f[x] = x*(x-1). The exact roots are clearly 0 and 1.  But using
FindRoot[x*(x-1),{x,1*10^-9}] returns 1*10^-9.  Taking an initial
guess of 1*10^-4 gives -1.0002*10^-8.  Interestingly a guess of
1*10^-5 gives -1.00002*10^-10.

Also, the online FindRoot documentation there is the statement "The
default setting for AccuracyGoal is 10 digits less than
WorkingPrecision".  So adjusting the WorkingPrecision may accomplish
what you want.  FindRoot[x*(x-1),{x,1*10^-4},WorkingPrecision->20]
returned x = 1*10^-32 and WorkingPrecision->30 returned zero.


Adam Smith


"Michael Beqq" <mbekkali at iastate.edu> wrote in message news:<bpffvc$m07$1 at smc.vnet.net>...
> I have some doubts about solutions found by FindRoot.  I solved some
> equation f[x]=0 and found some x*.  Now, if I plug x* back into f[x] then I
> should get zero or something close to zero based on MaxPrecision, which is,
> I believe, is equal to 10^-50.  However, I get f[x*]=10^-9 which is a lot
> less than 10^-50 yet while solving FindRoot does not give me any warnings
> about failure to coverge.  This is true for both Newton and Secant method.
> I increased precision to 200, MaxPrecision->200, but the results are the
> same.  Shall I accept solutions found by Mathematica as true solutions?  I
> have version 4.0. Thanks.


  • Prev by Date: Re: [Integrate] Why two results of same eq. are different?
  • Next by Date: Re: Open and Close Groups, *one level at a time*?
  • Previous by thread: Re: Default Precision isn't reached yet no warning about convergence are generated
  • Next by thread: Making Life easier for Dialog Boxes and Pallets