Re: Abs derivative (continued) (was Re: ? ? ? ! ?)
- To: mathgroup at smc.vnet.net
- Subject: [mg8311] Re: Abs derivative (continued) (was Re: [mg8223] ? ? ? ! ?)
- From: Olivier Gerard <jacquesg at pratique.fr>
- Date: Sun, 24 Aug 1997 13:24:28 -0400
- Sender: owner-wri-mathgroup at wolfram.com
> Original message
>
> > Can anyone explain what v3.0 of Mathematica thinks it's doing when it
> > executes
> >
> > Plot[Abs'[x], {x, -3/10, 3/10}]
> >
> > ???
> >
> > Note the prime: The first argument of Plot was Abs'[x], not Abs[x].
> >
> > The strange behavior I see appears both on a PowerMac 7200/120 running
> > Mac OS 7.5.3 and on a Wintel box running Windoze 95, so I presume that
> > it isn't platform dependent--or at least, not fully so.
> >
> > --Lou Talman
>
Continuing on this subject (please see previous answer),
Ok for derivation, it seems ok.
What about Integration ?
Plotting Integrate[Abs[t], {t,0,x}] gives correct result
but this is because Integrate succeeds in giving a symbolic result:
1/2 x Sqrt[ Re[x]^2 + Im[x]^2]
Of course, for real x, this is equivalent to 1/2 x Abs[x]
but it gives us a good way to enhance the solution I gave
for implementing a correct Abs derivative.
Let's ask Mma to plot the derivative of the Abs formula:
Plot[Sqrt[ Re[#]^2 + Im[#]^2]&'[x], {x, -3/10, 3/10}]
It gives us a splendid graph of the Sign function.
Why does it seems to works when Abs'[x] gives spurious results ?
I suppose it is because the derivative of the Real+Imag formula,
Im'[x] Im[x] + Re'[x] Re[x]
-------------------------------
Sqrt[ Im[x]^2 + Re[x]^2 ]
involves only derivatives of Im and Re. They are certainly
calculated by the same algorithm than the one used for
Abs'[x] but as they are constant and do not change sign at 0 when going on
the real line, the error introduced by the algorithm
is a lot less than in the plot that was the subject of
Lou's message, as shown for instance by
Plot[ Re'[x]-1, {x,-1,1}]
where the irregularities are of the order of $MachinePrecision.
Besides, these derivatives are on the second order compared to
Abs, so the adaptation mechanism of Plot can enter in function.
So it would be perhaps a good idea to replace the q&d solution
of my previous post by:
Unprotect[Abs];
Derivative[1][Abs] ^:=
(Re'[#] Re[#] + Im'[#] Im[#]])/Sqrt[Re[#]^2 + Im[#]^2] & ;
Protect[Abs];
It has the advantage of giving coherent results in some
Complex Number cases while still being not completely rigorous.
Olivier Gerard