11. Complex Analysis#
Complex analysis provides a powerful framework unifying the following concepts, which are extremely useful for physical applications.
Contour integration and Cauchy’s residue theorem: These provide a powerful approach for computing many difficult integrals of interest in physics, such as the following from Assignment 2: Mathematical Preliminaries:
\[\begin{gather*} \int_0^{\infty}\frac{\sin x}{x}\d{x}. \end{gather*}\]These approaches rely on the concepts of analytic functions (functions defined from their power series – equivalent to holomorphic functions in complex analysis) and analytic continuation, zeros, poles, branch cuts, and essential singularities.
Conformal maps: Transformations that preserve angles can often help solve problems. The real and imaginary parts of holomorphic functions are harmonic functions, which provide solutions to Laplace’s equation. Conformal maps preserve this property, allowing one to find simple symmetric solutions to e.g. the wave equation, then transform them to more complicated boundaries or geometries. On very interesting example is the using the Joukowsky transform to take the symmetric solution for laminar flow past a cylinder into the to flow across the Joukowsky airfoil.
Analytic Functions#
Recall that many functions can be defined in terms of a power series:
with some range of convergence \(-R < x < R\). By expanding about different points, one can often extend the definition of the function through a sequence of converging power series. This is called analytic continuation.
Example: Analytic continuation of a real function \(f(x) = 1/(1-x)\).
Consider a geometric series
This series converges absolutely to a \(\mathcal{C}^{\infty}\) function on the open interval \(x \in (-1, 1)\), but the function itself seems like it should be defined for \(x \leq -1\). We can try performing a expanding about \(x_0=-\tfrac{1}{2}\):
This now converges absolutely on the open interval \(x \in (-2, 1)\). Continuing, we can expand about other points \(x_0<0\) to obtain
which converges absolutely on the open interval \(x \in (2x_0-1, 1)\). Thus, we can analytically continue the function defined by the original series to \(x \in (-\infty, 1)\). As [Needham, 2023] states, from the perspective of real analysis, the interval of convergence is quite mysterious, but notice that it is always symmetric about \(x_0\):
This “radius of convergence” \(R\) has a beautifully simple explanation in the complex plane – it is the distance to the nearest pole: \(x=1\) in this case.
This explains the mystery [Needham, 2023] of the following series:
Both have the same interval of convergence: \(x\in (-1, 1)\). This makes sense for \(G(x)\) which has poles at \(x = \pm 1\), but \(H(x)\) is perfectly smooth.
This can be easily extended to the complex plane:
For example,
Do It! Similarly compute \(\sin{z}\), \(\cos{z}\), \(\sinh{z}\), \(\cosh{z}\), and \(\ln{z}\).
For \(\sin{z}\), \(\cos{z}\), etc. we use Euler’s identity \(e^{z} = \cos z + \I \sin z\). We first note that
I remember these as follows, without any minus signs
We also have the addition formulae, which follow from expanding \(e^{a+b} = e^{a}e^{b}\):
Now we have
For \(\ln z\) we define \(w = \ln z\) so that \(z = e^w\). For this, polar form is better for \(z = re^{\I\theta}\):
In the complex plane, analytic functions can be expressed in terms of \(z\) only: e.g. \(z^2\), \(e^z\), \(\sin(z)\). [Hassani, 2013] formalizes this in Box 10.2.3: If a function is complex analytic, then, after substituting \(x = (z+z^*)/2\) and \(y=(z-z^*)/2\), it will be independent of \(z^*\).
Multifunctions#
Consider the behaviour of \(z \mapsto w = e^{z}\) shown below (from [Needham, 2023]).
Notice that it takes maps a strip \((-\infty, \infty)\times [y, y+2\pi \I]\) into the entire plane \(\mathbb{C} \equiv \mathbb{R}^2\). Specifically, the points with \(x\leq 0\) get mapped into the unit ball \(r\leq 0\), while the points \(x >0\) are mapped to the outside disk. Different strips in the \(y\) direction of width \(2\pi\) will be mapped on top of each other. Hence, the inverse function \(\ln z\) must be multi-valued – a multifunction as [Needham, 2023] calls them.
To see this, consider \(\ln z\) where \(z = re^{\I\theta} \equiv re^{\I\theta + 2\pi \I n}\) since \(e^{2\pi \I n} = 1\) where \(n\) is an integer. Thus:
where the integer \(n\) specifics which branch of the function we are “on”. To be definite, one usually defines the following functions with capital letters to denote that they yield the principal branch or principal value:
You should already be familiar with this idea: for example both \(+1\) and \(-1\) square to \(1\), so you should be familiar with \(z^{1/2}\) being a multifunction with two branches.
Since the angle doubles, the map \(z\mapsto z^2\) effects a double cover of the plane. Similarly \(z^n\) for positive integer \(z\) will effect an \(n\)-cover.
Do It! Compute all the values of \(w = z^k\) for real \(k\).
Using all branches of \(\ln\), we have:
If \(k = p/q\) is rational with \(p\) and \(q\) relatively prime, then there will be \(q\) distinct branches or roots. If \(k\) is irrational, then there will be infinitely many branches for each \(n\).
Note that this makes the notion of \(e^{z}\) somewhat uncomfortable since, \((2.718\dots)^{z}\) is a multifunction with possibly infinitely many branches, depending on the value of \(z\)! We follow [Needham, 2023] and define \(e^{z}\) to be the single-valued exponential mapping, not the multifunction \((2.718\dots)^{z}\).
Clausen’s Paradox: \((e^{a})^{b} = e^{ab} \Rightarrow 1=e^{-2\pi}\).
We know that \(e^{2\pi \I} = 1\), therefore \((e^{2\pi \I})^{\I} = 1^\I = 1\), but if \((e^{a})^{b} = e^{ab}\), then we must conclude that \((e^{2\pi \I})^{\I} = e^{-2\pi} = 1\), which is rather absurd.
One must be careful with complex powers. The multifunction \(z^k\) is defined to be
but it does not follow that \((e^{a})^{b} = e^{ab}\) as it does for real numbers. Instead, we should let \(z=e^{a}\) and \(k=b\) to get
Applying this to our original expression, we have
This is \(1\) for the appropriate branch \(n=-1\). In summary, when discussing multifunctions, one should restrict oneself carefully to use the definitions like \(z^{k} = e^{k \ln z} = e^{k(\Log z + 2\pi \I n)}\).
Derivatives: Cauchy-Riemann Conditions#
The first idea is to extend the notion of the derivative to complex-valued functions. Proceeding in analogy from calculus, we would like
The difficulty now is that we must consider \(h\in \mathbb{C}\) as complex. Thus, we can write, for real \(h\):
This gives the directional derivative along the direction \(w=e^{\I\phi}\). For such a derivative to make sense, the result must be independent of \(w\), which leads to the Cauchy-Riemann equations:
Do It! Derive the Cauchy-Riemann condition.
Compute and equate the directional derivatives for \(f(x, y) = u(x, y) + \I v(x, y)\) along \(w = 1\) (along the real axis \(\partial_x\)) and \(w=\I\) (along the imaginary axis \(\partial_y/\I\)):
The Cauchy-Riemann conditions follow after equating the real and imaginary parts.
Do It! Prove these mean that \(f\) is independent of \(z^*\).
Treating \(z\) and \(z^*\) as independent, we express
Hence, the Cauchy-Riemann conditions are satisfied iff
i.e. if \(f\) is independent of \(z^*\).
Functions that satisfy these Cauchy-Riemann equations in a neighbourhood of a point \(z_0\) are said to be complex analytic (or just analytic) at \(z_0\). Complex analytic functions are also called holomorphic functions.
This has some interesting consequences for derivatives. Independence of direction means
Since \(f'(z)\) is analytic at the same places as \(f(z)\), we can repeat this:
You can use and rearrange these as needed.
Saddle points: the Hessian of \(\Re f\) and \(\Im f\).
As an example of these types of manipulations, consider the Hessian matrix of \(u(x, y)\) and \(v(x, y)\):
These are useful for the Saddle-point Approximation where the orientation of the saddle is given by the eigenvectors of these matrices. We suspect that this information is codified in \(f''(z)\), but how? Consider the action of \(f''(z)\):
This last expression can be manipulated into a useful form using the Cauchy-Riemann equations:
Thus, let \((x, y)^T\) be an eigenvector of \(\mat{U}\) or \(\mat{V}\). We first express this, then use these manipulations to find a relevant form of \(f'' z\):
Thus, we arrive at the somewhat non-trivial relationships for eigenvectors of the real and imaginary Hessians respectively:
Consider these in polar coordinates:
Hence, for \(\mat{U}\) and \(\mat{V}\) respectively, we have
This is the content of Eq. (3-82) in [Mathews and Walker, 1970] and Eq. (12.103) in [Arfken et al., 2013]. They proceed more directly, expanding \(f(z)\) to second order:
Now let \((z-z_0) = x + \I y = re^{\I\phi}\) and \(f''(z_0) = Re^{\I\Phi}\):
The eigenvectors for \(U\) and \(V\) respectively correspond to the directions of maximal ascent and descent for the real and imaginary portions. Thus
The moral of this calculation is thus: the Cauchy-Riemann equations admit for many simplifications, but the most direct approach generally proceeds by directly working with the analytical structure – Taylor series, etc.
Conformal Maps and Harmonic Functions#
Consider how an analytic function \(f(z)\) behaves near \(z_0\):
This means that, locally, \(f(z)\) acts like \(z \mapsto az + b\) where \(a, b\in\mathbb{C}\) are complex numbers. This means that locally, analytic functions are amplitwists: the factor \(a\) scales and rotates the function, while the constant \(b\) shifts the function.
To see this, use polar coordinates:
This is a combination of an “amplification” scaling the radius by a factor \(s\) and a “twist”, rotating the region of the plane by \(\phi\). Significantly, such transformations preserve angles: hence an analytic functions \(f: \mathbb{C}\mapsto\mathbb{C}\) locally defines a conformal map. This property has many uses, as will be discussed below.
As a consequence of the Cauchy-Riemann equations, the real and imaginary parts of analytic functions are harmonic functions, meaning that they satisfy Laplace’s equation:
Do It! Prove this.
Compute the partials, then replace \(u_{,x} \leftrightarrow v_{,x}\) and \(u_{,y} \leftrightarrow -v_{,x}\). Equating mixed partials shows that both real and imaginary parts cancel:
This, combined with the property than analytic functions are conformal maps, provides a powerful tool for solving Laplace’s equation and related equations. The idea is to find a solution with simple boundary conditions, then transform that solution to another more complicated domain. The power of this approach is embodied in the following theorem:
Theorem 1 (Riemann Mapping Theorem)
There is a one-to-on conformal map between any two non-empty simply-connected open subsets \(R, S\subset \mathbb{C}\).
The following shows, for example, how you can map the half-plane into a corner, allowing one to solve the corner flow problem:
Example: Laminar flow.
The hydrodynamic equations for an ideal (inviscid) fluid with density \(n\), velocity \(\ket{u}\) and equation of state (energy-density) \(\mathcal{E}(n)\) in an external potential \(V\) are x(index notation on the right):
The first is the continuity equation, while the second is Newton’s law in the form \(a = F/m\) where \(F = -\nabla V\). For stationary incompressible flow, time derivatives vanish and the density is constant. Many fluids like water and even air because like they are virtually incompressible when flowing a low speeds (low Mach number). The fluid equations simplify to:
Laminar flow – as opposed to turbulent flow – occurs when the fluid is irrotational in the bulk: I.e., no vortices or vorticity:
Thus, in addition to Newton’s law \(u_{a,i}u_{i} = -\phi_{,a}\), stationary incompressible laminar flow satisfies
In two dimensions, these become
Note that these look very similar to the Cauchy-Riemann conditions. In particular, if we define (note the minus sign)
then these two conditions are precisely the Cauchy-Riemann conditions for \(f(z)\) to be analytic. This means that, if we can find a solution in one coordinate system, then we can transform this to any other coordinate system using a conformal map.
For example, consider
The corresponding flow is tangent to the unit circle meaning that this is valid. Using the Joukowsky transform – a particular conformal map – one can transform this flow into that about the Joukowsky airfoil, giving an analytic model of lift on a wing.
Assorted Details
We start with the condition that flow be tangent to the unit circle. This means that the projection along the radial direction must vanish:
for \(z = x + \I y = e^{\I\theta}\). This is easy to verify:
On the unit circle:
hence the real part vanishes.
Here are some random results that might be of use. They are a good exercise in using index notation. Consider the vorticity satisfies
As a consequence of Newton’s law, we have
The following identities hold:
If we restrict ourselves to 2D flow, the vorticity \(\vect{\nabla}\times \vect{u}\) is
A consequence of these second equation is that
Infinity#
One can consider the extended complex numbers \(\bar{\mathbb{C}} = \mathbb{C} \cup \{\infty\}\) which includes “the point at infinity”. To study the properties there, define \(w = 1/z\) and look at \(w\) at the origin. These can be organized through the stereographic projection of the Riemann sphere. This is a mapping between points \(z = x+\I y\) in \(\bar{\mathbb{C}}\) and points on the unit sphere \(\uvect{r} = (X, Y, Z)\):
or, in spherical coordinates \((r=1, \theta, \phi)\):
Do It! Verify that these formula are correct.
For details, see [Needham, 2023] §3.4.5 “Stereographic Formulae”.
Möbius Transformations#
Möbius transformations are a generalization of this stereographic projection and correspond to projecting the complex plane to the Riemann sphere at one point, then moving (possibly rotating) the sphere, then projecting back. These are represented by the following analytic function (hence conformal map):
I.e. a linear rational function (i.e. a meromorphic function with a single pole).
To visualize these consider first translating a point \(z_0\) to the origin, then scaling and rotating (amplitwist), then inverting, then translating to another point \(z_1\), and finally scaling and rotating (amplitwist).
See [Needham, 2023] for details and pictures.
Contour Integrals#
Given a smooth path (contour) \(C = \{z(s) | s \in [0, 1]\}\) in the complex plane starting at \(a = z(0)\) and ending at \(b = z(1)\), we can define the following contour integral of a function \(f(z)\):
The key property is that the contour integral is independent of the contour \(C\) in regions where \(f(z)\) is analytic. I.e.: you can deform the contour as long as you start at \(a\) and end at \(b\) and avoid any parts of the plane where \(f(z)\) is not analytic.
Do It! Prove this!
One approach is to use calculus of variations. Consider a small deformation of the contour \(C(\delta) = \{z(s) + \delta(s)\}\) where \(\delta(0) = \delta(1) = 0\) and \(\delta(s)\) is smooth. Show that the contour integral
i.e., the variation vanishes to linear order, as a consequence of the Cauchy-Riemann conditions.
Solution
One approach is to use calculus of variations. Consider a small deformation of the contour \(z(s) + \delta(s)\) where \(\delta(0) = \delta(1) = 0\) and \(\delta(s)\) is smooth. The functional derivative is
For this to work, the derivative \(f'(z)\) must be well-defined and independent of the path: i.e. \(f(z)\) must be analytic everywhere in the region of deformation. If you work through this with \(f(z) = u(z) + \I v(z)\), you will end up deriving again the Cauchy-Riemann conditions.
Combined with the residue theorem, we obtain a variety of powerful tricks for evaluating integrals in the complex plane – including integrals along the real axis. The strategy is
Find a way of closing the contour so that the contour integral along the added pieces is known. Often we choose these so that the added piece is zero (most-commonly a semi-circular contour that vanishes as \(\Re z \rightarrow \pm \infty\)). Another option is to choose contours that are related to the original integral (often multiplied by a phase). The latter can often occur along a branch cut. Note: you must not cross a branch cut to close the contour.
The full integral is then computed by deforming the contour until it either vanishes, or encircles (encloses) various poles of the function \(f(z)\) where it is not analytic. The contribution to the integral from these poles are then evaluated using the residue theorem.
Finally, the original integral is extracted from the integral around the closed contour.
Although this is the standard approach, contour integration can be useful without trying to find a closed contour. Applications include finding saddle-point approximations, and numerically computing troublesome integrals – typically highly oscillatory – by finding a deformed contour where the integrand is smooth.
Residues#
The Cauchy residue formula states that, for a function \(f(z)\) which is analytic in an open neighbourhood of \(z_0\):
This allows integration to be used to differentiate an analytic function:
Do It!
Derive the formula for the derivative by applying the residue theorem to
Solution
First let
Now perform the two contour integrals to get
Taking the limit gives the desired derivative.
Do It!
Alternatively, derive the formula for the derivative by using partial fractions and the residue theorem to compute
Solution
Start by expanding with partial fractions
Applying the residue theorem, we thus have
Hence
Details about the partial fraction expansion:
Do It! Complete the full proof by inductions.
Assume
We have already proved the base case for \(n=1\):
Apply this to \(f^{(n)}(z)\), we have
completing the induction.
Important
Here are some important points:
Knowing the values of an analytic function \(f(z)\) on a contour \(C = \partial A\) completely determines the value \(f(z_0)\) at all points inside the contour \(A\) since
\[\begin{gather*} f(z_0) = \oint_{C} \frac{f(z)}{z-z_0}\frac{\d{z}}{2\pi \I}. \end{gather*}\]Knowing that function is analytic means that all derivatives are defined, and that these derivatives can be found by integration!
Laurent Series, Isolated Singularities, and The Residue#
If a function \(f(z)\) is analytic in an annular region centered about \(z_0\) (including on the boundaries), then at all points in the annulus, then function can be expressed as a Laurent series:
where the coefficients can be calculated using the second contour integral over any contour \(C\) within the annulus that circles \(z_0\). Such a function is said to have an isolated singularity at \(z_0\). The residue of the function \(f(z)\) at the singularity \(z_0\) is the coefficient \(\Res[f(z_0)] = a_{-1}\):
Example: \(f(z) = 1/z\).
Consider \(f(z) = 1/z\). It obviously has a Laurent series about \(z_0=0\), but what about other points? We might start by considering a geometric series
We can expand this two ways: first by considering \(z - z_0\) to be “small”:
This is simply a Taylor series, and it converges for \(\abs{z-z_0} < \abs{z_0}\): i.e. inside the circle centered about \(z_0\) that goes through the pole at the origin \(z=0\).
We might also consider \(z-z_0\) to be “large”:
This is now a Laurent series that converges for \(\abs{z_0} < \abs{z-z_0}\): i.e. outside the circle centered about \(z_0\) that goes through the pole at the origin \(z=0\). Thus, two different series have different regions of convergence.
Do It! Compute the Laurent series using the formula above.
We can also directly apply the formula above. When computing the coefficients \(a_n\), we must be careful to pick up all residues, including both the pole at \(z=0\) and the pole at \(z=z_0\). Let \(f(z) = 1/z\) and \(g_n(z) = 1/(z-z_0)^n\). For \(n\geq 0\):
To compute this, note that
Hence:
For negative \(n\), the only pole is the simple pole at \(z=0\):
Hence
as before.
Residue Theorem#
The core idea of contour integration is that integrals over a closed contour \(C\) can be expressed as a sum of the enclosed residues:
Residue at Infinity#
If a function has an isolated singularity at \(z=\infty\), then it would be useful to be able to use this in the residue theorem. Consider a contour \(C\) and a suitable function \(f(z)\) that has no singularities outside except at \(z=\infty\). We would like to have
Changing variables to \(w=1/z\), \(\d{w} = -\d{z}/z^2\) we have
Example: \(f(z) = e^{1/z}\).
Consider \(f(z) = e^{1/z}\). This is the quintessential example of a function with an essential singularity at \(z=0\). Despite this, the residue still exists, and can be useful for computing contour integrals. To find it, one might try computing the Laurent series, which is straightforward in this case since we know the Taylor series for \(e^{z}\):
In other cases, however, manipulating products of infinite series might be a pain. Another approach is to note that if the function is meromorphic (analytic everywhere with only isolated singularities), then the sum of all residues is zero:
In this case, we can use the residue at \(z=\infty\):
Do It! Compute \(\Res[e^{1/z_0}|_{z_0=\infty}]\) and show that this works.
Jordan’s Lemma#
When using contours to compute integrals, it is often important to argue that the contribution from a semi-circular contour vanishes as the radius of that contour is taken to infinity. This is often referred to as Jordan’s Lemma. The Wikipedia formulation is quite useful
Lemma 1 (Jordan’s Lemma)
Let \(f(z)\) be a continuous function in the complex plane \(z \in \mathbb{C}\) with
Jordan’s Lemma then bounds
This is especially useful if \(\lim_{R\rightarrow \infty}g(z) = 0\), in which case the contour vanishes. A couple of comments:
This is almost obvious since \(e^{\I a z}\) contains an exponentially decaying piece – the subtlety comes from the regions \(\theta \approx 0\) and \(\theta \approx \pi\) where this exponential piece also vanishes. The lemma proves that one’s intuition remains correct even at these endpoints.
The version in [Hassani, 2013] places an additional constraint that \(R\abs{f(zRe^{\I\theta})} \rightarrow 0\), allowing for the case \(a = 0\), but this excludes the interesting case above. I am not sure why only this from is presented.
Computing Integrals#
The general strategy for computing integrals using contour integration and the residue theorem can be summarized as follows:
Express you original integral as a contour integral.
Try to close the contour in such a way that the added contributions are known, or are expressible in terms of the original integral. JordansLemma is useful here.
Deform the closed contour and compute the integral using the residue theorem.
Remove the additional contributions and solve for the original integral.
# Numerical check.
import math
from scipy.integrate import quad
# Quick check. The integrator has difficulty, but convergence looks good
ns = 2**np.arange(10)
Is = np.array([quad(lambda x: math.sin(x)/x, 0, 2*math.pi * n)[0]
for n in ns])
fig, ax = plt.subplots(figsize=(2, 1), constrained_layout=True)
ax.loglog(ns, np.pi/2 - Is, '+-')
ax.set(xlabel="$n$", ylabel=r"$\frac{\pi}{2} - I_n$")
# Here we are more careful, using a special purpose integrator
# and pre-computing the first interval so 1/x does not diverge.
I1, I1err = quad(lambda x: math.sin(x)/x, 0, 2*math.pi)
I2, I2err = quad(lambda x: 1/x, 2*math.pi, np.inf, weight='sin', wvar=1.0)
I, Ierr = I1 + I2, I1err + I2err
abs(np.pi/2 - I)
/tmp/ipykernel_3786/3402906312.py:7: IntegrationWarning: The maximum number of subdivisions (50) has been achieved.
If increasing the limit yields no improvement it is advised to analyze
the integrand in order to determine the difficulties. If the position of a
local difficulty can be determined (singularity, discontinuity) one will
probably gain from splitting up the interval and calling the integrator
on the subranges. Perhaps a special-purpose integrator should be used.
Is = np.array([quad(lambda x: math.sin(x)/x, 0, 2*math.pi * n)[0]
3.018052474601518e-11
Example: \(I = \int_{0}^{\infty}\tfrac{\sin{x}}{x}\d{x}\).
Let’s start with the example from an early assignment:
We start by noting that that the integrand is even, so we can compute
Next, we note that we can express the integral as a contour integral and that the integrand is an analytic function. To close the contour, we consider semi-circle, hoping that this contribution vanishes. Unfortunately, the present integrand does not have nice behaviour at infinity, however, we can split it into two exponentials, each of which vanishes on one of the semicircles:
The first term will integrate to zero along an upper semicircle, while the second term will integrate to zero along the lower semicircle. Splitting the integral introduces a pole at \(z=0\) in each term. To deal with this, we must consistently choose to deform the contour either above or below the pole in each term. The result should not depend on which way we choose, as long as we are consistent. Let’s shift it up so that it is contained in the first contour but not the second. This will cause the second contour integral to vanish since there are no poles. Thus, we have
As a check, if we had shifted the contour down, we would have needed to use the second term which has a minus sign, however, the orientation of the contour also becomes negative, so the two signs cancel and we end up with the same result, as expected.
Saddle-point Approximation#
Certain integrals of analytic functions – especially with exponential factors \(e^{f(z)}\) – can be well approximated by deforming the integration contour to include a region where \(\Re f(z)\) is extremal. Since \(f(z)\) is analytic, these extrema must be saddle points since \(u(z) = \Re f(z)\) and \(v(z) = \Im f(z)\) are harmonic. The idea is to approximate the full integral by integrating along the contour of steepest descent, approximating the integrand as a Gaussian along this path:
The sign must be chosen to ensure that the saddle is crossed in the appropriate direction consistent with the initial and final points without unnecessary crossings of the “mountain range” over which the saddle provides the cleanest path.
Note
Sometimes the idea of the saddle-point approximation is explained by approximating the integral by the point that maximizes \(u = \Re z\). For contour integrals this does not make much sense since \(u\) is always a saddle point. A better idea is that of stationary phase: by following a contour tangent to the contour of constant \(v(z) = \Im f(z_0)\) that passes through the saddle-point, we can find a contour of constant phase passing through the valley. This contour will give a clean approximation of the integral. Other contours will have larger contributions, but these will cancel due to the rapidly oscillating phase. The contour of constant phase follows the path that descends most rapidly from the saddle point (why?). For this reason, the method is also called the method of steepest descent .
Details.
The orientation of the saddles can be described by the eigenvectors of the corresponding Hessian matrix, and are derived above in section Derivatives: Cauchy-Riemann Conditions with the result that the direction of steepest descent is given by the angles
where \(f''(z) = Re^{\I\Phi}\). We integrate along the contour \(C = \{z_0 + se^{\I\phi_u} \mid s \in \mathbb{R}\}\) to find:
The sign must be chosen to ensure that the saddle is crossed in the appropriate direction consistent with the initial and final points without unnecessary crossings of
Note: this approximation is only valid if the integral is truly dominated by the saddle. To make this clear, most books write
where \(\alpha\) is large. This is equivalent to choosing
Example: Sterling’s approximation of \(z! = \Gamma(z+1)\) for large \(\Re z\).
Recall that one can express \(z!\) as
Taking \(f(t) = z\ln t - t\), we identify the saddle point \(t_0 = z\) where \(f'(t_0) = 0\):
The saddle-point approximation gives Stirling’s approximation:
Further Information#
[Needham, 2023] provides an extremely visually pleasing (but lengthy) presentation of complex analysis. Highly recommended if you want to better understand this material. 3Blue1Brown also has some nice videos discussion complex numbers that might help you visualize some of what is going on.