MathGroup Archive 2006

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

Search the Archive

Re: Understanding N and Precision

  • To: mathgroup at smc.vnet.net
  • Subject: [mg71186] Re: [mg71147] Understanding N and Precision
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Fri, 10 Nov 2006 06:37:41 -0500 (EST)
  • References: <200611090838.DAA15669@smc.vnet.net>

On 9 Nov 2006, at 17:38, Alain Cochard wrote:

> Hi.  I would like to understand the following behavior:
>
>    Mathematica 5.2 for Linux
>    Copyright 1988-2005 Wolfram Research, Inc.
>     -- Motif graphics initialized --
>
>    In[1]:= MatrixForm[{{exact1=Cos[3Pi/2+Pi/7], Precision[exact1]}, \
> 		       {exact2=Cos[40139127975 Pi/14], Precision[exact2]}}]
>
>
>    Out[1]//MatrixForm=     23 Pi
> 		       Cos[-----]
> 			    14               Infinity
>
> 			   40139127975 Pi
> 		       Cos[--------------]
> 				 14          Infinity
>
> just checking:
>
>    In[2]:= FullSimplify[exact1-exact2]
>
>    Out[2]= 0
>
>    In[3]:= MatrixForm[{{float1=N[exact1], Precision[float1]},\
> 		       {float2=N[exact2], Precision[float2]}}]
>
>
>    Out[3]//MatrixForm= 0.433884           MachinePrecision
>
> 		       0.433883           MachinePrecision
>
> So the N of supposedly(?) 2 identical numbers is different (although
> the precision is indeed the same). That's what I would like to
> understand most.

This is quite common in computations with MachiePrecision. Two  
mathematically equal expressions can give completely different  
answers; in fact the difference can be much greater than the one you  
got here. This is referred to as "conditioning" of the expressions  
and is explained in most modern books on numerical analysis. And by  
the way, mathematica has basically "nothing to do" with  
MachinePrecision computations and is nto "responsible' for the  
answers you get when you perform them.


>
>
>    In[5]:= MatrixForm[{{float1=N[exact1,$MachinePrecision],  
> Precision[float1]},\
> 		       {float2=N[exact2,$MachinePrecision], Precision[float2]}}]
>
>    Out[5]//MatrixForm= 0.4338837391175581   15.9546
>
> 		       0.4338837391175581   15.9546
>
> Why in this case does it gives a precision of "15.9546" and not
> "MachinePrecision", as above, especially since
>
>    In[6]:= N[$MachinePrecision,Infinity]
>
>    Out[6]:= 15.9546
>
> Isn't N[x] equivalent to N[x,$MachinePrecision]?
>
>

Note the distinction between

In[24]:=
MachinePrecision

Out[24]=
MachinePrecision

and

In[25]:=
$MachinePrecision

Out[25]=
15.9546



In[26]:=
Precision[N[2,MachinePrecision]]

Out[26]=
MachinePrecision

In[27]:=
Precision[N[2,$MachinePrecision]]

Out[27]=
15.9546

N[2,$MachinePrecision] is not a MachinePrecision but an extended   
precision number!

Andrzej Kozlowski








  • Prev by Date: Re: animation question
  • Next by Date: Merge of Matrices 2
  • Previous by thread: Understanding N and Precision
  • Next by thread: Re: Understanding N and Precision