MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: To dual-core or not to dual-core
  • Next by Date: Numerical Convolution Problem, different results by Mathematica V3
  • Previous by thread: Re: Coaxing N[] to work
  • Next by thread: Controlling display of frames in a movie