PDA

View Full Version : Complex argument derivative


daudaudaudau
Oct13-08, 01:25 PM
If z is a complex number, isn't the derivative of arctan(z) just 1/(1+z^2) ? That's what I would think, but my CAS does not agree with me.

HallsofIvy
Oct13-08, 02:24 PM
The derivative of arctan(z) is 1/(1+ z^2)+ C no matter what number field z is in. What does your CAS say?

daudaudaudau
Oct13-08, 03:45 PM
I meant to write: Isn't the derivative of the complex argument of z, Arg(z) equal to 1/(z^2+1) beacuse this is the derivative of arctan(z) ?

Hurkyl
Oct13-08, 04:10 PM
Isn't the derivative of the complex argument of z, Arg(z) equal to 1/(z^2+1) beacuse this is the derivative of arctan(z) ?
I don't see your line of reasoning.


Anyways, the facts of the situation are that Arg(z) isn't complex-differentiable. (Try computing it directly) You have a huge clue that something's wrong: Arg(z) is a strictly real-valued function, yet your alledged derivative can take complex values.

daudaudaudau
Oct13-08, 05:28 PM
Yes, that made no sense, sorry. What about if A and B are a complex constants and x is a real number. Then I suppose the derivative of Arg(A+C*x) exists ?

Hurkyl
Oct13-08, 05:31 PM
Yes, that made no sense, sorry. What about if A and B are a complex constants and x is a real number. Then I suppose the derivative of Arg(A+C*x) exists ?
Arg is differentiable as a function on the plane. It's just not differentiable as a complex function.

daudaudaudau
Oct13-08, 05:44 PM
What about this attached screenshot then? Why does the derivative even have an imaginary part?

Hurkyl
Oct13-08, 06:24 PM
My best guess is that you gave a, or maybe x, a numerical value earlier in your session. What does it think
D[Arg[x*(I+1)+1],x]
and
D[Arg[x*(I+1)+1],x]/.x->a
simplify to?

daudaudaudau
Oct13-08, 06:39 PM
I started a new session, and this is what it looks like. D[Arg[...]] makes no sense, but D[ArcTan[...]] looks about right. Isn't Arg using ArcTan ?

Hurkyl
Oct13-08, 08:10 PM
Aha, I see what's going on.

Mathematica's documentation says that it only 'evaluates' Arg when it has a numerical result. It's internal thinking about the function changed in the following way:


When you first asked for the derivative, it made a purely formal calculation via the chain rule, probably thinking of it as a 'formal' complex derivative. (Note that mathematica will do the same thing with any formal symbol. Try asking for D[f[x], x] when you haven't defined f)

But when you replaced x with an actual number, you kicked in the programming for Arg, so it happily returned (1+i) times whatever it thinks the derivative of Arg should be. (I can't explain the extra factor of -1/2, though))


If you want to insist on working with Arg directly, you might be able to get better results in one of the following ways:
. Use assumptions to tell Mathematica that x is a real number.
. Try replacing x in the expression with Abs[x], or maybe Re[x].

daudaudaudau
Oct14-08, 06:10 AM
Yes, that seems to be the case. Apparently one has to write D[ComplexExpand[Arg[x*(1 + I) + 1], TargetFunctions -> {Re, Im}], x]

to get the "right" result. :)