|
|
Re: Low precision exponentiation
Posted:
Feb 18, 2013 6:01 AM
|
|
You are not doing anything "silly"; you're just being caught by two common traps for Mathematica beginners.
First, by default Mathematica treats 2.5 as a machine-precision number; no matter what you do with it as is, you won't get any more than machine-precision as result. You need to specify you mean exactly that number, to the desired precision, e.g.:
2.5`30
Second, no matter what the precision of a number, by default Mathematica only _displays_ 6 significant digits. To get more digits, use NumberForm (or depending on the format you want, perhaps ScientificForm, EngineeringForm, or AccountingForm), with second argument the number of digits to display.
Thus:
NumberForm[N[2.5`30^125, 30], 30] 5.527147875260444560247265192*10^(49)
Actually, in such an example you probably want to be more careful, since the calculation may lose precision. In fact:
Precision[N[2.5`30^125, 30]] 27.9031
You've lost 2 to 3 digits of precision. So just increase the precision in the calculation:
Precision[N[2.5`40^125, 40]] 37.9031
Which means that when you display 30 digits of N[2.5`40^125, 40] with NumberForm, all 30 digits will be correct.
On Feb 17, 2013, at 4:08 AM, Blaise F Egan <blaise@blaisefegan.me.uk> 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?
--- Murray Eisenberg murray@math.umass.edu Mathematics & Statistics Dept. Lederle Graduate Research Tower phone 413 549-1020 (H) University of Massachusetts 413 545-2838 (W) 710 North Pleasant Street fax 413 545-1801 Amherst, MA 01003-9305
|
|