Re: N[] MachinePrecision vs. Arbitrary Precision
- To: mathgroup at smc.vnet.net
 - Subject: [mg118429] Re: N[] MachinePrecision vs. Arbitrary Precision
 - From: DrMajorBob <btreat1 at austin.rr.com>
 - Date: Thu, 28 Apr 2011 06:33:18 -0400 (EDT)
 
These are the same:
N[Sin[Exp[100]]]
Sin[Exp[100.]]
RealDigits /@ {%, %%}
-0.999105
-0.999105
{{{9, 9, 9, 1, 0, 5, 0, 1, 3, 0, 7, 7, 4, 3, 9, 3},
   0}, {{9, 9, 9, 1, 0, 5, 0, 1, 3, 0, 7, 7, 4, 3, 9, 3}, 0}}
But they're not precise. How could they be?
D[Sin[Exp[x]], x]
% /. x -> 100 // N
E^x Cos[E^x]
-1.13704*10^42
You need 43 digits of accuracy in the argument (100.) to get ONE digit  
accuracy in Sin[Exp[100.]], and machine precision doesn't give that much.
$MachinePrecision
15.9546
Using precision arithmetic gives better results (for this problem):
N[Sin[Exp[100]], 1]
N[Sin[Exp[100]], 11]
N[Sin[Exp[100]], 50]
0.1
0.14219812366
0.14219812365823863777245030647868525633473760956388
And that's because it's completely different arithmetic. (We mortals are  
not privy to the details, which may be just as well.)
Bobby
On Wed, 27 Apr 2011 04:39:25 -0500, Rafael Dunn  
<worthless.trash.junk at gmail.com> wrote:
> Mathematica 8.0.1.0, Mac OSX x86
>
> In:=
> N[Sin[Exp[100]]]
> N[Sin[Exp[100]], 1]
> N[Sin[Exp[100]], 11]
>
> Out:=
> -0.999105
> 0.1
> 0.14219812366
>
> I realize that N[exp] = N[exp, MachinePrecision].  This indicates when
> N[] is asked to calculate to MachinePrecision, it produces an incorrect
> result in this example.  However, when I use N[exp,n] where n <
> MachinePrecision, I get a correct output.  Is this because N[exp,n] uses
> ExtraPrecision, while N[exp] does not?  If I set MaxExtraPrecision =
> 0, then N[exp,n] produces a result of 0 with the note that there are no
> significant digits to display until I have made n high enough for
> Mathematica to be able to internally compute it.
>
-- 
DrMajorBob at yahoo.com