Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

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

Search the Archive

Re: Confusing results with N[expr]?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62327] Re: Confusing results with N[expr]?
  • From: Peter Pein <petsie at dordos.net>
  • Date: Mon, 21 Nov 2005 03:54:11 -0500 (EST)
  • References: <dlp320$1bs$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Thomas Bohl schrieb:
> I have the impression that since some time (since Vers. 5.0?) N[expr] does 
> not give anymore the results I expect.
> 
> The following code should illustrate this:
> 
> N[a] = 2.;
> 
> k = z*(a*Pi);
> N[k]
>> 6.28319 z       (* "a" and "Pi" are replaced by their numerical value as 
>> expected *)
> 
> k = z^(a*Pi)
> N[k]
>> z^(3.14159 a)    (* "Pi" is replaced by its numerical value but not "a", 
>> why not? *)
> 
> 
> There are more examples of this behaviour: If the expression is Log[z*a*Pi], 
> the numerical values of "a" and "Pi" are evaluated, if the expression is 
> Exp[z*a*Pi] the numerical value of "a" is not evaluated. Why not?
> 
> The motivation behind my question is that I was used to write expressions 
> symbolically and assign numerical values with N[expr] = num. value. This way 
> you could keep those expressions symbolically and just apply //N when you 
> needed numerical values. Now it seems that I have lost this possibility.
> 
> Could you please comment my observation and maybe suggest a way out?
> 
> Thank you very much for any idea.
> 
> Kind regards,
> Thomas.
> 
> 
Hi Thomas,

that's really strange. The reason seems to be Power[]:

N /@ k
 > z^(6.283185307179586*x)

but when I tried

Unprotect[Power];
Power /: N[p_Power] := N /@ p;
Protect[Power];

the kernel died at the evaluation of N[k].

The best I have to offer is in the moment:

1.) use "N //@ expr" to evaluate a in Exp[Exp[a Pi]]
or
2.)
Unprotect[Power];
Power /: N[(x_)^(y_)] := Pow$[N[x], N[y]];
Protect[Power];
$Post = #1 /. Pow$ -> Power & ;

Regards,
   Peter


  • Prev by Date: Re: Re: Hardcopy or electronic books?
  • Next by Date: Re: Intepolation of an array with missing points
  • Previous by thread: Re: Confusing results with N[expr]?
  • Next by thread: Re: Re: Confusing results with N[expr]?