Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*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 2002

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

Search the Archive

Re: Re: Accuracy and Precision

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37122] Re: Re: Accuracy and Precision
  • From: "Allan Hayes" <hay at haystack.demon.co.uk>
  • Date: Thu, 10 Oct 2002 03:21:08 -0400 (EDT)
  • References: <ao0t54$gqo$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Bobby,

The example that I gave in my previous posting does not make my point, or it
makes it in rather a hidden way, but it does show something interesting
about computation with bigfloats.
I'll explain  what I mean by this and then give an example that does make
the point directly.

First, the previous example:

    Sin[#1]*10^#1*Log[1+10^(-#1)]&[15.9]

        -0.336629

    Sin[#1]*10^#1*Log[1+10^(-#1)]&[SetPrecision[15.9,20]]
    Precision[%]

    -0.190858581374189370

    17.7558

    Sin[#1]*10^#1*Log[1+10^(-#1)]&[SetPrecision[15.9,7]]
    Precision[%]

    -0.19086

    4.70309

(**) It looks as if the internal computations must be to a higher precision
than 4 and that they start at

    SetPrecision[15.9,7]//FullForm

        15.9000000000000003553`7

With
    MaxError = 10^-Accuracy[sp]//FullForm

        1.590000000000001`*^-6

 Roughly speaking, not more than the first seven digits are asserted to be
correct.




Now, the new example (taken from Stan Wagon, Programming Tips, Mathematica
in Education and Research Volume 7, Number 2, 1988  p50)

    Clear[x]
    ser= Normal[Series[Cos[x],{x,0,200}]];

    x= 75.0;
    ser//FullForm

        -2.7019882604300525`*^15

Probably not reliable.
Set precision to 20:

    x= SetPrecision[75.0, 20];
    (a=ser)//FullForm

        -16928.799183047`1.4688

    MaxError= 10^-Accuracy[a]

        575.263

Not good enough.
Raise the precision to

    x= SetAccuracy[75.0,40];
    (a=ser)//FullForm

    1.0807905977573169155`7.7627

MaxError = 10^-Accuracy[a]

    \!\(1.3999657487996298`*^-6\)

That is 1.3999657487996298 10^-6

Good enough



Allan
---------------------
Allan Hayes
Mathematica Training and Consulting
Leicester UK
www.haystack.demon.co.uk
hay at haystack.demon.co.uk
Voice: +44 (0)116 271 4198
Fax: +44 (0)870 164 0565







  • Prev by Date: Re: Factoring a polynomial
  • Next by Date: RE: Successive Approximation
  • Previous by thread: Re: RE: Re: Re: Accuracy and Precision
  • Next by thread: Re: Re: Accuracy and Precision