Re: Chop in Mathematica 8.0.1
- To: mathgroup at smc.vnet.net
- Subject: [mg117610] Re: Chop in Mathematica 8.0.1
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Thu, 24 Mar 2011 06:30:15 -0500 (EST)
Seems to me its a lot safer to have that 0. displayed as additional indication of machine arithmetic being used and hence possible precision problems. On 3/23/2011 3:56 AM, Andrzej Kozlowski wrote: > On 22 Mar 2011, at 11:09, telefunkenvf14 wrote: > >> On Mar 21, 6:18 am, Andrzej Kozlowski<a... at mimuw.edu.pl> wrote: >>> Chop does not seem to work properly in Mathematica 8.0.1: >>> >>> f[a_] := 2 I Pi Sin[a]/a >>> >>> In[2]:= f[1.] >>> >>> Out[2]= 0. + 5.287118128162912*I >>> >>> In[3]:= Chop[%] >>> >>> Out[3]= 0. + 5.287118128162912*I >>> >>> This is with >>> >>> In[4]:= $Version >>> >>> Out[4]= 8.0 for Mac OS X x86 (64-bit) (February 23, 2011) >>> >>> Mathematica 7.01 returns 5.287118128162912*I as expected. >>> >>> Can anyone confirm it? At the moment I can't see any simple work around. . . >>> >>> Andrzej Kozlowski >> >> I get the same behavior on Windows 7 for 7.0.1 and 8.0.1. >> >> Did notice the documentation on Chop in 8.0.1 includes a new >> subsection on 'possible issues'... Seems like there should be some >> type of 'show changes' indicator in the documentation. >> >> ------- >>> From the new subsection on possible issues: >> >> Machine complex numbers have machine reals for both real and imaginary >> parts: >> >> In[1]:= 2. I >> Out[1]= 0. + 2. I >> >> Consequently, Chop does not make the real part of machine complex >> numbers an exact zero: >> >> In[2]:= Chop[10.^-12 + 2. I] >> Out[2]= 0. + 2. I >> >> Small imaginary parts from machine complex numbers are eliminated to >> make a machine real: >> >> In[3]:= Chop[2. + 10.^-12 I] >> Out[3]= 2. >> >> ----- >> >> It seems to me that 8.0.1 is the more desired behavior, no? (Maintains >> precision; one can use Re or Im to select parts that remain, right?) >> >> -RG >> > > I agree, except for one little thing. I don't see any advantage in the approximate zero real part of a machine complex number being *displayed*. It is certainly possible to change that (MakeBoxes can be used for this purpose) and it just isn't consistent with the traditional practice in mathematics. And, after all, isn't this what TraditionalForm is supposed to be for? > > Andrzej > -- Murray Eisenberg murray at math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2859 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305