Do standard gradient descent methods work on complex variables I am currently whishing to optimize a function numerically $f(z)$ where $z \in \mathbb{C} $ ($f(z) \in \mathbb{R}$) . 
I am doing this via numerical packages (specifically scipy in python) and I have noticed that all the optimization methods in this package are tailored to only functions of domain in $\mathbb{R}$. I Played around for a bit with the complex optimization problem and at first sight it just seems like numerically optimizing a function of two variables since $z = (x,y) \equiv z = x + iy$ . 
I am aware that the definition of an analytic function is more rigorous than that of a real differentiable function in the sense that it should be differential from all directions $\Delta z = (\Delta x, \Delta y)$ so things become a bit more complicated. Given the situation above how can one approach the task of numerical optimization on a function of complex domain? Are there any standard routines for this ? 
 A: The complex plane is not an ordered set, so it is not exactly clear what you mean when you attempt to find the optima on a particular set. When you take a function $f:\mathbf{C} \to \mathbf{R}$, it does not make sense to talk of holomorphic properties of the function, but you can still consider harmonic functions, the real or imaginary part of an analytic function. Of course, every harmonic function is differentiable, so you can apply gradient descent, but there are some lovely theorems which tell you that gradient descent is quite useless in this situation.
The first problem you will find with harmonic functions is that there are no such thing as maxima and minima on open domains (except for zeroes). In fact, if a function has a local maxima, this implies that it is constant everywhere! Therefore, you should always look to the boundary of definition of a harmonic function for extrema -- either parameterize your domain's boundary, obtaining a 1D function to optimize, or use the method of Lagrangian multipliers.
