[Date Index]
[Thread Index]
[Author Index]
Power[] corrupts, Absolute[Power[]] corrupts absolutely
*To*: mathgroup at yoda.ncsa.uiuc.edu
*Subject*: Power[] corrupts, Absolute[Power[]] corrupts absolutely
*From*: fateman at peoplesparc.Berkeley.EDU (Richard Fateman)
*Date*: Tue, 11 Dec 90 11:05:45 PST
There is some heuristic in Mma to the effect that
some functions have ``known'' derivatives, and some do not.
For example, in version 1.2, D[Abs[x],x] is Abs`[x].
It appears that a user definition of (appx the same) absolute value
function by dividing the domain, say
f[x_?NonNegative]:=x
f[x_?Negative]:=-x
also cannot be differentiated (that is, D[f[x],x] = f'[x]).
Mma presumably decided that f's derivative was unknown,
based on the information available. OK so far.
Consider yet another version of the absolute value
function function
g[x_]:=If[x>0,x,-x]
which Mma thinks CAN be differentiated.
It gives a mess (at least in version 1.2)
involving the derivative of ``If'' with respect to each of its
arguments. This is not too useful.
Also, if you try evaluating g at some unexpected places, you may be surprised.
g[y] evaluates to If[y>0,y,-y].
g[3+4I] gives an error message
Greater::nord: Comparison with complex number 3+4 I attempted.
In an attempt to suppress this message, and also to make g[y]
come out simpler, consider this redefinition:
g[x_]:=If[x>0,x,-x,Abs[x]]
Here, the last clause to the If
is supposed to provide a result in case the test (x>0, in this case)
``gives neither True nor False''.
Unfortunately it doesn't always work as expected.
Now g[y] returns Abs[y]. That's ok. But
g[3+4I] gives the same error message. [The fix, if one were to
be using Lisp, is to provide an ``errorset'' around the conditional
to convert all errors into appropriate values.]
Now consider the definitions
r[x_]:= Sqrt[x]
s[x_]:= x^2
Of course, well known to readers of this list,
we can Plot[r[s[x]],{x,-1,1}] to see that it looks exactly like
Abs[x]. Yet r[s[x]] simplifies to just x. And D[r[s[x]],x]
simplifies to just 1. This is unreasonable since r[s[-3]]
simplifies to 3, not -3.
Power corrupts...
Seasons greetings.
Richard Fateman (fateman at peoplesparc.Berkeley.edu)
Prev by Date:
**Re: Coefficient**
Next by Date:
**replace by value in expr**
Previous by thread:
**Coefficient[]**
Next by thread:
**replace by value in expr**
| |