Re: Low precision exponentiation
- To: mathgroup at smc.vnet.net
- Subject: [mg129839] Re: Low precision exponentiation
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Mon, 18 Feb 2013 06:00:23 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
On 2/17/13 at 4:08 AM, blaise at blaisefegan.me.uk (Blaise F Egan) wrote: >I am trying to evaluate 2.5^125 to high precision. >R gives 5.527147875260445183346e+49 as the answer but Mathematica >with N[2.5^125,30] gives 5.52715*10^49 and says that is to machine >precision. >I am inexperienced at Mathematica. Am I doing something silly? A couple of things. First, you need to be aware by default Mathematica displays 6 digits. But the actual result has more digits. You can see this with In[1]:= a = N[2.5^125, 30] Out[1]= 5.52715*10^49 In[2]:= FullForm[a] Out[2]//FullForm= 5.527147875260444`*^49 Second, 2.5 is a machine precision number with ~16 digits of precision. You should not expect to be able to get 30 digits of precision when taking a value with less precision and raising it to a high power. If you want the value to have 30 digits of precision, you really need to start with something that has more than machine precision to begin with. That is In[3]:= Precision[a] Out[3]= MachinePrecision The result is a machine precision value not a value with 30 digits of precision Try In[4]:= b = N[(5/2)^125, 30] Out[4]= 5.52714787526044456024726519219*10^49 In[5]:= Precision[b] Out[5]= 30.