# Doubt on derivation of complex functions

Hello,

I have a doubt on how to differentiate a complex function f:ℂ→ℂ defined as follows: $$f(z)=zz^*$$ where the * stands for complex conjugation.

According to this source (at the very end of the Section, where it says: "...As this is a complex value, G*(f) acts as a constant...") the result should be: $$\frac{df}{dz}=z^*$$ which to me sounds a bit strange (i.e. why on earth should z* be treated as a constant?)

What's the correct way of performing derivation of a complex function w.r.t. to a complex variable?

UltrafastPED
Gold Member
Let g(z)=z; h(z)=z*. Then f(z)=g(z) x h(z).

Now differentiate with d/dz yields f'(z)=g'(z) x h(z) + g(z) x h'(z).

By the definitions g'(z) = dz/dz = 1; but h'(z) does not exist ... see http://rutherglen.science.mq.edu.au/wchen/lnicafolder/ica03.pdf

Thus it would seem that the writer is glossing over a problem here!

• 1 person
Yes, I actually noticed now that the argumentation used by the author of that article was wrong.
I should anyway study a bit more about complex derivatives, as I noticed I don't know very much about it.

UltrafastPED
Gold Member
Focus on understanding the Cauchy conditions; they are fundamental.

Sorry for bothering again with this, but I have just come across this page on matrix calculus where the following result is listed in the Section "Differentials of Quadratic Products" :
$$d (\mathbf{x}^H \mathbf{x}) = 2\mathcal{R}e(\mathbf{x}^H d\mathbf{x})$$

Here H stands for Hermitian transpose, $\mathcal{R}e$ means "real part", and x is a complex vector.
If this result is correct, then when x is a complex scalar we would get the following result:
$$\frac{d|x|^2}{dx}=2 \mathcal{R}e \{x^*\}$$

How is it possible to obtain these two results when, as UltrafastPED said, the derivative for x* does not exist?

EDIT: Perhaps the trick could be that the function f(z)=zz* is actually a real function $f:\mathbb{C}\rightarrow \mathbb{R}$ with a complex variable? Such a function does not yield a vector field, instead it can be represented by a scalar field on the complex 2D plane, so I guess we can "bypass" the step of using the product rule and evaluate the derivative of z*?

Last edited:
jasonRF
Gold Member
Note that in signal processing we often use shortcuts that are along these lines. Given the context that could be what the page you reference was talking about. It is sometimes called wirtinger calculus. Google found this nice pdf from a signal processing book:
http://onlinelibrary.wiley.com/doi/10.1002/0471439002.app1/pdf

I use this all the time, since I want to estimate complex valued parameters or signals, usually by minimizing the mean square error or some other metric. One can treat each complex parameter as a combination of 2 real parameters of course, but the wirtinger calculus provides a shortcut. Again, this is used all the time in signal processing, and I always see it as a shortcut. The examples in the link I give (especially table A.2) are very common to run across.

jason

EDIT
Here is a link to some parameter estimation (the electrical engineering way) lecture notes - the one on complex vector calculus is what you want to look for.
http://dsp.ucsd.edu/~kreutz/PEI05.html
It contains much more than lecture notes; it is more like a book chapter if you ask me.

Last edited:
• 1 person
UltrafastPED
Gold Member
The source of your formula is "The Matrix Reference Manual", which is a bit schematic - not a detailed text book with derivations.

See the paragraph "Derivatives with respect to a complex matrix" where the rules are expressed.

He has substituted an alternative "generalized complex derivative"; see the explanation there.

Thanks a lot jason! Especially for the first link.

Finally things make sense. My confusion was apparently due to the fact that the function that I mentioned in my first post was actually being differentiated by using the definition of Wirtinger derivative, and not by using the standard definition of complex derivative.

That should have been mentioned by the author to avoid confusion, as the notation to express the two derivatives is exactly the same.

Last edited:
jasonRF
Gold Member
I'm glad it helped. Just beware that some people do not include the factor of 1/2 in their definition of the derivative, so extra factors of 2 show up in some intermediate results of some work you may run across. I am an electrical engineer, but I first learned this from an astronomy course that did not include the 1/2.

jason

mathwonk
Homework Helper
2020 Award
The problem is that you wrote a straight d/dz when apparently it should have been a curly ∂/∂z.

I.e. the "wirtinger" derivative is a partial complex derivative. Actually the definitions are completely consistent with the usual ones, in term of derivatives of real functions.

i.e. one can consider a complex function as a function of two variables z and zbar, and then there are partial derivatives wrt each "variable" that obey some of the usual rules.

Although d/dz is only defined for holomorphic functions, ∂/∂z and ∂/∂zbar are both defined for all smooth complex functions.

i.e. at each point, df is a real linear function from C to C, and this is a 2 dimensional C-vector space.

one basis for such functions is dx, dy and another basis is dz, dzbar.

In both cases one has for f, that df = ∂f/∂x dx + ∂f/∂y dy = ∂f/∂z dz + ∂f/∂zbar dzbar.

So we are just expressing df in two different bases.

in this sense ∂f/∂z is by definition the coefficient of dz in the expansion of df in the basis dz, dzbar.

you can also express ∂/∂z and ∂/∂zbar in terms of ∂/∂x and ∂/∂y if you wish:

to do this just use the equations dz = dx + idy, dzbar = dx -idy, to solve for dx = (1/2)(dz + dzbar),

and dy = (1/2i)(dz - dzbar), substitute into the LHS of the equation:

∂f/∂x dx + ∂f/∂y dy = ∂f/∂z dz + ∂f/∂zbar dzbar, and then collect terms and equate coefficients of dz, dzbar,

yielding

∂/∂z = (1/2)(∂/∂x - i∂/∂y) and ∂/∂zbar = (1/2)(∂/∂x + i∂/∂y).

then since z.zbar = x^2 + y^2, you can compute that indeed ∂/∂z(z.zbar) = zbar.

Then a function is holomorphic, i.e. d/dz is defined, if and only if ∂/∂zbar of it = 0, (Cauchy Riemann equations).

in particular, z.zbar is not holomorphic since (∂/∂zbar)(z.zbar) = z ≠ 0.

Interestingly, in that case, then d/dz = ∂/∂z = ∂/∂x. E.g. if f = z^2, which is holomorphic,

then z^2 = (x^2-y^2) + 2i(xy), so d(z^2)/dz = 2z.

but also ∂/∂x(z^2) = ∂/∂x((x^2-y^2) + 2i(xy)) = 2x +2iy = 2z !

cool huh?

oh yes, and one can see from this derivation that the coefficient (1/2) is forced on you, so leaving it out is, in my opinion, just wrong. i.e. dz + dzbar = 2dx, not dx.

to put it another way, if you believe z = x+iy and zbar = x-iy, and you want to have

df = ∂f/∂x dx + ∂f/∂y dy = ∂f/∂z dz + ∂f/∂zbar dzbar,

then you have no choice about the (1/2).

Last edited:
• 1 person
jasonRF
Gold Member
Thanks Mathwonk. That is a nice concise presentation of this topic. I have to be honest that I have never worked through it very thoroughly. It is a tool I learned well enough to use correctly for my work and not much more. I simply worked through the common functions I care about and showed that Wirtinger gives the same complex parameter estimates as when I do it the slower way of using two real variables for each complex one.
It is nice to hear a mathematician's take on this.

jason

Thanks Mathwonk!
Extremely clear and very useful explanation.

It is nice that the Cauchy-Riemann equations can be written with a single formula using Wirtinger derivatives.

For those interested in this topic, it is perhaps worth mentioning that this kind of derivatives, as well as other differential operators like divergence, gradient, curl, are generalized to n-dimensions, and in a coordinate-free manner by the so-called "multivector derivative" operator proposed by D. Hestenes in the context of Clifford Algebras. He also showed that such a generalized derivative operator allows one to write the generalization of the Cauchy-Riemann equations with a single equation [see the link].

mathwonk