Re: Coaxing N[] to work

*To*: mathgroup at smc.vnet.net*Subject*: [mg73483] Re: Coaxing N[] to work*From*: David Bailey <dave at Remove_Thisdbailey.co.uk>*Date*: Mon, 19 Feb 2007 01:30:54 -0500 (EST)*References*: <equo6r$in0$1@smc.vnet.net>

p at dirac.org wrote: > Sometimes N[,] doesn't appear to work. Like here: > > > x = {2.0, 3.0, 5.0}; > A = { {6.0, 2.0, 1.0}, {2.0, 3.0, 1.0}, {1.0, 1.0, 1.0} }; > For[ k=0, k<15, ++k, > lambda = x.A.x/(x.x); > y = LinearSolve[A,x]; > x = y / Norm[y,Infinity]; > ] > N[lambda, 30] > > > The output is: > > Out[5]= 0.578933 > > I was expecting 30 digits. Why did N[] ignore my request for 30 digits? > While others have pointed out that lambda only has about 16 digits of precision - so you can't ask for 30 - I suspect you may be wondering where the other 10 digits have vanished! Indeed, I suspect this is the problem you were really trying to solve. Applying N in your case did nothing - the result was still a machine precision number. Such numbers are normally printed out by Mathematica with much fewer digits (just for neatness), although they are stored to full machine precision. There are several ways to view this precision, one would be: lambda //InputForm David Bailey http://www.dbaileyconsultancy.co.uk