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