Wirtinger derivatives ( also called Cauchy operators) in complex analysis are widely used tools. They are defined in the case of one dimensional complex plane as follows
$$\frac{\partial}{\partial z}=\frac12\left(\frac{\partial}{\partial x}-i\frac{\partial}{\partial y}\right),\quad \frac{\partial}{\partial \bar{z}}=\frac12\left(\frac{\partial}{\partial x}+i\frac{\partial}{\partial y}\right)$$
Where $z=x+i y$ and x,y are real variables.
Apparently Mathematica does not support directly these operators. For instance, as it is pointed in my question; Defining a complex partial differential operator, D[ , ]
don't support a complex argument #2.
What is the best way to generalize D
such that it supports complex variable z = x + I y
, such that it is homogeneous with derivatives of the real part x
and imaginary part y
in a fashion where results of formal computations can be given in terms of x
and y
, or in terms of z
and Conjugate[z]
Update :
Following the suggestion of @xzczd, let me articulate about the concept I have in my head. But the details here are not all requirements for an answer on my question above. It is indeed the converse. As a beginner on Mathematica, any insight can be very helpful for me
Let denote by Dc
The wanted generalization of D
. The first argument of Dc
will be a complex function, expressed in term of a variable z := x + I y
. The second argument will be x
OR y
OR z
OR Conjugate[z]
(in general real or complex). The third argument will contain a rule of the form Coordinates->"Complex"
or "real"
which depends of the wanted output whether in terms of $\partial_z$ and $\partial_{\bar{z}}$ or in terms of $\partial_x$ and $\partial_{y}$. note that $\partial_z$ and $\partial_{\bar{z}}$ are defined by the formulas given above. Let's suppose that "Complex"
is the default value.
Examples: (I denote by === the output, I use some TeX code, hope it is clear)
Basic identities
Dc[z,z] === 1
Dc[Conjugate[z],z] === 0
Dc[Abs[z],Conjugate[z]] === z
Dc[x,z] === 1/2
General identities
Dc[f[z],z] === \partial_z[f[z]]
Dc[f[z],z,Coordinates->"Real"] === 1/2 \partial_x[f[z]] - 1/2 I \partial_y[f[z]]
x Dc[f[z],x] + y Dc[f[z],y] === z\partial_z[f[z]] + \bar{z} \partial_{\bar{z}} [f[z]]
I hope it is more clear now, and the concept makes some sense. Let me know if you need further explanations.