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