Re: Confusing results with N[expr]?
- To: mathgroup at smc.vnet.net
- Subject: [mg62328] Re: [mg62318] Confusing results with N[expr]?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Sun, 20 Nov 2005 04:50:32 -0500 (EST)
- References: <200511200419.XAA28539@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 20 Nov 2005, at 13:19, Thomas Bohl wrote:
> 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);
>> 6.28319 z (* "a" and "Pi" are replaced by their numerical
>> value as
>> expected *)
> k = z^(a*Pi)
>> 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
> 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
> 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
> Could you please comment my observation and maybe suggest a way out?
> Thank you very much for any idea.
> Kind regards,
I don't remember if it used to be different before version 5, but it
looks to me like a bug that affects the second argument in Power. For
a general function f everything works as expected. First, let's
define an NValue for the symbol a, just as you have been doing:
N[a] = 2.;
Now, let's assign to a general function f the attribute NumericFunction:
So we see no problem. However, although Power does have the
if we set f above to Power things will no longer work properly with
the second argument of Power:
f = Power;
So it looks like a bug to me. Curiously, if you set
NumericQ[a] = True;
you own example will now work as expected:
but if you omit Pi it again does not work:
There is a very simple workaround for the problem; instead of just
using N use MapAll[N, ]:
If your expressions are very complicated there may be a noticeable
loss of performance, but in simple cases like the above everything is
Prev by Date:
Re: Types in Mathematica
Next by Date:
Re: Newbie with simple questions (take 2)
Previous by thread:
Confusing results with N[expr]?
Next by thread:
Re: Re: Confusing results with N[expr]?