Re: N
- To: mathgroup at yoda.ncsa.uiuc.edu
- Subject: Re: N
- From: uunet!cello.hpl.hp.com!jacobson
- Date: Thu, 22 Mar 90 13:37:12 PST
The real situation is even worse than Fateman claims. On input
Mathematica uses trailing decimals to determine accuracy and
precision, but only if the resulting precision is higher than machine
precision. Furthermore, one can't use N to reliably force the precision
down: N[...,3] seems to act as though it were N[...,Max[3,<<machine
precision>>]].
In[39]:= 1.
Out[39]= 1.
In[40]:= Precision[%]
Out[40]= 16
In[41]:= N[%39,3]
Out[41]= 1.
In[42]:= Precision[%]
Out[42]= 16
At the Mathematica conference, one of the WRI folks, (Jerry Keiper or
Igor Rivin, I believe) claimed than N[] only lowers precision, never
raises it. However, here is a counter example.
In[43]:= 1.000000000000000000000000001 -
1.0000000000000000000000000001
-28
Out[43]= 9. 10
In[44]:= Precision[%]
Out[44]= 1
In[45]:= N[%43]
-28
Out[45]= 8.99999 10
In[46]:= Precision[%]
Out[46]= 16
and its not just that I used N with no second argument
In[49]:= N[%43,16]
-28
Out[49]= 8.99999388963799 10
In[50]:= Precision[%]
Out[50]= 16
Finally, numbers seem to carry their precision around with them, but I
can't seem to access it. I'd like to be able to do this in cases
where I want to do my own error analysis.
In[58]:= p3 = N[Pi,3]
Out[58]= 3.14
In[59]:= p5=N[Pi,5]
Out[59]= 3.1416
In[60]:= Precision[p3]
Out[60]= 16
In[61]:= Precision[p5]
Out[61]= 16
In[62]:= Accuracy[p3]
Out[62]= 15
In[63]:= Accuracy[p5]
Out[63]= 15
In[64]:= p3===p5
Out[64]= True
Somehow p3 will print to 3 places and p5 will print to 5 places, but I
don't know how the formatter knows that information.
-- David Jacobson