[Date Index] [Thread Index] [Author Index]
Re: Numerical accuracy/precision - this is a bug or a feature?
Well, I certainly disagree with your assessment. The rules regarding exact and machine precision numbers are straightforward and stated in the documentation. But if you feel that the MS Windows Calculator is a better option, by all means use that. It is free and easy to use. 2.0 is not an integer nor a rational, it is machine precision. On the other hand 2 is an integer and exact. As far as whether or not 2.0 should be considered as 2.0+-0.1 or as 2.000..., 2.0 is a machine precision number, which means 2.000000000000000 or as close as you can get in about 16 places. Telling Mathematica that you want 20 places is somewhat like asking Mathematica to give more accuracy *after* the calculation is finished. At any rate my friend David Park reminded me that you can specify your 2.0 to 20 places with the following: 2.0`20 Precision[%] 20. Kevin On 7/5/2011 5:17 AM, slawek wrote: > U¿ytkownik "Kevin J. McCann"<kjm at KevinMcCann.com> napisa³ w wiadomo¶ci grup > dyskusyjnych:ius7b6$30t$1 at smc.vnet.net... >> The answer to this puzzle is that the N[2.0,20] is 2.0, not >> 2.00000000... Try N[2,20] and all is well. I think that when you put 2.0 >> in you have already limited yourself to machine precision, and N[2.0,20] >> is then just machine accuracy. > > It is still a-bug-and-a-feature. > And this bug make Mathematica nearly useless in numerical computations. "MS > Windows Calculator" is much more reliable! > > > The number of written digits IS NEITHER the precision NOR the accuracy. > Mathematica treat 2.0 as a 2.0+-0.1, but it is not the proper way to handle > numbers. > > I know, that it is common mistake to treat 2.0 as "not an integer number" > and/or "exact" number, but 2.0 is an integer number AND also it is a > rational number AND also a real number AND also a complex number. And 2.0 is > simply 1+1+ 0/10 . Therefore, as you see, there is no "roudning", "limited > precision", "error" or "uncertinaity". It is only a matter of a notation of > decimal fractions. And decimal fractions are exact. Any "tolerance" is not > indicated in any way by this notation. Thus it is a bug. Nasty, big, fat bug > in the core of Mathematica. > > Even from "CS view" 2.0 is translated to IEEE representation with 56-bits of > the mantisa. Nobody declare float x = 2.0000000000 to iniject the float > point two into a code. > > slawek > > >