# Holomorphic functions

## Contents

# Holomorphic functions#

## Complex differentiation#

Holomorphic functions (often called complex analytic functions)

A function \(f : D \to \mathbb{C}\), where \(D \subseteq \mathbb{C}\) is an open set, is *complex-differentiable at a point* \(z_0 \in D\) if there exists

If \(f : D \to \mathbb{C}\) is differentiable at all points of \(D\), we say it is **holomorphic** (often **analytic**) in \(D\). If a function is holomorphic in \(\mathbb{C}\) we say that it is **entire**.

**Examples:**

\(z\) is entire

all polynomials are entire

\( 1/z \) is holomorphic in \( \mathbb{C} \backslash { 0 } \)

all rational functions are holomorphic in \(\mathbb{C}\) except in the zeros of their denominators

\( \sin z, \cos z \) are entire

\( \sqrt{z} \) is holomorphic in \(\mathbb{C} \backslash (- \infty, 0]\)

```
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import hsv_to_rgb
def phaseplot(ax, f, x=None, y=None):
a = np.log(np.abs(f)) * 20 / (2*np.pi)
a = a - a//1
_amin = np.min(a)
_amax = np.max(a)
h = (np.angle(-f) + np.pi) / (2*np.pi)
v = (a - _amin) / (_amax - _amin) * (1 - 0.9) + 0.9
if x is None:
extent = None
else:
extent = [min(x), max(x), min(y), max(y)]
img = hsv_to_rgb(np.dstack((h, np.ones(f.shape), v)))
ax.imshow(img, extent=extent)
ax.invert_yaxis()
x = np.linspace(-3, 3, 1000)
X, Y = np.meshgrid(x, x)
Z = X + 1j*Y
fig = plt.figure(figsize=(7.5, 7.5))
ax = fig.add_subplot()
ax.set_title('$1/ \sqrt{z}$')
phaseplot(ax, 1/np.sqrt(Z), x, x)
plt.show()
```

If we go back to thinking about a derivative of a real function of one variable, recall that for the derivative to exist at \(x_0\) the limit when approaching \(x_0\) from the left and from the right must be equal to each other. That is because \(x_0\) is just a number on the number line. Complex numbers, however, lie on the plane, so we can approach some complex number \(z_0\) from any direction. Therefore, the limit above must exist for **any angle of approach** to \(z_0\) and it must always be the same. This is a very strict condition!

For \(f\) to be differentiable at \(z_0\) it must be **continuous** at \(z_0\). That means that

for finite \(z_0, f(z_0)\). Recall that we can separate the real and imaginary parts of a complex function: \(f(z) = u(x, y) + iv(x, y)\). For \(f\) to be continuous, it is enough to show that \(u\) and \(v\) are continuous. If \(f\) is holomorphic on \(D\) then it is continuous on \(D\).

Differentiation rules

The addition, product, quotient and chain rules apply in complex differentiation similarly to real calculus. Let \(f, g : D \to \mathbb{C}\) be differentiable at \(z_0 \in D\), then:

\(\alpha f + \beta g\) is differentiable for all \( \alpha, \beta \in \mathbb{C} \) at \(z_0\): \( (\alpha f + \beta g)’(z_0) = \alpha f’ (z_0) + \beta g’(z_0) \)

\(fg\) is differentiable at \(z_0\): \((fg)'(z_0) = f'(z_0)g(z_0) + f(z_0)g'(z_o)\)

\(\frac{f}{g}\) is differentiable at \(z_0\) for \(g(z_0) \neq 0\): \( \left( \frac{f}{g} \right)’ (z_0) = \frac{f’(z_0)g(z_0) - f(z_0)g’(z_0)}{(g(z_0))^2} \)

Let \(h: D_1 \to \mathbb{C}\), where \(D_1\) is an open set containing \(f(D)\). If \(h\) is differentiable at \(f(z_0)\), then \(h \circ f\) is differentiable at \(z_0\): \( (h \circ f)’(z_0) = h’(f(z_0))f’(z_0). \)

## Cauchy-Riemann conditions#

**Cauchy-Riemann theorem**. A complex function \(f = u + iv : D \to \mathbb{C}\) is differentiable at a point \(z_0 = (x_0, y_0)\) iff the real-valued functions of two real variables \(u\) and \(v\) are differentiable at a point \((x_0, y_0)\) and they satisfy the **Cauchy-Riemann conditions**:

This is a fundamental result in complex analysis - a necessary and sufficient condition for any complex function to be differentiable. Furthermore,

If Cauchy-Riemann conditions are satisfied, then \(u\) and \(v\) are **harmonic functions**, i..e they are a solution to the Laplace equation:

Examples: basic derivatives