Re: Mathematica bugs?

*To*: mathgroup at smc.vnet.net*Subject*: [mg67319] Re: [mg67301] Mathematica bugs?*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Sun, 18 Jun 2006 05:13:08 -0400 (EDT)*References*: <200606170836.EAA27990@smc.vnet.net> <37A0E477-F2A6-4B4D-9F8C-F2A0237EE906@mimuw.edu.pl>*Sender*: owner-wri-mathgroup at wolfram.com

On 17 Jun 2006, at 20:25, Andrzej Kozlowski wrote: > > On 17 Jun 2006, at 17:36, Yaroslav Bulatov wrote: > >> When I run the following line >> x = Pi/4; For[i = 0, i < 56, i += 1, x = 2*Abs[x - 1/2]]; N[x] >> I get >> 3. >> >> But x should always stay between 0 and 1, why do I get 3? >> >> Also >> x = Pi/4; For[i = 0, i < 50, i += 1, x = 2*Abs[x - 1/2]]; N[Log[x]] >> gives me >> Indeterminate >> >> How can I get an indeterminate here? >> > > > Simply a very usual example of loss of precision due to your using > machine precision arithmetic. > > In[4]:= > x = Pi/4; For[i = 0, i < 56, i += 1, x = 2*Abs[x - 1/2]]; N[x,20] > > Out[4]= > 0.79387245267980382900 > > In[5]:= > Pi/4; For[i = 0, i < 50, i += 1, x = 2*Abs[x - 1/2]]; N[Log[x],20] > > Out[5]= > -0.82266639946997263758 > > No bugs at all. > > Andrzej Kozlowski Actually, at least with Mathematica 5 or later, there is no need to request 20 digits of precision: even 2 digits will work fine: x = Pi/4; For[i = 0, i < 56, i += 1, x = 2*Abs[x - 1/2]]; N[x,2] 0.79 Pi/4; For[i = 0, i < 50, i += 1, x = 2*Abs[x - 1/2]]; N[Log[x],2] -0.82 When you use N alone it is an entirely different matter the computation is done with "machine precision" (in other words, not control over precision whatever) so in the case of this kind iteration the answer that you get can be virtually anything. Andrzej Kozlowski Tokyo, Japan

**References**:**Mathematica bugs?***From:*"Yaroslav Bulatov" <yaroslavvb@gmail.com>